module nokia-conf { yang-version "1.1"; namespace "urn:nokia.com:sros:ns:yang:sr:conf"; prefix "conf"; import ietf-inet-types { prefix "inet"; } import ietf-yang-types { prefix "yang"; } import nokia-features { prefix "nokia-features"; } import nokia-sros-yang-extensions { prefix "sros-ext"; } import nokia-types-application-assurance { prefix "types-aa"; } import nokia-types-bgp { prefix "types-bgp"; } import nokia-types-card { prefix "types-card"; } import nokia-types-cellular { prefix "types-cellular"; } import nokia-types-cflowd { prefix "types-cflowd"; } import nokia-types-chassis { prefix "types-chassis"; } import nokia-types-dhcp { prefix "types-dhcp"; } import nokia-types-diameter { prefix "types-diam"; } import nokia-types-esa { prefix "types-esa"; } import nokia-types-eth-cfm { prefix "types-eth-cfm"; } import nokia-types-filter { prefix "types-filter"; } import nokia-types-igmp { prefix "types-igmp"; } import nokia-types-igp { prefix "types-igp"; } import nokia-types-ipsec { prefix "types-ipsec"; } import nokia-types-isa { prefix "types-isa"; } import nokia-types-isis { prefix "types-isis"; } import nokia-types-l2tp { prefix "types-l2tp"; } import nokia-types-ldp { prefix "types-ldp"; } import nokia-types-lldp { prefix "types-lldp"; } import nokia-types-log { prefix "types-log"; } import nokia-types-mcast-cac { prefix "types-mcast-cac"; } import nokia-types-mcast-mgmt { prefix "types-mcast-mgmt"; } import nokia-types-mcr { prefix "types-mcr"; } import nokia-types-mpls { prefix "types-mpls"; } import nokia-types-nat { prefix "types-nat"; } import nokia-types-oam { prefix "types-oam"; } import nokia-types-operation { prefix "types-operation"; } import nokia-types-ospf { prefix "types-ospf"; } import nokia-types-policy { prefix "types-policy"; } import nokia-types-port { prefix "types-port"; } import nokia-types-ppp { prefix "types-ppp"; } import nokia-types-ptp { prefix "types-ptp"; } import nokia-types-qos { prefix "types-qos"; } import nokia-types-radius { prefix "types-radius"; } import nokia-types-redundancy { prefix "types-redundancy"; } import nokia-types-rip { prefix "types-rip"; } import nokia-types-ripng { prefix "types-ripng"; } import nokia-types-router { prefix "types-router"; } import nokia-types-rsvp { prefix "types-rsvp"; } import nokia-types-security { prefix "types-security"; } import nokia-types-services { prefix "types-services"; } import nokia-types-sfm { prefix "types-sfm"; } import nokia-types-sros { prefix "types-sros"; } import nokia-types-subscriber-mgmt { prefix "types-submgt"; } import nokia-types-system { prefix "types-system"; } import nokia-types-vrrp { prefix "types-vrrp"; } import nokia-types-wlan { prefix "types-wlan"; } import nokia-types-wlangw { prefix "types-wlangw"; } sros-ext:sros-major-release "rel21"; organization "Nokia"; contact "Nokia SR OS Support Web: "; description "Nokia YANG Data model to configure all data on SR OS based routers. Copyright 2016 Nokia. All rights reserved. Reproduction of this document is authorized on the condition that the foregoing copyright notice is included. This nokia-conf YANG module embodies Nokia's proprietary intellectual property. Nokia retains all title and ownership in the specification, including any revisions. Nokia grants all interested parties a non-exclusive license to use and distribute an unmodified copy of this specification in connection with management of Nokia products, and without fee, provided this copyright notice and license appear on all copies. This specification is supplied `as is', and Nokia makes no warranty, either express or implied, as to the use, operation, condition, or performance of the specification."; revision "2021-03-15"; container configure { description "Enter the configure context"; leaf-list apply-groups { type leafref { path "../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } container aaa { description "Enter the aaa context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container radius { description "Enter the radius context"; leaf coa-port { type inet:port-number { range "1647|1700|1812|3799"; } default "3799"; description "Radius CoA port"; } list acct-on-off-group { key "name"; max-elements 32; description "Enter the acct-on-off-group list instance"; leaf name { type types-sros:named-item; description "Acct-on-off group name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list acct-on-off-group list server-policy { key "name"; max-elements 32; description "Enter the server-policy list instance"; leaf name { type types-sros:named-item; description "RADIUS script policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf python-policy { type leafref { path "../../../../python/python-policy/name"; } description "Python policy to modify the RADIUS messages"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container servers { description "Enter the servers context"; leaf timeout { type types-sros:time-duration { range "1..340"; } units "seconds"; default "5"; description "Time until the next retry to the RADIUS server"; } leaf retry-count { type uint32 { range "1..256"; } default "3"; description "Number of retries for contacting the RADIUS server"; } leaf hold-down-time { type types-sros:time-duration { range "30..86400"; } units "seconds"; default "30"; description "Hold time before re-using a RADIUS server that was down"; } leaf router-instance { type string; description "RADIUS routing instance"; } leaf source-address { type types-sros:ipv4-address; description "Source address of RADIUS messages"; } leaf ipv6-source-address { type types-sros:ipv6-address; description "Source address for IPv6 RADIUS datagrams"; } leaf access-algorithm { type types-radius:server-selection-algo; description "Algorithm to access the set of RADIUS servers"; } leaf stickiness { type boolean; default "true"; description "Allow stickiness in a multi-server application"; } list server { key "server-index"; max-elements 32; description "Enter the server list instance"; leaf server-index { type uint32 { range "1..16"; } description "RADIUS server index"; } leaf server-name { type types-sros:named-item; mandatory true; description "RADIUS server name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server container buffering { description "Enter the buffering context"; container acct-start { presence "Enter the 'acct-start' context"; description "Enable the acct-start context"; leaf min { type types-sros:time-duration { range "1..3600"; } units "seconds"; mandatory true; description "Minimum time between accounting message resend attempts"; } leaf max { type types-sros:time-duration { range "1..3600"; } units "seconds"; mandatory true; description "Maximum time between accounting message resend attempts"; } leaf lifetime { type types-sros:time-duration { range "1..25"; } units "hours"; mandatory true; description "Time accounting message can be in retransmission buffer"; } } // container acct-start container acct-interim { presence "Enter the 'acct-interim' context"; description "Enable the acct-interim context"; leaf min { type types-sros:time-duration { range "1..3600"; } units "seconds"; mandatory true; description "Minimum time between accounting message resend attempts"; } leaf max { type types-sros:time-duration { range "1..3600"; } units "seconds"; mandatory true; description "Maximum time between accounting message resend attempts"; } leaf lifetime { type types-sros:time-duration { range "1..25"; } units "hours"; mandatory true; description "Time accounting message can be in retransmission buffer"; } } // container acct-interim container acct-stop { presence "Enter the 'acct-stop' context"; description "Enable the acct-stop context"; leaf min { type types-sros:time-duration { range "1..3600"; } units "seconds"; mandatory true; description "Minimum time between accounting message resend attempts"; } leaf max { type types-sros:time-duration { range "1..3600"; } units "seconds"; mandatory true; description "Maximum time between accounting message resend attempts"; } leaf lifetime { type types-sros:time-duration { range "1..25"; } units "hours"; mandatory true; description "Time accounting message can be in retransmission buffer"; } } // container acct-stop } // container buffering container health-check { description "Enter the health-check context"; leaf down-timeout { type types-sros:time-duration { range "1..340"; } units "seconds"; description "Wait time before declaring RADIUS server out-of-service"; } container test-account { description "Enter the test-account context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of health check state"; } leaf interval { type types-sros:time-duration { range "1..60"; } units "seconds"; default "3"; description "Time for health check"; } leaf user-name { type types-sros:display-string { length "1..64"; } description "Username for health check"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "Password for health check"; } } // container test-account } // container health-check } // container servers container acct-on-off { presence "Enter the 'acct-on-off' context"; description "Enable the acct-on-off context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice mode { case monitor { leaf monitor { type leafref { path "../../../acct-on-off-group/name"; } sros-ext:immutable; description "Accounting on/off group name"; } } case oper-state-change { container oper-state-change { presence "Enter the 'oper-state-change' context"; description "Enable the oper-state-change context"; leaf group { type leafref { path "../../../../acct-on-off-group/name"; } sros-ext:immutable; description "Change of operational state for a group"; } } // container oper-state-change } } } // container acct-on-off } // list server-policy list route-downloader { key "name"; max-elements 1; description "Enter the route-downloader list instance"; leaf name { type types-sros:named-item; description "Route downloader name"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this Route Downloader"; } leaf radius-server-policy { type leafref { path "../../server-policy/name"; } description "Referenced RADIUS server policy"; } leaf download-interval { type uint32 { range "1..1440"; } units "minutes"; default "720"; description "Time for system to wait between two consecutive runs of route-download process"; } leaf default-metric { type uint32 { range "0..254"; } default "2"; description "Default metric of this route downloader"; } leaf default-tag { type uint32 { range "0..4294967295"; } default "0"; description "Default tag of this route downloader"; } leaf max-routes { type uint32 { range "1..200000"; } default "200000"; description "Maximum routes imported by this route downloader"; } leaf base-user-name { type types-sros:named-item; description "Prefix of the username used by this route downloader"; } leaf password { type types-sros:encrypted-leaf { length "1..71"; } description "Route downloader password"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container retry-interval { description "Enter the retry-interval context"; leaf min { type uint32 { range "1..1440"; } units "minutes"; default "10"; description "Minimum duration of the retry interval"; } leaf max { type uint32 { range "1..1440"; } units "minutes"; default "20"; description "Maximum duration of the retry interval"; } } // container retry-interval } // list route-downloader list l2tp-accounting-policy { key "name"; max-elements 32; description "Enter the l2tp-accounting-policy list instance"; leaf name { type types-sros:named-item; description "Name for L2TP RADIUS accounting policy"; } leaf description { type types-sros:description; description "Text description"; } leaf acct-tunnel-connection-fmt { type types-sros:display-string { length "1..253"; pattern "([^%]+|%[nsStTcC%])+"; } default "%n"; description "Accounting tunnel connection ASCII specification"; } leaf radius-server-policy { type leafref { path "../../server-policy/name"; } description "Referenced RADIUS server policy"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container accounting-type { description "Enter the accounting-type context"; leaf session { type boolean; default "true"; description "Enable/disable per session accounting"; } leaf tunnel { type boolean; default "true"; description "Enable/disable per tunnel accounting"; } } // container accounting-type container include-radius-attribute { description "Enter the include-radius-attribute context"; leaf calling-station-id { type boolean; default "false"; description "Include the calling station ID attribute"; } leaf nas-identifier { type boolean; default "false"; description "Include the NAS-Identifier attribute"; } container nas-port { presence "Enter the 'nas-port' context"; description "Enable the nas-port context"; leaf bit-spec { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[oismpvc])+"; } mandatory true; description "RADIUS NAS-Port attribute"; } } // container nas-port container nas-port-id { presence "Enter the 'nas-port-id' context"; description "Enable the nas-port-id context"; leaf prefix-string { type types-sros:string-not-all-spaces { length "1..8"; } description "Specifies NAS-Port-Id prefix string"; } leaf suffix { type enumeration { enum "circuit-id" { value 1; } enum "remote-id" { value 2; } } description "NAS-Port-Id suffix"; } } // container nas-port-id container nas-port-type { presence "Enter the 'nas-port-type' context"; description "Enable the nas-port-type context"; leaf type { type union { type enumeration { enum "rfc-aligned" { value 1000; } } type uint32 { range "0..255"; } } default "rfc-aligned"; description "Value for RADIUS NAS-Port-Type attribute"; } } // container nas-port-type } // container include-radius-attribute } // list l2tp-accounting-policy list isa-policy { key "name"; max-elements 8; description "Enter the isa-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf password { type types-sros:encrypted-leaf { length "1..42"; } description "Password used in the RADIUS access requests"; } leaf nas-ip-address-origin { type enumeration { enum "system-ip" { value 0; } enum "isa-ip" { value 1; } } default "system-ip"; description "NAS-IP-Address attribute"; } leaf python-policy { type leafref { path "../../../../python/python-policy/name"; } description "Python policy used for modifying RADIUS messages"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container accounting { description "Enter the accounting context"; container include-attributes { description "Enter the include-attributes context"; leaf acct-delay-time { type boolean; default "false"; description "Include the Acct-Delay-Time attribute"; } leaf acct-triggered-reason { type boolean; default "false"; description "Include the Alc-Acct-Triggered-Reason attribute"; } leaf called-station-id { type boolean; default "false"; description "Include the Called-Station-Id attribute"; } leaf calling-station-id { type boolean; default "false"; description "Include the Calling-Station-Id attribute"; } leaf circuit-id { type boolean; default "false"; description "Include the Agent-Circuit-Id attribute"; } leaf class { type boolean; default "false"; description "Include the Class attribute"; } leaf dhcp-options { type boolean; default "false"; description "Include the Alc-ToServer-Dhcp-Options attribute"; } leaf dhcp-vendor-class-id { type boolean; default "false"; description "Include the Alc-DHCP-Vendor-Class-Id attribute"; } leaf frame-counters { type boolean; default "false"; description "Include the Acct-Input-Packets and Acct-Output-Packets attributes"; } leaf framed-ip-address { type boolean; default "false"; description "Include the Framed-IP-Address attribute"; } leaf framed-ip-netmask { type boolean; default "false"; description "Include the Framed-IP-Netmask attribute"; } leaf framed-ipv6-prefix { type boolean; default "false"; description "Include the Framed-IPv6-Prefix attribute"; } leaf hardware-timestamp { type boolean; default "false"; description "Include the Event-Timestamp attribute"; } leaf ipv6-address { type boolean; default "false"; description "Include the Alc-Ipv6-Address attribute"; } leaf mac-address { type boolean; default "false"; description "Include the Alc-Client-Hardware-Addr attribute"; } leaf multi-session-id { type boolean; default "false"; description "Include the Acct-Multi-Session-Id attribute"; } leaf nas-identifier { type boolean; default "false"; description "Include the NAS-Identifier attribute"; } leaf nas-ip-address { type boolean; default "false"; description "Include the NAS-IP-Address attribute"; } leaf nas-port { type boolean; default "false"; description "Include the NAS-Port attribute"; } leaf nas-port-id { type boolean; default "false"; description "Include the NAS-Port-Id attribute"; } leaf nas-port-type { type boolean; default "false"; description "Include the NAS-Port-Type attribute"; } leaf nat-inside-service-id { type boolean; default "false"; description "Include NAT inside service ID in Alc-Serv-Id attribute"; } leaf nat-outside-ip-address { type boolean; default "false"; description "Include the Alc-Nat-Outside-Ip-Addr attribute"; } leaf nat-outside-service-id { type boolean; default "false"; description "Include NAT outside service ID in Alc-Serv-Id attribute"; } leaf nat-port-range-block { type boolean; default "false"; description "Include the Alc-Nat-Port-Range attribute"; } leaf nat-subscriber-string { type boolean; default "false"; description "Include the Alc-Subsc-ID-Str attribute"; } leaf octet-counters { type boolean; default "false"; description "Include the Acct-Input-Octets and Acct-Output-Octets attributes"; } leaf proxied-subscriber-data { type boolean; default "false"; description "Include subscriber data as RADIUS attributes"; } leaf release-reason { type boolean; default "false"; description "Include the NAT release reason in the Acct-Terminate-Cause attribute"; } leaf remote-id { type boolean; default "false"; description "Include the Agent-Remote-Id attribute"; } leaf rssi { type boolean; default "false"; description "Include the Alc-RSSI attribute"; } leaf session-time { type boolean; default "false"; description "Include the Acct-Session-Time attribute"; } leaf subscriber-id { type boolean; default "false"; description "Include the Alc-Subsc-ID-Str attribute"; } leaf toserver-dhcp6-options { type boolean; default "false"; description "Include the Alc-ToServer-Dhcp6-Options attribute"; } leaf ue-creation-type { type boolean; default "false"; description "Include the Alc-Wlan-Ue-Creation-Type attribute"; } leaf user-name { type boolean; default "false"; description "Include the User-Name attribute"; } leaf wlan-ssid-vlan { type boolean; default "false"; description "Include per-SSID VLAN in Alc-Wlan-SSID-VLAN attribute"; } leaf xconnect-tunnel-local-ipv6-address { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Local-Ipv6 attribute"; } leaf xconnect-tunnel-remote-ipv6-address { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Remote-Ipv6 attribute"; } leaf xconnect-tunnel-service { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Service attribute"; } leaf xconnect-tunnel-type { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Type attribute"; } leaf xconnect-tunnel-home-address { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Home-Ipv6 attribute"; } leaf millisecond-event-timestamp { type boolean; default "false"; description "Include the Alc-Millisecond-Event-Timestamp attribute"; } } // container include-attributes container update-triggers { description "Enter the update-triggers context"; leaf address-state { type boolean; default "false"; description "Send an Interim-Update when DHCP/DHCP6/SLAAC state is created or removed"; } } // container update-triggers container nat-periodic-update { description "Enter the nat-periodic-update context"; leaf interval { type types-sros:time-duration { range "1..72"; } units "hours"; description "Interval for periodic RADIUS Interim-Update messages"; } leaf rate-limit { type union { type uint32 { range "1..100000"; } type enumeration { enum "unlimited" { value 0; } } } units "packets per second"; default "unlimited"; description "Rate limit for periodic RADIUS Interim-Update messages"; } } // container nat-periodic-update } // container accounting container authentication { description "Enter the authentication context"; container include-attributes { description "Enter the include-attributes context"; leaf called-station-id { type boolean; default "false"; description "Include the Called-Station-Id attribute"; } leaf calling-station-id { type boolean; default "false"; description "Include the Calling-Station-Id attribute"; } leaf circuit-id { type boolean; default "false"; description "Include the Agent-Circuit-Id attribute"; } leaf toserver-dhcp-options { type boolean; default "false"; description "Include the Alc-ToServer-Dhcp-Options attribute"; } leaf dhcp-vendor-class-id { type boolean; default "false"; description "Include the Alc-DHCP-Vendor-Class-Id attribute"; } leaf framed-ip-address { type boolean; default "false"; description "Include the Framed-IP-Address attribute"; } leaf ipv6-address { type boolean; default "false"; description "Include the IPv6-address attribute"; } leaf mac-address { type boolean; default "false"; description "Include the Alc-Client-Hardware-Addr attribute"; } leaf nas-identifier { type boolean; default "false"; description "Include the NAS-Identifier attribute"; } leaf nas-ip-address { type boolean; default "true"; description "Include the NAS-IP-Address attribute"; } leaf nas-port { type boolean; default "false"; description "Include the NAS-Port attribute"; } leaf nas-port-id { type boolean; default "false"; description "Include the NAS-Port-Id attribute"; } leaf nas-port-type { type boolean; default "false"; description "Include the NAS-Port-Type attribute"; } leaf remote-id { type boolean; default "false"; description "Include the Agent-Remote-Id attribute"; } leaf toserver-dhcp6-options { type boolean; default "false"; description "Include the Alc-ToServer-Dhcp6-Options attribute"; } leaf wlan-ssid-vlan { type boolean; default "false"; description "Include per-SSID VLAN in Alc-Wlan-SSID-VLAN attribute"; } leaf xconnect-tunnel-home-address { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Home-Ipv6 attribute"; } } // container include-attributes } // container authentication container user-name { description "Enter the user-name context"; leaf format { type enumeration { enum "mac" { value 1; } enum "mac-ip" { value 2; } enum "dhcp-vendor" { value 3; } enum "circuit-id" { value 4; } } default "mac"; description "How user is represented when contacting RADIUS server"; } leaf mac-format { type types-nat:mac-format; description "How the MAC address gets formatted"; } } // container user-name container servers { description "Enter the servers context"; leaf source-address-range { type types-sros:ipv4-unicast-address; description "Starting source address of RADIUS messages; end depends on number of ISAs in the system"; } leaf timeout { type types-sros:time-duration { range "1..90"; } units "seconds"; default "5"; description "Timeout for a response from the RADIUS server"; } leaf total-tries { type uint32 { range "1..10"; } default "3"; description "Maximum number of tries toward the same RADIUS server"; } leaf router-instance { type string; description "The routing instance"; } leaf access-algorithm { type types-radius:isa-server-selection-algo; description "Algorithm that accesses the RADIUS servers"; } list server { key "index"; max-elements 10; description "Enter the server list instance"; leaf index { type uint32 { range "1..10"; } description "RADIUS server index that determines sequence in which servers are queried for auth requests"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ISA RADIUS server"; } leaf ip-address { type types-sros:ipv4-unicast-address; description "Destination IP address to reach RADIUS server"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Shared secret to authenticate messages and encrypt attributes to or from this server"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container purpose { description "Enter the purpose context"; container accounting { presence "Enter the 'accounting' context"; description "Enable the accounting context"; leaf udp-port { type types-sros:tcp-udp-port-non-zero; default "1813"; description "ISA RADIUS server accounting UDP port"; } } // container accounting container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf udp-port { type types-sros:tcp-udp-port-non-zero; default "1812"; description "ISA RADIUS server authentication UDP port"; } } // container authentication container coa { presence "Enter the 'coa' context"; description "Enable the coa context"; leaf udp-port { type types-sros:tcp-udp-port-non-zero; default "3799"; description "ISA RADIUS server change of authorization UDP port"; } } // container coa } // container purpose } // list server } // container servers } // list isa-policy } // container radius container diameter { description "Enter the diameter context"; list node { key "origin-host"; max-elements 32; description "Enter the node list instance"; leaf origin-host { type types-diam:diam-fqdn; description "Origin-Host AVP"; } leaf description { type types-sros:description; description "Text description"; } leaf origin-realm { type types-diam:diam-fqdn; sros-ext:immutable; description "Origin-realm name"; } leaf python-policy { type leafref { path "../../../../python/python-policy/name"; } description "Python policy for received or sent Diameter messages"; } leaf router-instance { type string; default "Base"; description "Router in which this node connects to its peers"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container connection { description "Enter the connection context"; leaf timer { type types-sros:time-duration { range "1..1000"; } units "seconds"; default "30"; description "Wait time before attempting reconnection to peer"; } container ipv4 { description "Enter the ipv4 context"; leaf local-address { type types-sros:ipv4-unicast-address; description "Local address of IPv4 TCP peer connection"; } leaf allow-connections { type boolean; default "false"; description "Listen on local address for incoming peer connections"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf local-address { type types-sros:ipv6-unicast-address; description "Local address of IPv6 TCP peer connection"; } leaf allow-connections { type boolean; default "false"; description "Listen on local address for incoming peer connections"; } } // container ipv6 } // container connection list peer { key "index"; max-elements 5; description "Enter the peer list instance"; leaf index { type uint32 { range "1..5"; } description "Index of peer within the node"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Diameter peer"; } leaf address { type types-sros:ip-unicast-address; description "Diameter peer address"; } leaf destination-host { type types-diam:diam-fqdn; sros-ext:immutable; mandatory true; description "Destination-Host AVP string for Diameter messages"; } leaf connection-timer { type types-sros:time-duration { range "1..1000"; } units "seconds"; description "Wait time before attempting reconnection to peer"; } leaf preference { type uint32 { range "1..100"; } default "50"; description "Preference of this peer, lower is more preferred"; } leaf watchdog-timer { type types-sros:time-duration { range "1..1000"; } units "seconds"; description "Time between consecutive watchdog messages"; } leaf default-peer { type boolean; default "false"; description "Use the peer as default route for realm-based routing"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list route { key "index"; max-elements 15; description "Enter the route list instance"; leaf index { type uint32 { range "1..15"; } description "Static Diameter route ID"; } leaf realm { type types-diam:diam-fqdn; sros-ext:immutable; mandatory true; description "Destination realm reachable via the static route"; } leaf application { type enumeration { enum "nasreq" { value 1; } enum "gy" { value 4; } enum "gx" { value 16777238; } } sros-ext:immutable; mandatory true; description "Diameter application to which the route applies"; } leaf preference { type uint32 { range "1..100"; } default "50"; description "Static route preference; lower value is preferred"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list route } // list peer } // list node list peer-policy { status deprecated; key "name"; max-elements 32; description "Enter the peer-policy list instance"; leaf name { status deprecated; type types-sros:named-item; description "Diameter peer policy name"; } leaf description { status deprecated; type types-sros:description; description "Text description"; } leaf origin-host { status deprecated; type string { length "1..80"; } description "Origin-Host AVP sent in all Diameter messages"; } leaf origin-realm { status deprecated; type string { length "1..80"; } description "Origin-Realm AVP sent in all Diameter messages"; } leaf router-instance { status deprecated; type string; default "Base"; description "Diameter peer policy router"; } leaf ipv4-source-address { status deprecated; type types-sros:ipv4-unicast-address; description "IPv4 source address for peering connection"; } leaf ipv6-source-address { status deprecated; type types-sros:ipv6-unicast-address; description "IPv6 source address for IPv6-reachable peering"; } leaf watchdog-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; default "30"; description "Time between consecutive watchdog messages"; } leaf connection-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; default "30"; description "Wait time before attempting reconnection to peer"; } leaf transaction-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; default "30"; description "Timeout for base Diameter messages (DWR, CER, DPR)"; } leaf vendor-support { status deprecated; type types-diam:diam-vendor-support; default "three-gpp"; description "Vendor support announced in the capability exchange"; } leaf python-policy { status deprecated; type leafref { path "../../../../python/python-policy/name"; } description "Name of python policy for Diameter processing"; } leaf role { status deprecated; type enumeration { enum "client" { value 0; } enum "proxy" { value 1; } } sros-ext:immutable; default "client"; description "Client or proxy role of a Diameter peer policy"; } leaf-list apply-groups { status deprecated; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status deprecated; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container applications { status deprecated; description "Enter the applications context"; leaf gx { status deprecated; type boolean; default "false"; description "Advertise Gx application support in CER messages"; } leaf gy { status deprecated; type boolean; default "false"; description "Advertise Gy application support in CER messages"; } leaf nasreq { status deprecated; type boolean; default "false"; description "Advertise NASREQ application support in CER messages"; } } // container applications list peer { status deprecated; key "peer-name"; max-elements 5; description "Enter the peer list instance"; leaf peer-name { status deprecated; type types-sros:named-item; description "Name of peer in Diameter peer policy"; } leaf admin-state { status deprecated; type types-sros:admin-state; default "disable"; description "Administrative state of the peer"; } leaf address { status deprecated; type types-sros:ip-unicast-address; description "Diameter peer address"; } leaf destination-host { status deprecated; type types-sros:string-not-all-spaces { length "1..80"; } description "Destination-Host AVP string for Diameter messages"; } leaf destination-realm { status deprecated; type types-sros:string-not-all-spaces { length "1..80"; } description "Destination-Realm AVP string"; } leaf watchdog-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; description "Time between consecutive watchdog messages"; } leaf connection-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; description "Wait time before attempting reconnection to peer"; } leaf transaction-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; description "Timeout for base Diameter messages (DWR, CER, DPR)"; } leaf preference { status deprecated; type uint32 { range "1..100"; } default "50"; description "Peer preference of the Diameter peer policy"; } leaf-list apply-groups { status deprecated; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status deprecated; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container transport { status deprecated; description "Enter the transport context"; leaf port-number { status deprecated; type uint32 { range "1..65535"; } default "3868"; description "Transport protocol port number used toward policy peer"; } } // container transport container statistics { status deprecated; description "Enter the statistics context"; } // container statistics } // list peer container proxy { status deprecated; when "../role = 'proxy'"; description "Enter the proxy context"; leaf admin-state { status deprecated; type types-sros:admin-state; default "disable"; description "Administrative state of Diameter proxy"; } leaf router-instance { status deprecated; type string; description "Routing context associated with Diameter proxy"; } leaf local-address { status deprecated; type types-sros:ip-unicast-address; description "Source IP address on which Diameter proxy listens"; } container mcs-peer { status deprecated; presence "Enter the 'mcs-peer' context"; description "Enable the mcs-peer context"; leaf address { status deprecated; type leafref { path "../../../../../../redundancy/multi-chassis/peer/ip-address"; } sros-ext:immutable; mandatory true; description "MCS peer address"; } leaf sync-tag { status deprecated; type types-sros:named-item; sros-ext:immutable; mandatory true; description "Synchronization tag shared by MCS peers"; } leaf-list apply-groups { status deprecated; type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status deprecated; type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mcs-peer } // container proxy } // list peer-policy } // container diameter container wpp { description "Enter the wpp context"; leaf system-name { type string { length "1..16"; } description "System name used in WPP protocol messages"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list portal-group { key "group-name"; description "Enter the portal-group list instance"; leaf group-name { type types-sros:named-item; description "Portal group name"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the portal group"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list portal { key "router-instance name"; max-elements 8; description "Add a list entry for portal"; leaf router-instance { type string; description "Router on which the portal is configured"; } leaf name { type types-sros:named-item; description "Portal name"; } } // list portal } // list portal-group } // container wpp } // container aaa list aps { if-feature nokia-features:sros-port-aps; key "group-id"; description "Enter the aps list instance"; leaf group-id { type uint32 { range "1..128"; } description "Specifies the APS group identifier."; } leaf advertise-interval { type uint32 { range "10..650"; } units "deciseconds"; default "10"; description "Configure interval between subsequent advertisement messages."; } leaf hold-time { type uint32 { range "10..650"; } units "deciseconds"; default "30"; description "Configure how long to wait for an APS advertisement packet before the peer in a Multi-Chassis APS group is considered operationally down."; } leaf switching-mode { type enumeration { enum "uni-directional" { value 1; } enum "bi-directional" { value 2; } } default "bi-directional"; description "Configure the switching mode for the APS port."; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice annexb-choice { default "non-annexb"; case annexb { container annexb { presence "Enter the 'annexb' context"; description "Enable the annexb context"; leaf wait-to-restore-time { type uint32 { range "0..3600"; } units "seconds"; default "300"; description "Configure Annex B Wait To Restore time."; } leaf-list working-circuit { type leafref { path "../../../port/port-id"; } max-elements 2; ordered-by user; description "Configure the physical ports that will act as the working circuits for this APS group."; } } // container annexb } case non-annexb { leaf neighbor { type types-sros:ip-address; default "0.0.0.0"; description "Configure neighbor's IP address for Multi-Chassis APS."; } leaf protect-circuit { type leafref { path "../../port/port-id"; } description "Physical port that acts as the protection circuit"; } leaf working-circuit { type leafref { path "../../port/port-id"; } description "Configure a physical port that will act as the working circuit for this APS group."; } container revert { presence "Enter the 'revert' context"; description "Enable the revert context"; leaf time { type uint32 { range "0|60..3600"; } units "seconds"; default "300"; description "Configure how long to wait before switching back to the working circuit after it has been restored to service."; } } // container revert } } } // list aps container bfd { description "Enter the bfd context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list bfd-template { key "name"; description "Enter the bfd-template list instance"; leaf name { type types-sros:named-item; description "BFD template name"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; default "100"; description "Echo receive interval"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Detection multiplier value"; } leaf receive-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Receive interval"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Transmit interval"; } leaf type { type enumeration { enum "cpm-np" { value 1; } } description "Local termination point for the BFD session"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list bfd-template container seamless-bfd { description "Enter the seamless-bfd context"; list reflector { key "name"; max-elements 1; description "Enter the reflector list instance"; leaf name { type types-sros:named-item; description "S-BFD reflector name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the seamless BFD reflector"; } leaf discriminator { type uint32 { range "524288..526335"; } description "Discriminator of the seamless BFD reflector"; } leaf description { type types-sros:description; description "Text description"; } leaf local-state { type enumeration { enum "admin-down" { value 0; } enum "up" { value 3; } } default "up"; description "Local state of the seamless BFD reflector"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list reflector } // container seamless-bfd } // container bfd container bmp { description "Enter the bmp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the BMP operation"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collector { description "Enter the collector context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the BMP collector"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container connection { sros-ext:auto-restart-to-modify; description "Enter the connection context"; container ipv4 { sros-ext:auto-restart-to-modify; description "Enter the ipv4 context"; leaf address { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "IPv4 address."; } leaf port { type types-sros:tcp-udp-port-non-zero; sros-ext:auto-restart-to-modify; default "4210"; description "IPv4 TCP port."; } } // container ipv4 container ipv6 { sros-ext:auto-restart-to-modify; description "Enter the ipv6 context"; leaf address { type types-sros:ipv6-unicast-address; sros-ext:auto-restart-to-modify; description "IPv6 address."; } leaf port { type types-sros:tcp-udp-port-non-zero; sros-ext:auto-restart-to-modify; default "4210"; description "IPv6 TCP port."; } } // container ipv6 } // container connection } // container collector list station { key "name"; max-elements 8; description "Enter the station list instance"; leaf name { type types-sros:named-item; description "BMP monitoring station name"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the BMP monitoring station"; } leaf initiation-message { type string { length "1..255"; } description "Free form initiation message for a type 0 TLV to be sent to the BMP monitoring station"; } leaf stats-report-interval { type types-sros:time-duration { range "15..65535"; } units "seconds"; description "Frequency of statistics reporting messages sent to the BMP monitoring station"; } leaf report-local-routes { type boolean; default "false"; description "Allow local route reporting to the BMP monitoring station"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container connection { description "Enter the connection context"; leaf connect-retry { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "120"; description "Maximum time between connection attempts"; } leaf local-address { type types-sros:ip-unicast-address; description "Local IP address to communicate with the BMP monitoring station"; } leaf router-instance { type string; default "Base"; description "Router instance used to reach the BMP station"; } container station-address { description "Enter the station-address context"; leaf ip-address { type types-sros:ip-unicast-address; description "IP address of the BMP monitoring station"; } leaf port { type types-sros:tcp-udp-port-non-zero; description "Port of the BMP monitoring station"; } } // container station-address container tcp-keepalive { description "Enter the tcp-keepalive context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the TCP keepalive"; } leaf keep-idle { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "600"; description "Time until the first TCP keepalive probe is sent."; } leaf keep-interval { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "15"; description "Time between two TCP keepalive probes"; } leaf keep-count { type uint32 { range "3..100"; } default "4"; description "Number of missed keepalives before the TCP connection is declared down"; } } // container tcp-keepalive } // container connection container family { description "Enter the family context"; leaf ipv4 { type boolean; default "true"; description "Support IPv4 address family"; } leaf ipv6 { type boolean; default "false"; description "Support IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Support labeled IPv4 address family"; } leaf label-ipv6 { type boolean; default "false"; description "Support labeled IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Support IPv4 multicast address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Support IPv6 multicast address family"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support VPN IPv4 address family"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support VPN IPv6 address family"; } leaf mcast-vpn-ipv4 { type boolean; default "false"; description "Support IPv4 VPN multicast address family"; } leaf mcast-vpn-ipv6 { type boolean; default "false"; description "Support IPv6 VPN multicast address family"; } leaf evpn { type boolean; default "false"; description "Support EVPN address family"; } leaf l2-vpn { type boolean; default "false"; description "Support L2 VPN address family"; } } // container family } // list station } // container bmp container call-trace { description "Enter the call-trace context"; leaf max-files-number { type uint32 { range "1..1024"; } default "200"; description "Maximum number of all call trace log files stored on all compact flash cards"; } leaf primary-cf { type enumeration { enum "cf1" { value 1; } enum "cf2" { value 2; } } default "cf1"; description "Compact flash card to be used as primary local storage location to save the call trace log files"; } leaf buffering { type boolean; default "false"; description "Buffer messages until the trace key is known"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list location { key "location-type"; description "Enter the location list instance"; leaf location-type { type enumeration { enum "cf1" { value 1; } enum "cf2" { value 2; } } description "ID of the compact flash card to be used"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of compact flash for log storage"; } leaf size-limit { type union { type uint32 { range "1..65536"; } type enumeration { enum "unlimited" { value 0; } } } default "1000"; description "Maximum cumulative size of all local call trace log files stored on the given compact flash card"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list location list trace-profile { key "name"; description "Enter the trace-profile list instance"; leaf name { type types-sros:named-item; description "Unique name for the call trace profile"; } leaf description { type types-sros:description; description "Text description"; } leaf size-limit { type uint32 { range "1..1000"; } units "megabytes"; default "10"; description "Maximum data volume generated by a single call trace job to the output"; } leaf time-limit { type types-sros:time-duration { range "1..604800"; } default "86400"; description "Maximum time for a single call trace job"; } leaf events { type enumeration { enum "public-only" { value 2; } enum "all" { value 3; } } description "Events to include in the captured trace"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container applications { description "Enter the applications context"; leaf connectivity-management { type boolean; default "true"; description "Allow tracing for connectivity protocols"; } leaf radius-auth { type boolean; default "true"; description "Allow tracing for messages and events related to RADIUS authentication"; } leaf radius-acct { type boolean; default "true"; description "Allow tracing for messages and events related to RADIUS-based accounting"; } leaf python { type boolean; default "true"; description "Allow tracing for Python script execution"; } leaf ludb { type boolean; default "true"; description "Allow tracing for local user database lookups"; } leaf msap { type boolean; default "true"; description "Allow tracing for MSAP creation events"; } leaf ppp-event { type boolean; default "false"; description "Allow tracing for PPP state machine related events"; } } // container applications container output { description "Enter the output context"; choice destination { default "local-storage"; case local-storage { leaf local-storage { type empty; description "Default destination for output"; } } case debug { leaf debug { type empty; description "Trace log generated by a call trace job to be decoded as test and sent to debug logging"; } } case live { container live { presence "Enter the 'live' context"; description "Enable the live context"; leaf port { type types-nat:port-number; default "29770"; description "TCP IP port"; } leaf router-instance { type string; default "Base"; description "Router instance or VPRN service name"; } choice live { mandatory true; case ip-address { leaf ip-address { type types-sros:ip-address; description "IP address of the live output destination"; } } case fqdn { leaf fqdn { type string { length "1..255"; } description "Fully qualified domain name of the live output destination"; } } } } // container live } } } // container output } // list trace-profile } // container call-trace list card { key "slot-number"; description "Enter the card list instance"; leaf slot-number { type types-card:iom-card-slot; description "IOM slot within a chassis"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the I/O module"; } leaf card-type { type types-card:sros-iom-type; sros-ext:immutable; description "Card type"; } leaf fail-on-error { type boolean; default "false"; description "Set the Operational State of the card to Failed when an error is detected"; } leaf reset-on-recoverable-error { type boolean; default "false"; description "Reset card for fatal memory parity error on a Q-chip of the card, regardless of fail-on-error setting"; } leaf level { type types-card:sros-iom-level; sros-ext:immutable; description "Functional level of I/O module for slot"; } leaf power-save { type boolean; default "false"; description "Keeps the card in a low-power, unloaded state when set."; } leaf filter-profile { type types-card:filter-profile; sros-ext:auto-restart-to-modify; default "none"; description "The filter allocation profile for the card."; } leaf hash-seed-shift { type uint32 { range "1..16"; } default "2"; description "Number of bits to shift the hash seed result"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list upgrade { key "upgrade-index"; description "Enter the upgrade list instance"; leaf upgrade-index { type uint32 { range "1..6"; } description "Value specifying the order of the upgrade"; } leaf path { type types-card:sros-iom-level-upgrade-path; sros-ext:immutable; mandatory true; description "Upgrade path of the I/O module for the slot"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list upgrade list event { key "type"; description "Enter the event list instance"; leaf type { type enumeration { enum "soft-error" { value 1; } } description "The unique value which identifies the card event type to be monitored."; } leaf action { type types-chassis:hw-event-action; description "Provisions action to be taken on the card when the event is detected."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list event container virtual-scheduler-adjustment { description "Enter the virtual-scheduler-adjustment context"; leaf internal-scheduler-weight-mode { type types-qos:internal-scheduler-weight-mode; default "auto"; description "Internal scheduler weight mode"; } leaf slow-queue-threshold-rate { type uint32 { range "0..1000000"; } units "kilobps"; default "1000"; description "Rate of the slow queue threshold"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container interval { description "Enter the interval context"; leaf scheduler-run-minimum { type decimal64 { range "0.01..1000.00"; fraction-digits 2; } units "percent"; default "100.00"; description "Minimum time of the scheduler run"; } leaf task-scheduling { type decimal64 { range "0.01..1000.00"; fraction-digits 2; } units "percent"; default "100.00"; description "Task scheduling interval"; } container rate-calculation-minimum { description "Enter the rate-calculation-minimum context"; leaf fast-queue { type decimal64 { range "0.01..1000.00"; fraction-digits 2; } units "percent"; default "100.00"; description "Default minimum rate calculation time for fast queues"; } leaf slow-queue { type decimal64 { range "0.01..1000.00"; fraction-digits 2; } units "percent"; default "100.00"; description "Default minimum rate calculation time for slow queues"; } } // container rate-calculation-minimum } // container interval } // container virtual-scheduler-adjustment list mda { key "mda-slot"; description "Enter the mda list instance"; leaf mda-slot { type uint32 { range "1..6"; } description "MDA slot"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the MDA"; } leaf fail-on-error { type boolean; default "false"; description "Set the Operational State of the MDA to Failed when threshold of egress XPL errors is reached"; } leaf mda-type { type types-card:sros-mda-type; sros-ext:immutable; description "MDA configuration for slot"; } leaf power-priority-level { type uint32 { range "1..200"; } default "150"; description "Power priority value, lower value has higher priority"; } leaf reset-on-recoverable-error { type boolean; default "false"; description "Reset MDA for fatal memory parity error on a Q-chip of the MDA, regardless of fail-on-error setting"; } leaf sync-e { type enumeration { enum "true" { value 1; } enum "false" { value 2; } } description "Synchronous Ethernet"; } leaf level { type types-card:sros-mda-level; sros-ext:immutable; description "Functional level of MDA for slot"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container clock-mode { description "Enter the clock-mode context"; leaf mode { type enumeration { enum "adaptive" { value 1; } enum "differential" { value 2; } } description "Clock mode"; } leaf timestamp-freq { type uint32 { range "19440|77760|103680"; } description "Differential timestamp frequency"; } } // container clock-mode container egress-xpl { description "Enter the egress-xpl context"; leaf threshold { type uint32 { range "1..1000000"; } units "xpl errors"; default "1000"; description "Threshold value for egress XPL errors"; } leaf window { type uint32 { range "1..1440"; } units "minutes"; default "60"; description "Time interval to measure frequency of egress XPL errors against threshold value"; } } // container egress-xpl container ingress-xpl { description "Enter the ingress-xpl context"; leaf threshold { type uint32 { range "1..1000000"; } units "xpl errors"; default "1000"; description "Threshold value for ingress XPL errors"; } leaf window { type uint32 { range "1..1440"; } units "minutes"; default "60"; description "Time interval to measure frequency of ingress XPL errors against threshold value"; } } // container ingress-xpl list upgrade { key "upgrade-index"; description "Enter the upgrade list instance"; leaf upgrade-index { type uint32 { range "1..6"; } description "Value specifying the order of the upgrade"; } leaf path { type types-card:sros-mda-level-upgrade-path; sros-ext:immutable; mandatory true; description "Upgrade path of the MDA for the slot"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list upgrade container access { description "Enter the access context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list pool { key "name"; description "Enter the pool list instance"; leaf name { type types-sros:named-item; description "Unique pool name for MDA"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Configure amber alarm threshold allowed on over-subscription."; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Configure red alarm threshold allowed on over-subscription."; } leaf slope-policy { type leafref { path "../../../../../../qos/slope-policy/slope-policy-name"; } description "Configure the slope policy."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type int32 { range "0..100"; } units "percent"; description "Configure the percentage of pool size reserved for CBS. For network, the default value is computed as the sum of the CBS request by the entities using the pool. For access, the default value is 30%."; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS size of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS size of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container egress container ingress { description "Enter the ingress context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list pool { key "name"; description "Enter the pool list instance"; leaf name { type types-sros:named-item; description "Unique pool name for MDA"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Amber alarm threshold allowed on over-subscription"; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Red alarm threshold allowed on over-subscription"; } leaf slope-policy { type leafref { path "../../../../../../qos/slope-policy/slope-policy-name"; } description "Slope policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type int32 { range "0..100"; } units "percent"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS size of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS size of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container ingress } // container access container egress { status obsolete; description "Enter the egress context"; leaf hsmda-pool-policy { status obsolete; type leafref { path "../../../../qos/hsmda-pool-policy/hsmda-pool-policy-name"; } description "Egress HSMDA pool policy"; } container hsmda-aggregate-queue-burst { status obsolete; description "Enter the hsmda-aggregate-queue-burst context"; leaf high-burst-increase { status obsolete; type int32 { range "0..65536"; } units "bytes"; description "High burst increase"; } leaf low-burst-multiplier { status obsolete; type int32 { range "1..65536"; } description "Low burst multiplier"; } } // container hsmda-aggregate-queue-burst } // container egress list event { key "type"; description "Enter the event list instance"; leaf type { type enumeration { enum "soft-error" { value 1; } enum "internal-frame-loss" { value 2; } enum "memory-error" { value 3; } } description "MDA event type to be monitored"; } leaf action { type types-chassis:hw-event-action; description "Action when a specific hardware error event is raised"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list event container network { description "Enter the network context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list pool { key "name"; description "Enter the pool list instance"; leaf name { type types-sros:named-item; description "Unique pool name for MDA"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Configure amber alarm threshold allowed on over-subscription."; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Configure red alarm threshold allowed on over-subscription."; } leaf slope-policy { type leafref { path "../../../../../../qos/slope-policy/slope-policy-name"; } description "Configure the slope policy."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type int32 { range "0..100"; } units "percent"; description "Configure the percentage of pool size reserved for CBS. For network, the default value is computed as the sum of the CBS request by the entities using the pool. For access, the default value is 30%."; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS size of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS size of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container egress container ingress { description "Enter the ingress context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf queue-policy { status obsolete; type leafref { path "../../../../../qos/network-queue/network-queue-policy"; } description "Network-queue policy"; } list pool { status obsolete; key "name"; description "Enter the pool list instance"; leaf name { status obsolete; type types-sros:named-item; description "Unique pool name for MDA"; } leaf amber-alarm-threshold { status obsolete; type uint32 { range "1..1000"; } units "percent"; description "Amber alarm threshold allowed on over-subscription"; } leaf red-alarm-threshold { status obsolete; type uint32 { range "1..1000"; } units "percent"; description "Red alarm threshold allowed on over-subscription"; } leaf slope-policy { status obsolete; type leafref { path "../../../../../../qos/slope-policy/slope-policy-name"; } description "Slope policy name"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resv-cbs { status obsolete; description "Enter the resv-cbs context"; leaf cbs { status obsolete; type int32 { range "0..100"; } units "percent"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { status obsolete; description "Enter the amber-alarm-action context"; leaf step { status obsolete; type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS size of the pool"; } leaf max { status obsolete; type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS size of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container ingress } // container network } // list mda list xiom { key "xiom-slot"; description "Enter the xiom list instance"; leaf xiom-slot { type string { length "2"; pattern "x[1-2]" { error-message "Invalid xiom-slot."; } } description "XIOM slot ID"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the XIOM"; } leaf fail-on-error { type boolean; default "false"; description "Set Operational State to Failed if an error is detected"; } leaf level { type types-card:sros-xiom-level; sros-ext:immutable; description "License level of the XIOM"; } leaf reset-on-recoverable-error { type boolean; default "false"; description "Reset XIOM for fatal memory parity error on a Q-chip"; } leaf xiom-type { type types-card:sros-xiom-type; sros-ext:immutable; description "XIOM type"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list mda { key "mda-slot"; description "Enter the mda list instance"; leaf mda-slot { type uint32 { range "1..2"; } description "MDA-s slot number"; } leaf mda-type { type types-card:sros-xiom-mda-type; sros-ext:immutable; description "MDA-s type provisioned for the XIOM slot"; } leaf power-priority-level { type uint32 { range "1..200"; } default "150"; description "Power priority level for the XIOM MDA-s"; } leaf sync-e { type enumeration { enum "true" { value 1; } enum "false" { value 2; } } description "Synchronous Ethernet operation capability"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the MDA"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mda list upgrade { key "upgrade-index"; description "Enter the upgrade list instance"; leaf upgrade-index { type uint32 { range "1..6"; } description "Value specifying the order of the upgrade"; } leaf path { type types-card:sros-xiom-level-upgrade-path; sros-ext:immutable; mandatory true; description "Upgrade name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list upgrade } // list xiom list fp { key "fp-number"; description "Enter the fp list instance"; leaf fp-number { type uint32 { range "1..8"; } description "Forwarding plane within a specific IOM card"; } leaf ingress-buffer-allocation { type decimal64 { range "20.00..80.00"; fraction-digits 2; } units "percent"; default "50.00"; description "Ingress buffer pool percentage for forwarding plane"; } leaf init-extract-prio-mode { type enumeration { enum "uniform" { value 1; } enum "l3-classify" { value 2; } } default "uniform"; description "Scheme to select initial drop priority of extracted control plane traffic"; } leaf stable-pool-sizing { type boolean; default "false"; description "Use a stable buffer pool allocation environment for all default port buffer pools on an FP"; } leaf fp-resource-policy { type leafref { path "../../../qos/fp-resource-policy/fp-resource-policy-name"; } sros-ext:card-auto-reset-on-modify; description "FP resource policy name"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf policy-accounting { status obsolete; type uint32 { range "1000..128000"; } description "Number of stats resources for policy accounting for the forwarding plane"; } container dist-cpu-protection { status obsolete; description "Enter the dist-cpu-protection context"; leaf dynamic-enforcement-policer-pool { status obsolete; type uint32 { range "1000..32000"; } description "Number of policers reserved as enforcement policers use"; } } // container dist-cpu-protection container egress { description "Enter the egress context"; leaf hs-fixed-high-thresh-delta { type int32 { range "0..65536"; } description "High threshold delta on forwarding plane"; } leaf hs-pool-policy { type leafref { path "../../../../qos/hs-pool-policy/name"; } description "HS pool policy"; } container wred-queue-control { description "Enter the wred-queue-control context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WRED queue control"; } leaf buffer-allocation { type decimal64 { range "0.01..99.99"; fraction-digits 2; } units "percent"; default "25.00"; description "Configure the WRED queue aggregate buffer allocation which will be set aside for WRED queue buffer pools"; } leaf reserved-cbs { type decimal64 { range "0.01..99.99"; fraction-digits 2; } units "percent"; default "25.00"; description "Configure the buffers within the WRED pool that will be set aside for WRED queues operating within their configured CBS thresholds."; } leaf slope-policy { type leafref { path "../../../../../qos/slope-policy/slope-policy-name"; } description "Egress WRED queue control slope policy for forwarding plane"; } } // container wred-queue-control } // container egress container hi-bw-mcast-src { presence "Enter the 'hi-bw-mcast-src' context"; description "Enable the hi-bw-mcast-src context"; leaf alarm { type boolean; default "false"; description "Raise an alarm when more than one high bandwidth multicast traffic taps share a plane"; } leaf group { type uint32 { range "0..32"; } default "0"; description "Logical MSFP group of the MDA"; } leaf default-paths-only { type boolean; default "false"; description "Allocate only the two default paths (one high priority and one low priority) to dedicated MSFPs"; } } // container hi-bw-mcast-src container ingress { description "Enter the ingress context"; container access { description "Enter the access context"; list queue-group { key "queue-group-name instance-id"; description "Enter the queue-group list instance"; leaf queue-group-name { type leafref { path "../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Queue group name"; } leaf instance-id { type uint16 { range "1..65535"; } description "Instance ID"; } leaf accounting-policy { type leafref { path "../../../../../../log/accounting-policy/policy-id"; } description "Accounting policy for the FP ingress queue group"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics on FP ingress queue group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf max-rate { type types-qos:queue-pir-rate-override; units "kilobps"; description "Maximum rate override"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-threshold-separation { type types-qos:policer-burst-size-override; units "bytes"; description "Minimum threshold separation override"; } list priority { key "level"; description "Enter the priority list instance"; leaf level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type types-qos:policer-burst-size-override; units "bytes"; description "MBS contribution size override"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container overrides } // container policer-control-policy container policer-overrides { description "Enter the policer-overrides context"; list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../qos/queue-group-templates/ingress/queue-group[ingress-queue-group-name=current()/../../../queue-group-name]/policer/policer-id"; } description "Policer identifier"; } leaf cbs { type types-qos:policer-burst-size-override; units "bytes"; description "CBS parameter override"; } leaf mbs { type types-qos:policer-burst-size-override; units "bytes"; description "MBS parameter override"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet handled by the policer"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Stat mode for the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; leaf cir { type types-qos:queue-cir-rate-override; description "CIR rate"; } leaf pir { type types-qos:queue-pir-rate-override; description "PIR rate"; } } // container rate } // list policer } // container policer-overrides } // list queue-group } // container access container mcast-path-management { description "Enter the mcast-path-management context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress MCAST path management"; } leaf bandwidth-policy { type leafref { path "../../../../../multicast-management/bandwidth-policy/policy-name"; } description "Bandwidth policy associated with the MDA or forwarding plane for ingress multicast path management"; } } // container mcast-path-management container network { description "Enter the network context"; leaf queue-policy { type leafref { path "../../../../../qos/network-queue/network-queue-policy"; } description "Network policy queue policy"; } list queue-group { key "queue-group-name instance-id"; description "Enter the queue-group list instance"; leaf queue-group-name { type leafref { path "../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Queue group name"; } leaf instance-id { type uint16 { range "1..65535"; } description "Instance ID"; } leaf accounting-policy { type leafref { path "../../../../../../log/accounting-policy/policy-id"; } description "Accounting policy for the FP ingress queue group"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics on FP ingress queue group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf max-rate { type types-qos:queue-pir-rate-override; units "kilobps"; description "Maximum rate override"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-threshold-separation { type types-qos:policer-burst-size-override; units "bytes"; description "Minimum threshold separation override"; } list priority { key "level"; description "Enter the priority list instance"; leaf level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type types-qos:policer-burst-size-override; units "bytes"; description "MBS contribution size override"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container overrides } // container policer-control-policy container policer-overrides { description "Enter the policer-overrides context"; list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../qos/queue-group-templates/ingress/queue-group[ingress-queue-group-name=current()/../../../queue-group-name]/policer/policer-id"; } description "Policer identifier"; } leaf cbs { type types-qos:policer-burst-size-override; units "bytes"; description "CBS parameter override"; } leaf mbs { type types-qos:policer-burst-size-override; units "bytes"; description "MBS parameter override"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet handled by the policer"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Stat mode for the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; leaf cir { type types-qos:queue-cir-rate-override; description "CIR rate"; } leaf pir { type types-qos:queue-pir-rate-override; description "PIR rate"; } } // container rate } // list policer } // container policer-overrides } // list queue-group list pool { key "name"; description "Enter the pool list instance"; leaf name { type types-sros:named-item; description "Unique pool name for the FP"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Amber alarm threshold allowed on over-subscription"; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Red alarm threshold allowed on over-subscription"; } leaf slope-policy { type leafref { path "../../../../../../qos/slope-policy/slope-policy-name"; } description "Slope policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type int32 { range "0..100"; } units "percent"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS size of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS size of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container network container policy-accounting { description "Enter the policy-accounting context"; leaf policers { type uint32 { range "1..64000"; } description "Number of policer resources for policy accounting"; } leaf classes { type uint32 { range "1000..128000"; } description "Number of accounting classes for the forwarding plane"; } } // container policy-accounting container dist-cpu-protection { description "Enter the dist-cpu-protection context"; leaf dynamic-enforcement-policer-pool { type uint32 { range "1000..32000"; } description "Number of policers reserved as enforcement policers use"; } } // container dist-cpu-protection } // container ingress } // list fp } // list card container cflowd { presence "Enter the 'cflowd' context"; description "Enable the cflowd context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of Cflowd sampling"; } leaf analyze-gre-payload { type boolean; default "false"; description "Perform Cflowd analysis on the inner IP packet within a GRE packet"; } leaf analyze-l2tp-traffic { type boolean; default "false"; description "Analyze the inner IP header of an L2TP packet"; } leaf analyze-v4overv6-traffic { type boolean; default "false"; description "Analyze the inner IPv4 packet within an IPv6 packet"; } leaf cache-size { type uint32 { range "1000..2000000"; } units "flows"; description "Maximum number of active flows in the flow cache table"; } leaf enhanced-distribution { type boolean; default "false"; description "Include ingress port ID in the hashing algorithm used to distribute Cflowd sample traffic"; } leaf export-mode { type enumeration { enum "automatic" { value 1; } enum "manual" { value 2; } } default "automatic"; description "Export mode for flow data"; } leaf inband-collector-export-only { type boolean; default "false"; description "Export the traffic to all collectors only via in-band interfaces"; } leaf overflow { type uint32 { range "1..50"; } units "percent"; default "1"; description "Percentage of entries to remove from Cflowd cache when the maximum number of entries is exceeded"; } leaf template-retransmit { type uint32 { range "10..600"; } units "seconds"; default "600"; description "Time to resend template information"; } leaf use-vrtr-if-index { type boolean; default "false"; description "Export flow data using virtual router interface indexes"; } leaf active-flow-timeout { type uint32 { range "30..36000"; } units "seconds"; default "1800"; description "Maximum time before an active flow is exported"; } leaf inactive-flow-timeout { type uint32 { range "10..600"; } units "seconds"; default "15"; description "Time without matching packet before flow is inactive"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf active-timeout { status obsolete; type uint32 { range "1..600"; } units "minutes"; default "30"; description "Maximum time before an active flow is exported"; } leaf inactive-timeout { status obsolete; type uint32 { range "10..600"; } units "seconds"; default "15"; description "Time before the flow is considered inactive"; } leaf rate { status obsolete; type uint32 { range "1..10000"; } units "packets"; default "1000"; description "Rate at which traffic is sampled and sent for Cflowd analysis"; } list sample-profile { key "profile-id"; max-elements 5; description "Enter the sample-profile list instance"; leaf profile-id { type uint32 { range "1..5"; } description "The unique specifier of this sample-profile"; } leaf sample-rate { type uint32 { range "1..10000"; } default "1000"; description "The cflowd sampling rate for this profile"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sample-profile list collector { key "ip-address port"; max-elements 8; description "Enter the collector list instance"; leaf ip-address { type types-sros:ip-unicast-address; description "IP address of the remote Cflowd collector host"; } leaf port { type types-qos:tcp-udp-match-port { range "1..65535"; } description "UDP port number on the remote Cflowd collector host to receive the exported Cflowd data"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the cflowd collector"; } leaf autonomous-system-type { type enumeration { enum "origin" { value 1; } enum "peer" { value 2; } } default "origin"; description "Basis of the AS information included in flow data"; } leaf description { type types-sros:description; description "Text description"; } leaf router-instance { type string; default "management"; description "Router or service name"; } leaf template-set { type enumeration { enum "not-applicable" { value 0; } enum "basic" { value 1; } enum "mpls-ip" { value 2; } enum "l2-ip" { value 3; } enum "mpls-transport" { value 4; } } description "Template set for this Cflowd collector"; } leaf version { type types-cflowd:collector-version; sros-ext:immutable; mandatory true; description "Flow data collector version"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container aggregation { description "Enter the aggregation context"; leaf as-matrix { type boolean; default "false"; description "Base aggregation data on autonomous system (AS) information"; } leaf protocol-port { type boolean; default "false"; description "Aggregate flows based on the IP protocol, source port number, and destination port number"; } leaf source-prefix { type boolean; default "false"; description "Aggregate flows based on the source prefix information"; } leaf destination-prefix { type boolean; default "false"; description "Aggregate data based on the destination prefix information"; } leaf source-destination-prefix { type boolean; default "false"; description "Aggregate data based on the source and destination prefix information"; } leaf raw { type boolean; default "false"; description "Export flow data without aggregation"; } } // container aggregation container export-filter { when "../version = 9 or ../version = 10"; description "Enter the export-filter context"; container family { description "Enter the family context"; leaf ipv4 { type boolean; default "false"; description "Filter IPv4 flow data from being sent to the associated collector"; } leaf ipv6 { type boolean; default "false"; description "Filter IPv6 flow data from being sent to the associated collector"; } leaf mcast-ipv4 { type boolean; default "false"; description "Filter multicast IPv4 flow data from being sent to the associated collector"; } leaf mcast-ipv6 { type boolean; default "false"; description "Filter multicast IPv6 flow data from being sent to the associated collector"; } leaf l2-ip { type boolean; default "false"; description "Filter Layer 2 IP flow data from being sent to the associated collector"; } leaf mpls { type boolean; default "false"; description "Filter MPLS flow data from being sent to the associated collector"; } } // container family list router { key "router-instance"; description "Add a list entry for router"; leaf router-instance { type string; description "Router instance ID"; } } // list router container interface-list { description "Enter the interface-list context"; list router { key "router-name interface-name"; description "Add a list entry for router"; leaf router-name { type leafref { path "../../../../../../router/router-name"; } description "Administrative router name"; } leaf interface-name { type leafref { path "../../../../../../router[router-name=current()/../router-name]/interface/interface-name"; } description "Interface name"; } } // list router container service { description "Enter the service context"; list ies-interface { key "service-name interface-name"; description "Add a list entry for ies-interface"; leaf service-name { type leafref { path "../../../../../../../service/ies/service-name"; } description "Administrative service name"; } leaf interface-name { type leafref { path "../../../../../../../service/ies[service-name=current()/../service-name]/interface/interface-name"; } description "ies interface name"; } } // list ies-interface list ies-group-interface { key "service-name subscriber-interface-name group-interface-name"; description "Add a list entry for ies-group-interface"; leaf service-name { type leafref { path "../../../../../../../service/ies/service-name"; } description "Administrative service name"; } leaf subscriber-interface-name { type leafref { path "../../../../../../../service/ies[service-name=current()/../service-name]/subscriber-interface/interface-name"; } description "IES subscriber-interface name"; } leaf group-interface-name { type leafref { path "../../../../../../../service/ies[service-name=current()/../service-name]/subscriber-interface[interface-name=current()/../subscriber-interface-name]/group-interface/group-interface-name"; } description "IES group-interface name"; } } // list ies-group-interface list vprn-interface { key "service-name interface-name"; description "Add a list entry for vprn-interface"; leaf service-name { type leafref { path "../../../../../../../service/vprn/service-name"; } description "Administrative service name"; } leaf interface-name { type leafref { path "../../../../../../../service/vprn[service-name=current()/../service-name]/interface/interface-name"; } description "vprn interface name"; } } // list vprn-interface list vprn-network-interface { key "service-name network-interface-name"; description "Add a list entry for vprn-network-interface"; leaf service-name { type leafref { path "../../../../../../../service/vprn/service-name"; } description "Administrative service name"; } leaf network-interface-name { type leafref { path "../../../../../../../service/vprn[service-name=current()/../service-name]/network-interface/interface-name"; } description "VPRN network-interface name"; } } // list vprn-network-interface list vprn-group-interface { key "service-name subscriber-interface-name group-interface-name"; description "Add a list entry for vprn-group-interface"; leaf service-name { type leafref { path "../../../../../../../service/vprn/service-name"; } description "Administrative service name"; } leaf subscriber-interface-name { type leafref { path "../../../../../../../service/vprn[service-name=current()/../service-name]/subscriber-interface/interface-name"; } description "VPRN subscriber-interface name"; } leaf group-interface-name { type leafref { path "../../../../../../../service/vprn[service-name=current()/../service-name]/subscriber-interface[interface-name=current()/../subscriber-interface-name]/group-interface/group-interface-name"; } description "vprn group-interface name"; } } // list vprn-group-interface } // container service } // container interface-list } // container export-filter } // list collector } // container cflowd list chassis { key "chassis-class chassis-number"; description "Enter the chassis list instance"; leaf chassis-class { type types-chassis:chassis-class; description "Functional use of the physical chassis"; } leaf chassis-number { type uint32 { range "1..100"; } description "Unique index to identify this physical chassis"; } leaf monitor-filter-door { if-feature nokia-features:sros-filter-door-monitoring; type boolean; default "false"; description "The value of monitor-filter-door specifies whether or not a filter door open or missing condition will be monitored by the system."; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list power-supply { key "power-supply-id"; description "Enter the power-supply list instance"; leaf power-supply-id { type uint32 { range "1..31"; } description "Unique identifier index for a power supply tray in the chassis"; } leaf power-supply-type { type enumeration { enum "none" { value 0; } enum "dc-single" { value 1; } enum "ac-single" { value 2; } enum "ac-multiple" { value 3; } enum "auto" { value 4; } enum "dc-multiple" { value 5; } } default "auto"; description "Power supply type"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list power-supply list peq { key "peq-slot"; description "Enter the peq list instance"; leaf peq-slot { type uint32 { range "1..31"; } description "Unique identifier index for a power supply tray in the chassis"; } leaf input-power-mode { type uint32 { range "60|80"; } units "amperes"; description "Input power mode of the PEQ"; } leaf peq-type { type types-system:peq-type; sros-ext:immutable; description "APEQ type"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PEQ"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peq list power-connection-module { key "pcm-slot"; description "Enter the power-connection-module list instance"; leaf pcm-slot { type uint32 { range "1..12"; } description "Unique identifier index for a power control module in the chassis"; } leaf pcm-type { type types-chassis:pcm-type; sros-ext:immutable; description "PCM type"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list power-connection-module list power-module { key "power-module-id"; description "Enter the power-module list instance"; leaf power-module-id { type uint32 { range "1..12"; } description "Unique identifier index for a power shelf in chassis"; } leaf power-module-type { type types-chassis:power-module-type; sros-ext:immutable; description "Power module type"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the power module"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list power-module list power-shelf { if-feature nokia-features:sros-power-shelf; key "power-shelf-id"; description "Enter the power-shelf list instance"; leaf power-shelf-id { type uint32 { range "1..2"; } description "Unique identifier index for a power shelf in chassis"; } leaf power-shelf-type { type types-chassis:power-shelf-type; sros-ext:immutable; description "Power shelf type"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the power shelf"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list power-module { key "power-module-id"; description "Enter the power-module list instance"; leaf power-module-id { type uint32 { range "1..12"; } description "Unique identifier index for a power shelf in chassis"; } leaf power-module-type { type types-chassis:power-module-type; sros-ext:immutable; description "Power module type"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the power module"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list power-module } // list power-shelf } // list chassis container connection-profile { description "Enter the connection-profile context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list vlan { key "connection-profile-id"; description "Enter the vlan list instance"; leaf connection-profile-id { type uint32 { range "1..8000"; } description "Identifier of this connection profile"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list qtag-range { key "start"; description "Enter the qtag-range list instance"; leaf start { type int32 { range "1..4094"; } description "Lower bound of VLAN range for connection profile"; } leaf end { type int32 { range "1..4094"; } sros-ext:immutable; description "Upper bound of VLAN range for connection profile"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list qtag-range } // list vlan } // container connection-profile list esa { key "esa-id"; description "Enter the esa list instance"; leaf esa-id { type types-esa:esa-id; description "ESA ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ESA"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list host-port { key "host-port"; max-elements 2; description "Add a list entry for host-port"; leaf host-port { type types-sros:port; description "Ethernet port associated with the ESA"; } } // list host-port list vm { key "vm-id"; description "Enter the vm list instance"; leaf vm-id { type types-esa:vm-id; description "VM ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ESA-VM instance"; } leaf description { type types-sros:description; description "Text description"; } leaf host-port { type leafref { path "../../host-port/host-port"; } sros-ext:immutable; description "Ethernet port associated with the ESA-VM instance"; } leaf vm-type { type enumeration { enum "aa" { value 1; } enum "bb" { value 2; } enum "tunnel" { value 3; } } sros-ext:immutable; description "ESA-VM type"; } leaf cores { type uint32 { range "0..128"; } sros-ext:auto-restart-to-modify; default "0"; description "Number of CPU physical cores allocated to the ESA-VM"; } leaf memory { type uint32 { range "0..256"; } units "gigabytes"; sros-ext:auto-restart-to-modify; default "0"; description "Amount of memory allocated to the ESA-VM"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list vm } // list esa container eth-cfm { description "Enter the eth-cfm context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list domain { key "md-admin-name"; description "Enter the domain list instance"; leaf md-admin-name { type types-eth-cfm:admin-name; description "Unique domain name"; } leaf level { type types-eth-cfm:mp-level; sros-ext:immutable; mandatory true; description "Maintenance Domain Level (MD Level)"; } leaf md-index { type uint32 { range "1..max"; } sros-ext:immutable; description "The index of the Maintenance Domain (MD)"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice md-name { mandatory true; case dns { leaf dns { type string { length "1..43"; } sros-ext:immutable; description "Domain name like text string derived from a DNS name"; } } case mac { leaf mac { type string { length "13..23"; pattern "[0-9a-fA-F]{1,2}(:[0-9a-fA-F]{1,2}){5}-[0-9]{1,5}"; } sros-ext:immutable; description "Maintenance domain MAC name"; } } case name { leaf name { type string { length "1..43"; } sros-ext:immutable; description "Maintenance domain name as an ASCII string"; } } case format { leaf format { type enumeration { enum "none" { value 0; } } sros-ext:immutable; description "Maintenance domain name not to be provided"; } } } list association { key "ma-admin-name"; description "Enter the association list instance"; leaf ma-admin-name { type types-eth-cfm:admin-name; description "Domain association name"; } leaf ma-index { type uint32 { range "1..max"; } sros-ext:immutable; description "Maintenance Association (MA) table index"; } leaf ccm-interval { type types-eth-cfm:ccm-interval-type; description "CCM transmission interval for all MEPs in the association"; } leaf auto-mep-discovery { type boolean; default "false"; description "Enable the ability to auto-discover remote MEPs in the network"; } leaf facility-id-permission { type types-eth-cfm:facility-id-permission-type; default "none"; description "Sender ID TLV information for facility base MEPs"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice ma-name { mandatory true; description "The Maintenance Domain Association name It is the part of the Maintenance Association Identifier which is unique within the Maintenance Domain Name and is appended to the Maintenance Domain Name to form the Maintenance Association Identifier (MAID)."; case icc-based { leaf icc-based { type string { length "8..13"; } sros-ext:immutable; description "Maintenance Association name in ICC-based format"; } } case integer { leaf integer { type uint32 { range "0..65535"; } sros-ext:immutable; description "Maintenance Association name in integer format"; } } case string { leaf string { type string { length "1..45"; } sros-ext:immutable; description "Maintenance Association name in raw ASCII string format"; } } case vid { leaf vid { type uint32 { range "0..4094"; } sros-ext:immutable; description "Primary VLAN ID for the Maintenance Association name"; } } case vpn-id { leaf vpn-id { type string { length "0..15"; pattern "[0-9A-F]{6}(:[0-9A-F]{8})"; } sros-ext:immutable; description "VPN ID for the Maintenance Association name"; } } } container ccm-hold-time { description "Enter the ccm-hold-time context"; leaf down { when "../../ccm-interval = '10ms' or ../../ccm-interval = '100ms'"; type uint32 { range "1..1000"; } units "centiseconds"; description "Additional time before a MEP declares a fault, in CCM timeout conditions"; } } // container ccm-hold-time list bridge-identifier { key "bridge-name"; max-elements 1; description "Enter the bridge-identifier list instance"; leaf bridge-name { type types-services:service-name; description "Bridge name for this association"; } leaf vlan { type int32 { range "1..4094"; } description "VLAN ID for the default domain index"; } leaf mhf-creation { type types-eth-cfm:tmnx-mhf-creation-type; default "none"; description "MIP method of creation"; } leaf id-permission { type types-eth-cfm:facility-id-permission-type; default "none"; description "Strategy for the inclusion of Sender ID TLV information"; } leaf mip-ltr-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of the Linktrace Response Message (ETH-LTR) from a MIP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list bridge-identifier list remote-mep { key "mep-id"; description "Enter the remote-mep list instance"; leaf mep-id { type types-eth-cfm:mep-id-type; description "Remote MEP ID"; } leaf remote-mac { type types-sros:mac-unicast-address-no-zero; description "Remote MAC Address for transmitting CFM packets to remote MEPs"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list remote-mep } // list association } // list domain } // container eth-cfm container filter { description "Enter the filter context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list redirect-policy { key "redirect-policy-name"; description "Enter the redirect-policy list instance"; leaf redirect-policy-name { type types-sros:named-item; description "Redirect policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf router-instance { type string; description "Routing context to use for route lookup"; } leaf sticky-dest { type types-filter:filter-sticky-dest; units "seconds"; description "Time required by system before applying the current best destination as active destination"; } leaf notify-dest-change { type boolean; default "false"; description "The value of the object indicates whether to send tFilterRPActiveDestChangeEvent notification for this redirect policy active destination changes."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list destination { key "destination-address"; description "Enter the destination list instance"; leaf destination-address { type types-sros:ip-unicast-address; description "IP address and type of destination"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the destination"; } leaf description { type types-sros:description; description "Text description"; } leaf priority { type uint32 { range "1..255"; } default "100"; description "Priority for this destination"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ping-test { presence "Enter the 'ping-test' context"; description "Enable the ping-test context"; leaf source-address { type types-sros:ip-address; description "Source address to use in the IP packet of the ping test"; } leaf interval { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Time between consecutive requests which are sent to the far end host"; } leaf timeout { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Time required to receive a response from the far end host"; } leaf drop-count { type uint32 { range "1..60"; } default "3"; description "Number of consecutive requests that fail before destination is declared unreachable"; } leaf hold-down { type uint32 { range "0..86400"; } units "seconds"; default "0"; description "Time for the system to be held down if this test has marked it unreachable"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ping-test container unicast-rt-test { presence "Enter the 'unicast-rt-test' context"; description "Enable the unicast-rt-test context"; } // container unicast-rt-test } // list destination } // list redirect-policy list redirect-policy-binding { key "binding-name"; max-elements 16; description "Enter the redirect-policy-binding list instance"; leaf binding-name { type types-sros:named-item; description "Binding name"; } leaf binding-operator { type types-filter:filter-binding-operator; default "and"; description "The value of the this object indicates the logical operator to use when combining result of different destinations' tests."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list redirect-policy { key "redirect-policy-name"; description "Enter the redirect-policy list instance"; leaf redirect-policy-name { type leafref { path "../../../redirect-policy/redirect-policy-name"; } description "The redirect-policy identifier."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list destination { key "destination-address"; min-elements 1; description "Add a list entry for destination"; leaf destination-address { type leafref { path "../../../../redirect-policy[redirect-policy-name=current()/../../redirect-policy-name]/destination/destination-address"; } description "IP address of redirect policy destination to binding"; } } // list destination } // list redirect-policy } // list redirect-policy-binding list log { key "log-id"; description "Enter the log list instance"; leaf log-id { type types-filter:filter-log-id; description "Filter log identifier"; } leaf description { type types-sros:description-or-empty; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of filter logging"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container destination { description "Enter the destination context"; choice destination { default "memory"; case memory { container memory { description "Enter the memory context"; leaf max-entries { type uint32 { range "1..50000"; } default "1000"; description "Maximum number of memory entries that the log can store"; } leaf stop-on-full { type boolean; default "false"; description "Stop logging when maximum number of memory entries is reached or wrap-around is used"; } } // container memory } case syslog { container syslog { description "Enter the syslog context"; leaf name { type leafref { path "../../../../../log/syslog/syslog-name"; } description "Specifies the syslog Id to be used as destination."; } leaf syslog-id { status obsolete; type leafref { path "../../../../../log/syslog/syslog-name"; } description "ID of the Syslog server definition for filter logs"; } container summary { description "Enter the summary context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the summarization of filter log entries"; } leaf summary-crit { type types-filter:filter-log-summary-criterion; default "src-addr"; description "Summary for filter log entries"; } } // container summary } // container syslog } } } // container destination } // list log container match-list { description "Enter the match-list context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list protocol-list { key "protocol-list-name"; max-elements 512; description "Enter the protocol-list list instance"; leaf protocol-list-name { type types-sros:named-item; description "Protocol list name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list protocol { key "protocol-id"; max-elements 32; description "Add a list entry for protocol"; leaf protocol-id { type types-sros:ip-protocol; description "IP protocol identifier"; } } // list protocol } // list protocol-list list ip-prefix-list { key "prefix-list-name"; description "Enter the ip-prefix-list list instance"; leaf prefix-list-name { type types-sros:named-item; description "Prefix list name that is used for this prefix list"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container apply-path { description "Enter the apply-path context"; list bgp-peers { key "criterion-index"; description "Enter the bgp-peers list instance"; leaf criterion-index { type uint32 { range "1..255"; } description "Value of the enumerating BGP peers autogeneration configuration within list"; } leaf group { type types-sros:regular-expression-not-all-spaces; sros-ext:immutable; mandatory true; description "Regular expression to match against the base router BGP instance group configuration"; } leaf neighbor { type types-sros:regular-expression-not-all-spaces; sros-ext:immutable; mandatory true; description "Regular expression to match against the base router BGP instance neighbor configuration"; } leaf router-instance { type string; sros-ext:immutable; default "Base"; description "Target routing instance"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list bgp-peers } // container apply-path list prefix { key "ip-prefix"; max-elements 8192; description "Add a list entry for prefix"; leaf ip-prefix { type types-sros:ipv4-prefix; description "IPv4 prefix to be added to the prefix list"; } } // list prefix list prefix-exclude { key "ip-prefix"; max-elements 512; description "Add a list entry for prefix-exclude"; leaf ip-prefix { type types-sros:ipv4-prefix; description "IPv4 prefix to be added to the prefix list"; } } // list prefix-exclude } // list ip-prefix-list list ipv6-prefix-list { key "prefix-list-name"; description "Enter the ipv6-prefix-list list instance"; leaf prefix-list-name { type types-sros:named-item; description "Prefix list name that is used for this prefix list"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container apply-path { description "Enter the apply-path context"; list bgp-peers { key "criterion-index"; description "Enter the bgp-peers list instance"; leaf criterion-index { type uint32 { range "1..255"; } description "Value of the enumerating BGP peers autogeneration configuration within list"; } leaf group { type types-sros:regular-expression-not-all-spaces; sros-ext:immutable; mandatory true; description "Regular expression to match against the base router BGP instance group configuration"; } leaf neighbor { type types-sros:regular-expression-not-all-spaces; sros-ext:immutable; mandatory true; description "Regular expression to match against the base router BGP instance neighbor configuration"; } leaf router-instance { type string; sros-ext:immutable; default "Base"; description "Target routing instance"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list bgp-peers } // container apply-path list prefix { key "ipv6-prefix"; max-elements 8192; description "Add a list entry for prefix"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "Add IPv6 prefix to the list."; } } // list prefix list prefix-exclude { key "ipv6-prefix"; max-elements 512; description "Add a list entry for prefix-exclude"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "Add IPv6 prefix to the list."; } } // list prefix-exclude } // list ipv6-prefix-list list port-list { key "port-list-name"; max-elements 1024; description "Enter the port-list list instance"; leaf port-list-name { type types-sros:named-item; description "Port list name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list port { key "value"; description "Add a list entry for port"; leaf value { type int32 { range "0..65535"; } description "Port value"; } } // list port list range { key "start end"; description "Add a list entry for range"; leaf start { type int32 { range "0..65534"; } description "Highest value for TCP/UDP port range"; } leaf end { type int32 { range "1..65535"; } description "Highest value for TCP/UDP port range"; } } // list range } // list port-list } // container match-list list ip-filter { key "filter-name"; description "Enter the ip-filter list instance"; leaf filter-name { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "Filter name"; } leaf default-action { type types-filter:filter-default-action; default "drop"; description "Action for packets that do not match any entry"; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-filter:filter-scope; default "template"; description "Scope of this filter definition"; } leaf type { type enumeration { enum "normal" { value 0; } enum "src-mac" { value 1; } enum "packet-length" { value 2; } enum "destination-class" { value 3; } } default "normal"; description "Set of match criteria for the filter policy"; } leaf chain-to-system-filter { type boolean; default "false"; description "Chain filter policy to the active IPvX system filter policy"; } leaf filter-id { type types-filter:filter-id; sros-ext:immutable; description "IP filter ID"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container subscriber-mgmt { description "Enter the subscriber-mgmt context"; container host-specific-entry { description "Enter the host-specific-entry context"; container filter-rule { description "Enter the filter-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; mandatory true; description "Lower bound of range for subscriber host filter-rule entries from RADIUS/Diameter"; } leaf end { type types-filter:entry-id; mandatory true; description "Upper bound of range for filter-rule entries from RADIUS/Diameter"; } } // container range } // container filter-rule container credit-control { description "Enter the credit-control context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; mandatory true; description "Lower bound of range for entries from Credit Control"; } leaf end { type types-filter:entry-id; mandatory true; description "Upper bound of range for entries from Credit Control"; } } // container range } // container credit-control container watermark { description "Enter the watermark context"; leaf low { type int32 { range "0..100"; } default "90"; description "Low watermark for host-specific entries, to clear a table full alarm"; } leaf high { type int32 { range "0..100"; } default "95"; description "High watermark for host-specific entries, to raise a table full alarm"; } } // container watermark } // container host-specific-entry container shared-entry { description "Enter the shared-entry context"; container filter-rule { description "Enter the filter-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; mandatory true; description "Lower bound of range for shared filter-rules from RADIUS"; } leaf end { type types-filter:entry-id; mandatory true; description "Upper bound of range for shared-filter rules from RADIUS"; } } // container range } // container filter-rule container pcc-rule { description "Enter the pcc-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; mandatory true; description "Lower bound of range for pcc-rule filter entries from Diameter"; } leaf end { type types-filter:entry-id; mandatory true; description "Upper bound of range for pcc-rule filter entries from Diameter"; } } // container range } // container pcc-rule container watermark { presence "Enter the 'watermark' context"; description "Enable the watermark context"; leaf low { type int32 { range "0..7999"; } mandatory true; description "Limit of RADIUS or Diameter shared filters before clearing high watermark notification"; } leaf high { type int32 { range "1..8000"; } mandatory true; description "Limit of RADIUS shared filters before generating high watermark notification"; } } // container watermark } // container shared-entry } // container subscriber-mgmt list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-filter:entry-id; description "ID for a match criteria and the corresponding action"; } leaf description { type types-sros:description; description "Text description"; } leaf pbr-down-action-override { type types-filter:filter-pbr-down-action-ovr; description "Action when PBR or PBF target for this entry is not available"; } leaf sticky-dest { type types-filter:filter-sticky-dest; units "seconds"; description "Time before action with available PBR or PBF destination and highest priority"; } leaf log { type leafref { path "../../../log/log-id"; } description "Log that is used for packets matching this entry"; } leaf collect-stats { type boolean; default "false"; description "Enable/disable statistics collection"; } leaf egress-pbr { type types-filter:filter-egress-pbr; sros-ext:immutable; description "PBR that has an effect when this filter is applied on egress"; } leaf filter-sample { type boolean; default "false"; description "Sample matching traffic if IP interface is set to cflowd ACL mode"; } leaf interface-sample { type boolean; default "true"; description "Sample matching traffic if IP interface is set to cflowd interface mode"; } leaf sample-profile { type leafref { path "../../../../cflowd/sample-profile/profile-id"; } description "Cflowd sample profile ID for matching packets"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf dscp { type types-qos:dscp-name; description "DSCP used as an IP filter match criterion"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } enum "first-only" { value 4; } enum "non-first-only" { value 5; } } description "Match criterion for fragmented packets"; } leaf multiple-option { type boolean; description "Match based on presence of multiple options in header"; } leaf option-present { type boolean; description "Match on the presence of any IP option in the packet"; } leaf src-route-option { type boolean; description "Match based on presence of source route option"; } leaf destination-class { type types-sros:class-index; description "Destination class as a match criterion"; } choice match-protocol-choice { case protocol { leaf protocol { type types-sros:match-ip-protocol; description "IP protocol identifier as a match criterion"; } } case protocol-list { leaf protocol-list { type leafref { path "../../../../match-list/protocol-list/protocol-list-name"; } description "Name of the protocol list as a match criterion"; } } } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } mandatory true; description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } mandatory true; description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } mandatory true; description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } mandatory true; description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container dst-port } case port { container port { description "Enter the port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } mandatory true; description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } mandatory true; description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container port } } container ip-option { presence "Enter the 'ip-option' context"; description "Enable the ip-option context"; leaf type { type types-filter:filter-match-ip-option; mandatory true; description "Specific IP option to match"; } leaf mask { type types-filter:filter-match-ip-option { range "1..255"; } default "255"; description "Mask that is ANDed with ip-option value in the packet header"; } } // container ip-option container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "IP address to match"; } leaf mask { type types-sros:ipv4-address; description "Mask as an AND to the IP address"; } } case ip-prefix-list { leaf ip-prefix-list { type leafref { path "../../../../../match-list/ip-prefix-list/prefix-list-name"; } description "IP prefix list as match criterion for IP address"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "IP address to match"; } leaf mask { type types-sros:ipv4-address; description "Mask as an AND to the IP address"; } } case ip-prefix-list { leaf ip-prefix-list { type leafref { path "../../../../../match-list/ip-prefix-list/prefix-list-name"; } description "IP prefix list as match criterion for IP address"; } } } } // container dst-ip container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; mandatory true; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container src-mac container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code value to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type value to match"; } } } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Match TCP ACK as per value of the ACK TCP flag bit"; } leaf syn { type boolean; description "Match TCP SYN as per value of the SYN TCP flag bit"; } leaf fin { type boolean; description "Match TCP FIN as per value of the FIN TCP flag bit"; } leaf rst { type boolean; description "Match TCP RST as per value of the RST TCP flag bit"; } leaf psh { type boolean; description "Match TCP PSH as per value of the PSH TCP flag bit"; } leaf urg { type boolean; description "Match TCP URG as per value of the URG TCP flag bit"; } leaf ece { type boolean; description "Match TCP ECE as per value of the ECE TCP flag bit"; } leaf cwr { type boolean; description "Match TCP CWR as per value of the CWR TCP flag bit"; } leaf ns { type boolean; description "Match TCP NS as per value of the NS TCP flag bit"; } } // container tcp-flags container packet-length { presence "Enter the 'packet-length' context"; description "Enable the packet-length context"; choice packet-length { mandatory true; case eq { leaf eq { type types-filter:pkt-len-or-payload-len-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:pkt-len-or-payload-len-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:pkt-len-or-payload-len-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:pkt-len-or-payload-len-gt-value; mandatory true; description "Lower bound of the length range"; } leaf end { type types-filter:pkt-len-or-payload-len-lt-value; mandatory true; description "Upper bound of the length range"; } } // container range } } } // container packet-length } // container match container action { presence "Enter the 'action' context"; description "Enable the action context"; leaf fc { type types-sros:fc-name; description "Class name to be forwarded for matching packets"; } leaf l2-aware-nat-bypass { type boolean; default "false"; description "Divert traffic from an L2-Aware NAT subscriber"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice action { mandatory true; case ignore-match { leaf ignore-match { type empty; description "Ignore match criteria for the entry"; } } case drop { leaf drop { type empty; description "Drop a packet matching this entry"; } } case forward { container forward { description "Enter the forward context"; choice forward-action { case bonding-connection { leaf bonding-connection { type types-submgt:bonding-connection-index; description "Connection ID over which packet is forwarded"; } } case esi-l2 { container esi-l2 { presence "Enter the 'esi-l2' context"; description "Enable the esi-l2 context"; leaf esi-value { type types-services:ethernet-segment-id { pattern "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})"; } mandatory true; description "ESI of the first ESI-identified appliance"; } leaf vpls { type leafref { path "../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS service name"; } } // container esi-l2 } case esi-l3 { container esi-l3 { presence "Enter the 'esi-l3' context"; description "Enable the esi-l3 context"; leaf sf-ip { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "IP address of the service function to forward traffic"; } leaf esi-value { type types-services:ethernet-segment-id { pattern "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})"; } sros-ext:immutable; mandatory true; description "ESI of the first ESI-identified appliance"; } leaf vas-interface { type leafref { path "../../../../../../../service/vprn[service-name=current()/../vprn]/interface/interface-name"; } sros-ext:immutable; mandatory true; description "Egress R-VPLS IP interface name"; } leaf vprn { type leafref { path "../../../../../../../service/vprn/service-name"; } sros-ext:immutable; mandatory true; description "VPRN service name"; } } // container esi-l3 } case router { leaf router-instance { type string; sros-ext:immutable; description "Specifies the routing context used for route lookup."; } } case next-hop { container next-hop { presence "Enter the 'next-hop' context"; description "Enable the next-hop context"; choice next-hop { mandatory true; case nh-ip { container nh-ip { presence "Enter the 'nh-ip' context"; description "Enable the nh-ip context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf address { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "IPv4 address of next hop to forward matching packets"; } } // container nh-ip } case nh-interface { leaf interface-name { type types-sros:named-item; description "IP interface name that forwards matching packets"; } } case nh-ip-vrf { container nh-ip-vrf { presence "Enter the 'nh-ip-vrf' context"; description "Enable the nh-ip-vrf context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf router-instance { type string; sros-ext:immutable; mandatory true; description "Routing context for route lookup for forwarding packets"; } leaf address { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "IPv4 address of next hop to forward matching packets"; } } // container nh-ip-vrf } } } // container next-hop } case lsp { leaf lsp { type types-sros:named-item-64; description "LSP that is specified to forward a packet matching this entry"; } } case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type leafref { path "../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; mandatory true; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type leafref { path "../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS associated with the SAP"; } leaf sap-id { type leafref { path "../../../../../../../service/vpls[service-name=current()/../vpls]/sap/sap-id"; } mandatory true; description "VPLS Ethernet SAP ID used to forward matching packets"; } } // container sap } case redirect-policy { leaf redirect-policy { type leafref { path "../../../../../redirect-policy/redirect-policy-name"; } sros-ext:immutable; description "Next hop or forward next hop router that forwards a packet that matches this entry"; } } case vprn-target { container vprn-target { presence "Enter the 'vprn-target' context"; description "Enable the vprn-target context"; leaf bgp-nh { type types-sros:ipv4-address { pattern "((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))| ((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){2}(([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){1}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1})| ((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){1}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1}(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){2})| (([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1}(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})"; } mandatory true; description "Target BGP next hop IP address"; } leaf vprn { type leafref { path "../../../../../../../service/vprn/service-name"; } mandatory true; description "Routing context used for route lookup"; } leaf lsp { type types-sros:named-item-64; description "LSP that is specified to forward a packet matching this entry"; } leaf adv-prefix { type types-sros:ipv4-prefix; description "Advertised IP prefix for target destination"; } } // container vprn-target } case gre-tunnel { leaf gre-tunnel { type leafref { path "../../../../../gre-tunnel-template/gre-tunnel-template-name"; } description "GRE tunnel template ID that sets the location where an encapsulated matching packet is transported"; } } case mpls-policy { container mpls-policy { presence "Enter the 'mpls-policy' context"; description "Enable the mpls-policy context"; leaf endpoint { type types-sros:ipv4-unicast-address; mandatory true; description "The MPLS forwarding policy endpoint IPv4 address"; } } // container mpls-policy } case srte-policy { container srte-policy { presence "Enter the 'srte-policy' context"; description "Enable the srte-policy context"; leaf endpoint { type types-sros:ipv4-unicast-or-zero-address; mandatory true; description "The SR-TE policy endpoint IPv4 address"; } leaf color { type int64 { range "0..4294967295"; } mandatory true; description "The SR-TE policy color value"; } } // container srte-policy } } } // container forward } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type union { type enumeration { enum "from-cpf" { value 1; } } type types-sros:http-redirect-url; } sros-ext:immutable; mandatory true; description "URL that is used for redirecting"; } leaf allow-override { type boolean; default "false"; description "Override http-redirect by a RADIUS VSA"; } } // container http-redirect } case nat { container nat { presence "Enter the 'nat' context"; description "Enable the nat context"; leaf nat-policy { type leafref { path "../../../../../../service/nat/nat-policy/name"; } sros-ext:isa-auto-clear-on-modify; description "NAT policy name when action is NAT"; } } // container nat } case reassemble { leaf reassemble { type empty; description "Forward matching packets to reassembly function"; } } case gtp-local-breakout { leaf gtp-local-breakout { type empty; description "Break out matching traffic locally from a GTP tunnel for GTP-subscriber-hosts, or forward for other entities"; } } case tcp-mss-adjust { leaf tcp-mss-adjust { type empty; description "Adjust MSS option of TCP matching packets to configured value of tcp-mss in router interface context"; } } case accept { leaf accept { type empty; description "Accept regular routing to forward a packet that matches this entry"; } } } container remark { presence "Enter the 'remark' context"; description "Enable the remark context"; leaf dscp { type types-qos:dscp-name; mandatory true; description "Destination SAP"; } } // container remark container rate-limit { presence "Enter the 'rate-limit' context"; description "Enable the rate-limit context"; leaf pir { type types-filter:rate-limit; units "kilobps"; mandatory true; description "Peak information rate"; } choice criterion-1 { case ttl { container ttl { presence "Enter the 'ttl' context"; description "Enable the ttl context"; choice ttl { mandatory true; case eq { leaf eq { type types-filter:ttl-or-hop-limit-value; description "Value to compare against 'equal' condition for entry match criteria"; } } case lt { leaf lt { type types-filter:ttl-or-hop-limit-lt-value; description "Value to compare against 'less than' condition for entry match criteria"; } } case gt { leaf gt { type types-filter:ttl-or-hop-limit-gt-value; description "Value to compare against 'greater than' condition for entry match criteria"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:ttl-or-hop-limit-gt-value; mandatory true; description "Lower bound value"; } leaf end { type types-filter:ttl-or-hop-limit-lt-value; mandatory true; description "Upper bound value"; } } // container range } } } // container ttl } case packet-length { container packet-length { presence "Enter the 'packet-length' context"; description "Enable the packet-length context"; choice packet-length { mandatory true; case eq { leaf eq { type types-filter:pkt-len-or-payload-len-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:pkt-len-or-payload-len-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:pkt-len-or-payload-len-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:pkt-len-or-payload-len-gt-value; mandatory true; description "Lower bound of the length range"; } leaf end { type types-filter:pkt-len-or-payload-len-lt-value; mandatory true; description "Upper bound of the length range"; } } // container range } } } // container packet-length } } container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } mandatory true; description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } mandatory true; description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } mandatory true; description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } mandatory true; description "Offset value for the pattern expression"; } } // container pattern } // container rate-limit container drop-when { presence "Enter the 'drop-when' context"; description "Enable the drop-when context"; choice criterion-1 { case ttl { container ttl { presence "Enter the 'ttl' context"; description "Enable the ttl context"; choice ttl { mandatory true; case eq { leaf eq { type types-filter:ttl-or-hop-limit-value; description "Value to compare against 'equal' condition for entry match criteria"; } } case lt { leaf lt { type types-filter:ttl-or-hop-limit-lt-value; description "Value to compare against 'less than' condition for entry match criteria"; } } case gt { leaf gt { type types-filter:ttl-or-hop-limit-gt-value; description "Value to compare against 'greater than' condition for entry match criteria"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:ttl-or-hop-limit-gt-value; mandatory true; description "Lower bound value"; } leaf end { type types-filter:ttl-or-hop-limit-lt-value; mandatory true; description "Upper bound value"; } } // container range } } } // container ttl } case packet-length { container packet-length { presence "Enter the 'packet-length' context"; description "Enable the packet-length context"; choice packet-length { mandatory true; case eq { leaf eq { type types-filter:pkt-len-or-payload-len-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:pkt-len-or-payload-len-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:pkt-len-or-payload-len-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:pkt-len-or-payload-len-gt-value; mandatory true; description "Lower bound of the length range"; } leaf end { type types-filter:pkt-len-or-payload-len-lt-value; mandatory true; description "Upper bound of the length range"; } } // container range } } } // container packet-length } } choice criterion-2 { case extracted-traffic { leaf extracted-traffic { type empty; description "Drop traffic extracted to CPM"; } } } container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } mandatory true; description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } mandatory true; description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } mandatory true; description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } mandatory true; description "Offset value for the pattern expression"; } } // container pattern } // container drop-when container accept-when { presence "Enter the 'accept-when' context"; description "Enable the accept-when context"; container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } mandatory true; description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } mandatory true; description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } mandatory true; description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } mandatory true; description "Offset value for the pattern expression"; } } // container pattern } // container accept-when container secondary { presence "Enter the 'secondary' context"; description "Enable the secondary context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice action { mandatory true; case forward { container forward { description "Enter the forward context"; choice forward-action { case next-hop { container next-hop { presence "Enter the 'next-hop' context"; description "Enable the next-hop context"; choice next-hop { mandatory true; case nh-ip-vrf { container nh-ip-vrf { presence "Enter the 'nh-ip-vrf' context"; description "Enable the nh-ip-vrf context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf router-instance { type string; sros-ext:immutable; mandatory true; description "Routing context for route lookup for forwarding packets"; } leaf address { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "IPv4 address of next hop to forward matching packets"; } } // container nh-ip-vrf } } } // container next-hop } case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type leafref { path "../../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; sros-ext:immutable; mandatory true; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type leafref { path "../../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS the sdp-bind-id belongs to"; } leaf sap-id { type leafref { path "../../../../../../../../service/vpls[service-name=current()/../vpls]/sap/sap-id"; } sros-ext:immutable; mandatory true; description "A packet matching the entry will be forwarded using the specified SAP"; } } // container sap } } } // container forward } } container remark { presence "Enter the 'remark' context"; description "Enable the remark context"; leaf dscp { type types-qos:dscp-name; mandatory true; description "Destination SAP"; } } // container remark } // container secondary } // container action } // list entry container embed { description "Enter the embed context"; list filter { key "name offset"; description "Enter the filter list instance"; leaf name { type leafref { path "../../../../ip-filter/filter-name"; } description "ID of the filter to insert"; } leaf offset { type types-filter:embed-offset { range "0..2097150"; } description "Offset of the inserted entries"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list filter list flowspec { key "offset"; description "Enter the flowspec list instance"; leaf offset { type types-filter:embed-offset; description "Offset of the inserted entries"; } leaf group { type uint32 { range "0..16383"; } sros-ext:immutable; description "Interface group ID for an external configured set of flowspec rules"; } leaf router-instance { type string; sros-ext:immutable; mandatory true; description "Virtual router for an external configured set of flowspec rules"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list flowspec list openflow { key "of-switch offset"; description "Enter the openflow list instance"; leaf of-switch { type leafref { path "../../../../../openflow/of-switch/name"; } description "Referenced Hybrid OpenFlow Switch (OFS) name"; } leaf offset { type types-filter:embed-offset { range "0..2097150"; } description "Offset of the inserted entries"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice context { default "grt"; description "Specifies the context in which the openflow embedding is inserted into filter. When no context is present, this object is set to grt value."; case grt { leaf grt { type empty; sros-ext:immutable; description "Global routing context"; } } case system { leaf system { type empty; sros-ext:immutable; description "System context"; } } case vprn { leaf vprn { type leafref { path "../../../../../service/vprn/service-name"; } sros-ext:immutable; description "VPRN context"; } } case vpls { leaf vpls { type leafref { path "../../../../../service/vpls/service-name"; } sros-ext:immutable; description "VPLS context"; } leaf sap { type leafref { path "../../../../../service/vpls[service-name=current()/../vpls]/sap/sap-id"; } sros-ext:immutable; description "SAP context"; } } } } // list openflow } // container embed } // list ip-filter list ipv6-filter { key "filter-name"; description "Enter the ipv6-filter list instance"; leaf filter-name { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "Filter name"; } leaf default-action { type types-filter:filter-default-action; default "drop"; description "Action for packets that do not match any entry"; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-filter:filter-scope; default "template"; description "Scope of this filter definition"; } leaf type { type enumeration { enum "normal" { value 0; } enum "src-mac" { value 1; } enum "packet-length" { value 2; } enum "destination-class" { value 3; } } default "normal"; description "Set of match criteria for the filter policy"; } leaf chain-to-system-filter { type boolean; default "false"; description "Chain filter policy to the active IPvX system filter policy"; } leaf filter-id { type types-filter:filter-id; sros-ext:immutable; description "IPv6 filter identifier"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container subscriber-mgmt { description "Enter the subscriber-mgmt context"; container host-specific-entry { description "Enter the host-specific-entry context"; container filter-rule { description "Enter the filter-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; mandatory true; description "Lower bound of range for subscriber host filter-rule entries from RADIUS/Diameter"; } leaf end { type types-filter:entry-id; mandatory true; description "Upper bound of range for filter-rule entries from RADIUS/Diameter"; } } // container range } // container filter-rule container credit-control { description "Enter the credit-control context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; mandatory true; description "Lower bound of range for entries from Credit Control"; } leaf end { type types-filter:entry-id; mandatory true; description "Upper bound of range for entries from Credit Control"; } } // container range } // container credit-control container watermark { description "Enter the watermark context"; leaf low { type int32 { range "0..100"; } default "90"; description "Low watermark for host-specific entries, to clear a table full alarm"; } leaf high { type int32 { range "0..100"; } default "95"; description "High watermark for host-specific entries, to raise a table full alarm"; } } // container watermark } // container host-specific-entry container shared-entry { description "Enter the shared-entry context"; container filter-rule { description "Enter the filter-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; mandatory true; description "Lower bound of range for shared filter-rules from RADIUS"; } leaf end { type types-filter:entry-id; mandatory true; description "Upper bound of range for shared-filter rules from RADIUS"; } } // container range } // container filter-rule container pcc-rule { description "Enter the pcc-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; mandatory true; description "Lower bound of range for pcc-rule filter entries from Diameter"; } leaf end { type types-filter:entry-id; mandatory true; description "Upper bound of range for pcc-rule filter entries from Diameter"; } } // container range } // container pcc-rule container watermark { presence "Enter the 'watermark' context"; description "Enable the watermark context"; leaf low { type int32 { range "0..7999"; } mandatory true; description "Limit of RADIUS or Diameter shared filters before clearing high watermark notification"; } leaf high { type int32 { range "1..8000"; } mandatory true; description "Limit of RADIUS shared filters before generating high watermark notification"; } } // container watermark } // container shared-entry } // container subscriber-mgmt list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-filter:entry-id; description "ID for a match criteria and the corresponding action"; } leaf description { type types-sros:description; description "Text description"; } leaf pbr-down-action-override { type types-filter:filter-pbr-down-action-ovr; description "Action when PBR or PBF target for this entry is not available"; } leaf sticky-dest { type types-filter:filter-sticky-dest; units "seconds"; description "Time before action with available PBR or PBF destination and highest priority"; } leaf log { type leafref { path "../../../log/log-id"; } description "Log that is used for packets matching this entry"; } leaf collect-stats { type boolean; default "false"; description "Enable/disable statistics collection"; } leaf egress-pbr { type types-filter:filter-egress-pbr; sros-ext:immutable; description "PBR that has an effect when this filter is applied on egress"; } leaf filter-sample { type boolean; default "false"; description "Sample matching traffic if IP interface is set to cflowd ACL mode"; } leaf interface-sample { type boolean; default "true"; description "Sample matching traffic if IP interface is set to cflowd interface mode"; } leaf sample-profile { type leafref { path "../../../../cflowd/sample-profile/profile-id"; } description "Cflowd sample profile ID for matching packets"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf dscp { type types-qos:dscp-name; description "DSCP used as an IP filter match criterion"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } enum "first-only" { value 4; } enum "non-first-only" { value 5; } } description "Match criterion for fragmented packages"; } leaf destination-class { type types-sros:class-index; description "Destination class as a match criterion"; } choice match-next-header-choice { case next-header { leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } } case next-header-list { leaf next-header-list { type leafref { path "../../../../match-list/protocol-list/protocol-list-name"; } description "Name of the protocol list as a match criterion"; } } } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } mandatory true; description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } mandatory true; description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } mandatory true; description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } mandatory true; description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container dst-port } case port { container port { description "Enter the port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } mandatory true; description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } mandatory true; description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container port } } container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../match-list/ipv6-prefix-list/prefix-list-name"; } description "IP prefix list as match criterion for IP address"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../match-list/ipv6-prefix-list/prefix-list-name"; } description "IP prefix list as match criterion for IP address"; } } } } // container dst-ip container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; mandatory true; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container src-mac container extension-header { description "Enter the extension-header context"; leaf ah { type boolean; description "Match a packet as per the existence of an AH Extension Header"; } leaf esp { type boolean; description "Match a packet as per the existence of an Encapsulation security payload extension header"; } leaf hop-by-hop { type boolean; description "Match on Hop-by-Hop Options Extension Header existence"; } leaf routing-type0 { type boolean; description "Match a packet as per the existence of a routing Extension Header"; } } // container extension-header container flow-label { presence "Enter the 'flow-label' context"; description "Enable the flow-label context"; leaf value { type types-filter:filter-match-flow-label; mandatory true; description "Flow label as match criterion"; } leaf mask { type types-filter:filter-match-flow-label { range "1..1048575"; } default "1048575"; description "Flow label mask for this policy IP filter entry"; } } // container flow-label container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv6-match-icmp-codes; description "ICMPv6 code value to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv6-match-icmp-types; description "ICMPv6 type value to match"; } } } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Match TCP ACK as per value of the ACK TCP flag bit"; } leaf syn { type boolean; description "Match TCP SYN as per value of the SYN TCP flag bit"; } leaf fin { type boolean; description "Match TCP FIN as per value of the FIN TCP flag bit"; } leaf rst { type boolean; description "Match TCP RST as per value of the RST TCP flag bit"; } leaf psh { type boolean; description "Match TCP PSH as per value of the PSH TCP flag bit"; } leaf urg { type boolean; description "Match TCP URG as per value of the URG TCP flag bit"; } leaf ece { type boolean; description "Match TCP ECE as per value of the ECE TCP flag bit"; } leaf cwr { type boolean; description "Match TCP CWR as per value of the CWR TCP flag bit"; } leaf ns { type boolean; description "Match TCP NS as per value of the NS TCP flag bit"; } } // container tcp-flags container packet-length { presence "Enter the 'packet-length' context"; description "Enable the packet-length context"; choice packet-length { mandatory true; case eq { leaf eq { type types-filter:ipv6-match-packet-length-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:ipv6-match-packet-length-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:ipv6-match-packet-length-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:ipv6-match-packet-length-gt-value; mandatory true; description "Lower bound of packet length range as match criterion"; } leaf end { type types-filter:ipv6-match-packet-length-lt-value; mandatory true; description "Upper bound of packet length range as match criterion"; } } // container range } } } // container packet-length } // container match container action { presence "Enter the 'action' context"; description "Enable the action context"; leaf fc { type types-sros:fc-name; description "Class name to be forwarded for matching packets"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice action { mandatory true; case ignore-match { leaf ignore-match { type empty; description "Ignore match criteria for the entry"; } } case drop { leaf drop { type empty; description "Drop a packet matching this entry"; } } case forward { container forward { description "Enter the forward context"; choice forward-action { case bonding-connection { leaf bonding-connection { type types-submgt:bonding-connection-index; description "Connection ID over which packet is forwarded"; } } case esi-l2 { container esi-l2 { presence "Enter the 'esi-l2' context"; description "Enable the esi-l2 context"; leaf esi-value { type types-services:ethernet-segment-id { pattern "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})"; } mandatory true; description "ESI of the first ESI-identified appliance"; } leaf vpls { type leafref { path "../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS service name"; } } // container esi-l2 } case esi-l3 { container esi-l3 { presence "Enter the 'esi-l3' context"; description "Enable the esi-l3 context"; leaf sf-ip { type types-sros:ipv6-address; sros-ext:immutable; mandatory true; description "IP address of the service function to forward traffic"; } leaf esi-value { type types-services:ethernet-segment-id { pattern "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})"; } sros-ext:immutable; mandatory true; description "ESI of the first ESI-identified appliance"; } leaf vas-interface { type leafref { path "../../../../../../../service/vprn[service-name=current()/../vprn]/interface/interface-name"; } sros-ext:immutable; mandatory true; description "Egress R-VPLS IP interface name"; } leaf vprn { type leafref { path "../../../../../../../service/vprn/service-name"; } sros-ext:immutable; mandatory true; description "VPRN service name"; } } // container esi-l3 } case router { leaf router-instance { type string; sros-ext:immutable; description "Specifies the routing context used for route lookup."; } } case next-hop { container next-hop { presence "Enter the 'next-hop' context"; description "Enable the next-hop context"; choice next-hop { mandatory true; case nh-ip { container nh-ip { presence "Enter the 'nh-ip' context"; description "Enable the nh-ip context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf address { type types-sros:ipv6-address; mandatory true; description "IPv6 address of next hop to forward matching packets"; } } // container nh-ip } case nh-ip-vrf { container nh-ip-vrf { presence "Enter the 'nh-ip-vrf' context"; description "Enable the nh-ip-vrf context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf router-instance { type string; sros-ext:immutable; mandatory true; description "Routing context for route lookup for forwarding packets"; } leaf address { type types-sros:ipv6-address; mandatory true; description "IPv6 address of next hop to forward matching packets"; } } // container nh-ip-vrf } } } // container next-hop } case lsp { leaf lsp { type types-sros:named-item-64; description "LSP that is specified to forward a packet matching this entry"; } } case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type leafref { path "../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; mandatory true; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type leafref { path "../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS associated with the SAP"; } leaf sap-id { type leafref { path "../../../../../../../service/vpls[service-name=current()/../vpls]/sap/sap-id"; } mandatory true; description "VPLS Ethernet SAP ID used to forward matching packets"; } } // container sap } case redirect-policy { leaf redirect-policy { type leafref { path "../../../../../redirect-policy/redirect-policy-name"; } sros-ext:immutable; description "Next hop or forward next hop router that forwards a packet that matches this entry"; } } case vprn-target { container vprn-target { presence "Enter the 'vprn-target' context"; description "Enable the vprn-target context"; leaf bgp-nh { type types-sros:ipv4-address { pattern "((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))| ((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){2}(([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){1}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1})| ((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){1}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1}(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){2})| (([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1}(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})"; } mandatory true; description "Target BGP next hop IP address"; } leaf vprn { type leafref { path "../../../../../../../service/vprn/service-name"; } mandatory true; description "Routing context used for route lookup"; } leaf lsp { type types-sros:named-item-64; description "LSP that is specified to forward a packet matching this entry"; } leaf adv-prefix { type types-sros:ipv6-prefix; description "Advertised IP prefix for target destination"; } } // container vprn-target } case gre-tunnel { leaf gre-tunnel { type leafref { path "../../../../../gre-tunnel-template/gre-tunnel-template-name"; } description "GRE tunnel template ID that sets the location where an encapsulated matching packet is transported"; } } case mpls-policy { container mpls-policy { presence "Enter the 'mpls-policy' context"; description "Enable the mpls-policy context"; leaf endpoint { type types-sros:ipv6-unicast-address; mandatory true; description "The MPLS forwarding policy endpoint IPv6 address"; } } // container mpls-policy } case srte-policy { container srte-policy { presence "Enter the 'srte-policy' context"; description "Enable the srte-policy context"; leaf endpoint { type types-sros:ipv6-unicast-or-zero-address; mandatory true; description "The SR-TE policy endpoint IPv6 address"; } leaf color { type int64 { range "0..4294967295"; } mandatory true; description "The SR-TE policy color value"; } } // container srte-policy } } } // container forward } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type union { type enumeration { enum "from-cpf" { value 1; } } type types-sros:http-redirect-url; } sros-ext:immutable; mandatory true; description "URL that is used for redirecting"; } leaf allow-override { type boolean; default "false"; description "Override http-redirect by a RADIUS VSA"; } } // container http-redirect } case nat { container nat { presence "Enter the 'nat' context"; description "Enable the nat context"; leaf nat-policy { type leafref { path "../../../../../../service/nat/nat-policy/name"; } sros-ext:isa-auto-clear-on-modify; description "NAT policy name when action is NAT"; } leaf nat-type { type types-filter:nat-type; sros-ext:isa-auto-clear-on-modify; mandatory true; description "NAT type to assign when action is NAT"; } } // container nat } case tcp-mss-adjust { leaf tcp-mss-adjust { type empty; description "Adjust MSS option of TCP matching packets to configured value of tcp-mss in router interface context"; } } case accept { leaf accept { type empty; description "Accept regular routing to forward a packet that matches this entry"; } } } container remark { presence "Enter the 'remark' context"; description "Enable the remark context"; leaf dscp { type types-qos:dscp-name; mandatory true; description "Destination SAP"; } } // container remark container rate-limit { presence "Enter the 'rate-limit' context"; description "Enable the rate-limit context"; leaf pir { type types-filter:rate-limit; units "kilobps"; mandatory true; description "Peak information rate"; } choice criterion-1 { case hop-limit { container hop-limit { presence "Enter the 'hop-limit' context"; description "Enable the hop-limit context"; choice hop-limit { mandatory true; case eq { leaf eq { type types-filter:ttl-or-hop-limit-value; description "Value to compare against 'equal' condition for entry match criteria"; } } case lt { leaf lt { type types-filter:ttl-or-hop-limit-lt-value; description "Value to compare against 'less than' condition for entry match criteria"; } } case gt { leaf gt { type types-filter:ttl-or-hop-limit-gt-value; description "Value to compare against 'greater than' condition for entry match criteria"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:ttl-or-hop-limit-gt-value; mandatory true; description "Lower bound value"; } leaf end { type types-filter:ttl-or-hop-limit-lt-value; mandatory true; description "Upper bound value"; } } // container range } } } // container hop-limit } case payload-length { container payload-length { presence "Enter the 'payload-length' context"; description "Enable the payload-length context"; choice payload-length { mandatory true; case eq { leaf eq { type types-filter:pkt-len-or-payload-len-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:pkt-len-or-payload-len-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:pkt-len-or-payload-len-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:pkt-len-or-payload-len-gt-value; mandatory true; description "Lower bound of the length range"; } leaf end { type types-filter:pkt-len-or-payload-len-lt-value; mandatory true; description "Upper bound of the length range"; } } // container range } } } // container payload-length } } container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } mandatory true; description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } mandatory true; description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } mandatory true; description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } mandatory true; description "Offset value for the pattern expression"; } } // container pattern } // container rate-limit container drop-when { presence "Enter the 'drop-when' context"; description "Enable the drop-when context"; choice criterion-1 { case hop-limit { container hop-limit { presence "Enter the 'hop-limit' context"; description "Enable the hop-limit context"; choice hop-limit { mandatory true; case eq { leaf eq { type types-filter:ttl-or-hop-limit-value; description "Value to compare against 'equal' condition for entry match criteria"; } } case lt { leaf lt { type types-filter:ttl-or-hop-limit-lt-value; description "Value to compare against 'less than' condition for entry match criteria"; } } case gt { leaf gt { type types-filter:ttl-or-hop-limit-gt-value; description "Value to compare against 'greater than' condition for entry match criteria"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:ttl-or-hop-limit-gt-value; mandatory true; description "Lower bound value"; } leaf end { type types-filter:ttl-or-hop-limit-lt-value; mandatory true; description "Upper bound value"; } } // container range } } } // container hop-limit } case payload-length { container payload-length { presence "Enter the 'payload-length' context"; description "Enable the payload-length context"; choice payload-length { mandatory true; case eq { leaf eq { type types-filter:pkt-len-or-payload-len-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:pkt-len-or-payload-len-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:pkt-len-or-payload-len-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:pkt-len-or-payload-len-gt-value; mandatory true; description "Lower bound of the length range"; } leaf end { type types-filter:pkt-len-or-payload-len-lt-value; mandatory true; description "Upper bound of the length range"; } } // container range } } } // container payload-length } } choice criterion-2 { case extracted-traffic { leaf extracted-traffic { type empty; description "Drop traffic extracted to CPM"; } } } container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } mandatory true; description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } mandatory true; description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } mandatory true; description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } mandatory true; description "Offset value for the pattern expression"; } } // container pattern } // container drop-when container accept-when { presence "Enter the 'accept-when' context"; description "Enable the accept-when context"; container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } mandatory true; description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } mandatory true; description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } mandatory true; description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } mandatory true; description "Offset value for the pattern expression"; } } // container pattern } // container accept-when container secondary { presence "Enter the 'secondary' context"; description "Enable the secondary context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice action { mandatory true; case forward { container forward { description "Enter the forward context"; choice forward-action { case next-hop { container next-hop { presence "Enter the 'next-hop' context"; description "Enable the next-hop context"; choice next-hop { mandatory true; case nh-ip-vrf { container nh-ip-vrf { presence "Enter the 'nh-ip-vrf' context"; description "Enable the nh-ip-vrf context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf router-instance { type string; sros-ext:immutable; mandatory true; description "Routing context for route lookup for forwarding packets"; } leaf address { type types-sros:ipv6-address; mandatory true; description "IPv6 address of next hop to forward matching packets"; } } // container nh-ip-vrf } } } // container next-hop } case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type leafref { path "../../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; sros-ext:immutable; mandatory true; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type leafref { path "../../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS the sdp-bind-id belongs to"; } leaf sap-id { type leafref { path "../../../../../../../../service/vpls[service-name=current()/../vpls]/sap/sap-id"; } sros-ext:immutable; mandatory true; description "A packet matching the entry will be forwarded using the specified SAP"; } } // container sap } } } // container forward } } container remark { presence "Enter the 'remark' context"; description "Enable the remark context"; leaf dscp { type types-qos:dscp-name; mandatory true; description "Destination SAP"; } } // container remark } // container secondary } // container action } // list entry container embed { description "Enter the embed context"; list filter { key "name offset"; description "Enter the filter list instance"; leaf name { type leafref { path "../../../../ipv6-filter/filter-name"; } description "ID of the filter to insert"; } leaf offset { type types-filter:embed-offset { range "0..2097150"; } description "Offset of the inserted entries"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list filter list flowspec { key "offset"; description "Enter the flowspec list instance"; leaf offset { type types-filter:embed-offset; description "Offset of the inserted entries"; } leaf group { type uint32 { range "0..16383"; } sros-ext:immutable; description "Interface group ID for an external configured set of flowspec rules"; } leaf router-instance { type string; sros-ext:immutable; mandatory true; description "Virtual router for an external configured set of flowspec rules"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list flowspec list openflow { key "of-switch offset"; description "Enter the openflow list instance"; leaf of-switch { type leafref { path "../../../../../openflow/of-switch/name"; } description "Referenced Hybrid OpenFlow Switch (OFS) name"; } leaf offset { type types-filter:embed-offset { range "0..2097150"; } description "Offset of the inserted entries"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice context { default "grt"; description "Specifies the context in which the openflow embedding is inserted into filter. When no context is present, this object is set to grt value."; case grt { leaf grt { type empty; sros-ext:immutable; description "Global routing context"; } } case system { leaf system { type empty; sros-ext:immutable; description "System context"; } } case vprn { leaf vprn { type leafref { path "../../../../../service/vprn/service-name"; } sros-ext:immutable; description "VPRN context"; } } case vpls { leaf vpls { type leafref { path "../../../../../service/vpls/service-name"; } sros-ext:immutable; description "VPLS context"; } leaf sap { type leafref { path "../../../../../service/vpls[service-name=current()/../vpls]/sap/sap-id"; } sros-ext:immutable; description "SAP context"; } } } } // list openflow } // container embed } // list ipv6-filter list mac-filter { key "filter-name"; description "Enter the mac-filter list instance"; leaf filter-name { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "Filter name"; } leaf default-action { type types-filter:filter-default-action; default "drop"; description "Action for packets that do not match any entry"; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-filter:filter-scope; default "template"; description "Scope of this filter definition"; } leaf type { type types-qos:mac-filter-type; sros-ext:immutable; default "normal"; description "MAC filter policy"; } leaf filter-id { type types-filter:filter-id; sros-ext:immutable; description "MAC filter ID"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-filter:entry-id; description "ID for a match criteria and the corresponding action"; } leaf description { type types-sros:description; description "Text description"; } leaf pbr-down-action-override { type types-filter:filter-pbr-down-action-ovr; description "Action when PBR or PBF target for this entry is not available"; } leaf sticky-dest { type types-filter:filter-sticky-dest; units "seconds"; description "Time before action with available PBR or PBF destination and highest priority"; } leaf log { type leafref { path "../../../log/log-id"; } description "Log that is used for packets matching this entry"; } leaf collect-stats { type boolean; default "false"; description "Enable/disable statistics collection"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf frame-type { type types-filter:mac-frame-type; description "MAC frame as match criteria"; } leaf etype { type types-services:etype-value; description "Ethernet type"; } leaf snap-pid { type int32 { range "0..65535"; } description "Parameter snap-pid as a MAC filter match criteria"; } leaf snap-oui { type enumeration { enum "zero" { value 2; } enum "non-zero" { value 3; } } description "Parameter snap-oui as a MAC filter match criteria"; } container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; mandatory true; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container src-mac container dst-mac { presence "Enter the 'dst-mac' context"; description "Enable the dst-mac context"; leaf address { type yang:mac-address; mandatory true; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container dst-mac container dot1p { presence "Enter the 'dot1p' context"; description "Enable the dot1p context"; leaf priority { type types-qos:dot1p-priority; mandatory true; description "IEEE 802.1p value used as a MAC filter match criterion"; } leaf mask { type types-qos:dot1p-priority { range "1..7"; } default "7"; description "802.1p mask value used as a MAC filter match criterion"; } } // container dot1p container llc-ssap { presence "Enter the 'llc-ssap' context"; description "Enable the llc-ssap context"; leaf ssap { type types-qos:service-access-point; mandatory true; description "Source or destination SAP value"; } leaf mask { type types-qos:service-access-point { range "1..255"; } default "255"; description "Source SAP mask"; } } // container llc-ssap container llc-dsap { presence "Enter the 'llc-dsap' context"; description "Enable the llc-dsap context"; leaf dsap { type types-qos:service-access-point; mandatory true; description "DSAP value"; } leaf mask { type types-qos:service-access-point { range "1..255"; } default "255"; description "Destination SAP mask"; } } // container llc-dsap container inner-tag { presence "Enter the 'inner-tag' context"; description "Enable the inner-tag context"; leaf tag { type int32 { range "0..4095"; } mandatory true; description "Matching value against VID of the second or first VLAN tag in the packet carried transparently"; } leaf mask { type uint32 { range "1..4095"; } default "4095"; description "Mask to VID of the inner VLAN tag before comparing it with the inner-tag or outer-tag value"; } } // container inner-tag container outer-tag { presence "Enter the 'outer-tag' context"; description "Enable the outer-tag context"; leaf tag { type int32 { range "0..4095"; } mandatory true; description "Matching value against VID of the second or first VLAN tag in the packet carried transparently"; } leaf mask { type uint32 { range "1..4095"; } default "4095"; description "Mask to VID of the inner VLAN tag before comparing it with the inner-tag or outer-tag value"; } } // container outer-tag container isid { description "Enter the isid context"; choice isid { case isid-value { leaf value { type types-sros:svc-isid; description "Lowest value of 24-bit service instance identifier for the service matching this entry"; } } case isid-range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-sros:svc-isid; mandatory true; description "Lowest value of 24-bit service instance identifier for the service matching this entry"; } leaf end { type types-sros:svc-isid; mandatory true; description "Highest value of 24-bit service instance identifier for the service matching this entry"; } } // container range } } } // container isid } // container match container action { presence "Enter the 'action' context"; description "Enable the action context"; leaf fc { type types-sros:fc-name; description "Specifies forwarding class name for packets matching the entry."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice action { mandatory true; case ignore-match { leaf ignore-match { type empty; description "Ignore match criteria for the entry"; } } case drop { leaf drop { type empty; description "Drop a packet matching this entry"; } } case forward { container forward { description "Enter the forward context"; choice forward-action { case esi-l2 { container esi-l2 { presence "Enter the 'esi-l2' context"; description "Enable the esi-l2 context"; leaf esi-value { type types-services:ethernet-segment-id { pattern "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})"; } mandatory true; description "ESI of the first ESI-identified appliance"; } leaf vpls { type leafref { path "../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS service name"; } } // container esi-l2 } case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type leafref { path "../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; mandatory true; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type leafref { path "../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS associated with the SAP"; } leaf sap-id { type leafref { path "../../../../../../../service/vpls[service-name=current()/../vpls]/sap/sap-id"; } mandatory true; description "VPLS Ethernet SAP ID used to forward matching packets"; } } // container sap } } } // container forward } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type types-sros:http-redirect-url; sros-ext:immutable; mandatory true; description "URL that is used for redirecting"; } } // container http-redirect } case accept { leaf accept { type empty; description "Accept regular routing to forward a packet that matches this entry"; } } } container rate-limit { presence "Enter the 'rate-limit' context"; description "Enable the rate-limit context"; leaf pir { type types-filter:rate-limit; units "kilobps"; mandatory true; description "Peak information rate"; } } // container rate-limit container secondary { presence "Enter the 'secondary' context"; description "Enable the secondary context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice action { mandatory true; case forward { container forward { description "Enter the forward context"; choice forward-action { case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type leafref { path "../../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; sros-ext:immutable; mandatory true; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type leafref { path "../../../../../../../../service/vpls/service-name"; } mandatory true; description "VPLS the sdp-bind-id belongs to"; } leaf sap-id { type leafref { path "../../../../../../../../service/vpls[service-name=current()/../vpls]/sap/sap-id"; } sros-ext:immutable; mandatory true; description "A packet matching the entry will be forwarded using the specified SAP"; } } // container sap } } } // container forward } } } // container secondary } // container action } // list entry container embed { description "Enter the embed context"; } // container embed } // list mac-filter container system-filter { description "Enter the system-filter context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list ip { key "ip-filter"; max-elements 1; description "Add a list entry for ip"; leaf ip-filter { type leafref { path "../../../ip-filter/filter-name"; } description "The name of the IPv4 filter policy to be selected as the active system filter policy"; } } // list ip list ipv6 { key "ipv6-filter"; max-elements 1; description "Add a list entry for ipv6"; leaf ipv6-filter { type leafref { path "../../../ipv6-filter/filter-name"; } description "The name of the IPv6 filter policy to be selected as the active system filter policy"; } } // list ipv6 } // container system-filter list gre-tunnel-template { key "gre-tunnel-template-name"; max-elements 1023; description "Enter the gre-tunnel-template list instance"; leaf gre-tunnel-template-name { type types-sros:named-item; description "GRE tunnel template identifier"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf source-address { type types-sros:ipv4-address; description "Source IP address of the GRE encapsulated"; } leaf gre-key { type types-filter:filter-gre-tunnel-gre-key; description "GRE key"; } leaf skip-ttl-decrement { type boolean; default "false"; description "Decrement TTL"; } list destination-address { key "address"; max-elements 32; description "Add a list entry for destination-address"; leaf address { type types-sros:ipv4-address; description "Destination IP address"; } } // list destination-address } // container ipv4 } // list gre-tunnel-template container md-auto-id { description "Enter the md-auto-id context"; container filter-id-range { presence "Enter the 'filter-id-range' context"; description "Enable the filter-id-range context"; leaf start { type types-filter:filter-id; sros-ext:immutable; mandatory true; description "Lower value of the ID range, must be less than or equal to end value"; } leaf end { type types-filter:filter-id; sros-ext:immutable; mandatory true; description "Upper value of the ID range, must be greater than or equal to start value"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container filter-id-range } // container md-auto-id list dhcp-filter { key "filter-id"; description "Enter the dhcp-filter list instance"; leaf filter-id { type uint32 { range "1..65535"; } description "Unique DHCP filter policy ID"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container default-action { presence "Enter the 'default-action' context"; description "Enable the default-action context"; choice action { mandatory true; description "The action to take for DHCP host creation requests that match this filter entry. If not set host creation proceeds as usual"; case bypass-host-creation { leaf bypass-host-creation { type empty; description "Host creation options to bypass"; } } case drop { leaf drop { type empty; description "DHCP host creation when the filter entry is matched"; } } } } // container default-action list entry { key "entry-id"; max-elements 10; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..65535"; } description "DHCP filter entry index"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container action { presence "Enter the 'action' context"; description "Enable the action context"; choice action { mandatory true; description "The action to take for DHCP host creation requests that match this filter entry. If not set host creation proceeds as usual"; case bypass-host-creation { leaf bypass-host-creation { type empty; description "Host creation options to bypass"; } } case drop { leaf drop { type empty; description "DHCP host creation when the filter entry is matched"; } } } } // container action container option { presence "Enter the 'option' context"; description "Enable the option context"; leaf number { type int32 { range "0..255"; } mandatory true; description "Number for DHCP or DHCPv6 option to filter on"; } choice option-match { mandatory true; case present { leaf present { type empty; description "Require the presence of related option"; } } case absent { leaf absent { type empty; description "Require the absence of related option"; } } case match { container match { presence "Enter the 'match' context"; description "Enable the match context"; leaf exact { type boolean; default "false"; description "Use an exact match pattern (not partial)"; } leaf invert { type boolean; default "false"; description "Invert (partial) matching criteria"; } choice option-value { mandatory true; case string { leaf string { type string { length "1..127"; } description "Matching pattern for the filtered option"; } } case hex { leaf hex { type string { length "1..256"; pattern "0x[0-9a-fA-F]+"; } description "Matching pattern for the filtered option"; } } } } // container match } } } // container option } // list entry } // list dhcp-filter list dhcp6-filter { key "filter-id"; description "Enter the dhcp6-filter list instance"; leaf filter-id { type uint32 { range "1..65535"; } description "Unique DHCP filter policy ID"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container default-action { presence "Enter the 'default-action' context"; description "Enable the default-action context"; choice action { mandatory true; description "The action to take for DHCP6 host creation requests that match this filter entry. If not set host creation proceeds as usual"; case bypass-host-creation { container bypass-host-creation { presence "Enter the 'bypass-host-creation' context"; description "Enable the bypass-host-creation context"; leaf na { type boolean; default "true"; description "Bypass the DHCPv6 NA host creation"; } leaf pd { type boolean; default "true"; description "Bypass the DHCPv6 PD host creation"; } } // container bypass-host-creation } case drop { leaf drop { type empty; description "Drop DHCPv6 message (do not process)"; } } } } // container default-action list entry { key "entry-id"; max-elements 10; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..65535"; } description "DHCP filter entry index"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container action { presence "Enter the 'action' context"; description "Enable the action context"; choice action { mandatory true; description "The action to take for DHCP6 host creation requests that match this filter entry. If not set host creation proceeds as usual"; case bypass-host-creation { container bypass-host-creation { presence "Enter the 'bypass-host-creation' context"; description "Enable the bypass-host-creation context"; leaf na { type boolean; default "true"; description "Bypass the DHCPv6 NA host creation"; } leaf pd { type boolean; default "true"; description "Bypass the DHCPv6 PD host creation"; } } // container bypass-host-creation } case drop { leaf drop { type empty; description "Drop DHCPv6 message (do not process)"; } } } } // container action container option { presence "Enter the 'option' context"; description "Enable the option context"; leaf number { type int32 { range "0..255"; } mandatory true; description "Number for DHCP or DHCPv6 option to filter on"; } choice option-match { mandatory true; case present { leaf present { type empty; description "Require the presence of related option"; } } case absent { leaf absent { type empty; description "Require the absence of related option"; } } case match { container match { presence "Enter the 'match' context"; description "Enable the match context"; leaf exact { type boolean; default "false"; description "Use an exact match pattern (not partial)"; } leaf invert { type boolean; default "false"; description "Invert (partial) matching criteria"; } choice option-value { mandatory true; case string { leaf string { type string { length "1..127"; } description "Matching pattern for the filtered option"; } } case hex { leaf hex { type string { length "1..256"; pattern "0x[0-9a-fA-F]+"; } description "Matching pattern for the filtered option"; } } } } // container match } } } // container option } // list entry } // list dhcp6-filter list ip-exception { key "filter-name"; description "Enter the ip-exception list instance"; leaf filter-name { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "Filter name"; } leaf description { type types-sros:description; description "Text description"; } leaf filter-id { type types-filter:filter-id; sros-ext:immutable; description "Configure ip-exception identifier."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-filter:entry-id; description "ID for a match criteria and the corresponding action"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IP protocol to match."; } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Condition on equality to specified value."; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Condition on being less than the specified value."; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Condition on being greater than the specified value."; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } mandatory true; description "Specifies lower bound port to match."; } leaf end { type uint16 { range "1..65535"; } mandatory true; description "Specifies upper bound port to match."; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Condition on equality to specified value."; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Condition on being less than the specified value."; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Condition on being greater than the specified value."; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } mandatory true; description "Specifies lower bound port to match."; } leaf end { type uint16 { range "1..65535"; } mandatory true; description "Specifies upper bound port to match."; } } // container range } } } // container dst-port } } container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Specifies IP address to match."; } leaf mask { type types-sros:ipv4-address; description "Specifies the mask that is applied as an AND to the IP address."; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Specifies IP address to match."; } leaf mask { type types-sros:ipv4-address; description "Specifies the mask that is applied as an AND to the IP address."; } } } } // container dst-ip container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code value to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type value to match"; } } } } // container icmp } // container match } // list entry } // list ip-exception list ipv6-exception { key "filter-name"; description "Enter the ipv6-exception list instance"; leaf filter-name { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "Filter name"; } leaf description { type types-sros:description; description "Text description"; } leaf filter-id { type types-filter:filter-id; sros-ext:immutable; description "Filter ID"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-filter:entry-id; description "ID for a match criteria and the corresponding action"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } mandatory true; description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } mandatory true; description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } mandatory true; description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } mandatory true; description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container dst-port } case port { container port { description "Enter the port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } mandatory true; description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } mandatory true; description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container port } } container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../match-list/ipv6-prefix-list/prefix-list-name"; } description "IP prefix list as match criterion for IP address"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../match-list/ipv6-prefix-list/prefix-list-name"; } description "IP prefix list as match criterion for IP address"; } } } } // container dst-ip container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv6-match-icmp-codes; description "ICMPv6 code value to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv6-match-icmp-types; description "ICMPv6 type value to match"; } } } } // container icmp } // container match } // list entry } // list ipv6-exception } // container filter container fwd-path-ext { description "Enter the fwd-path-ext context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container sdp-id-range { presence "Enter the 'sdp-id-range' context"; description "Enable the sdp-id-range context"; leaf start { type types-services:sdp-id; mandatory true; description "Start of range"; } leaf end { type types-services:sdp-id; mandatory true; description "End of range"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container sdp-id-range list fpe { key "fpe-id"; description "Enter the fpe list instance"; leaf fpe-id { type uint32 { range "1..64"; } description "FPE used to associate the application with a PXC"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container path { description "Enter the path context"; choice path-type { case port-xc { leaf pxc { type leafref { path "../../../../port-xc/pxc/pxc-id"; } description "Cross connect port identifier associated with this entry"; } } case lag { leaf xc-lag-a { type leafref { path "../../../../lag/lag-name"; } description "LAG name"; } leaf xc-lag-b { type leafref { path "../../../../lag/lag-name"; } description "LAG name"; } } } } // container path container application { description "Enter the application context"; leaf pw-port { type boolean; default "false"; description "Use FPE to set up FPE PW cross-connect"; } leaf sub-mgmt-extension { type boolean; default "false"; description "Reserve FPE for hybrid access bonding"; } container vxlan-termination { presence "Enter the 'vxlan-termination' context"; description "Enable the vxlan-termination context"; leaf router-instance { type string; default "Base"; description "Routing context that provides reachability to the tunnel configured"; } } // container vxlan-termination } // container application } // list fpe } // container fwd-path-ext container groups { description "Enter the groups context"; list group { key "name"; max-elements 64; description "Enter the group list instance"; leaf name { type types-sros:named-item-64; description "The name of this configuration group."; } container aaa { description "Enter the aaa context"; container radius { description "Enter the radius context"; leaf coa-port { type inet:port-number { range "1647|1700|1812|3799"; } default "3799"; description "Radius CoA port"; } list acct-on-off-group { key "name"; max-elements 32; description "Enter the acct-on-off-group list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Acct-on-off group name"; } leaf description { type types-sros:description; description "Text description"; } } // list acct-on-off-group list server-policy { key "name"; max-elements 32; description "Enter the server-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RADIUS script policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf python-policy { type types-sros:named-item; description "Python policy to modify the RADIUS messages"; } container servers { description "Enter the servers context"; leaf timeout { type types-sros:time-duration { range "1..340"; } units "seconds"; default "5"; description "Time until the next retry to the RADIUS server"; } leaf retry-count { type uint32 { range "1..256"; } default "3"; description "Number of retries for contacting the RADIUS server"; } leaf hold-down-time { type types-sros:time-duration { range "30..86400"; } units "seconds"; default "30"; description "Hold time before re-using a RADIUS server that was down"; } leaf router-instance { type string; description "RADIUS routing instance"; } leaf source-address { type types-sros:ipv4-address; description "Source address of RADIUS messages"; } leaf ipv6-source-address { type types-sros:ipv6-address; description "Source address for IPv6 RADIUS datagrams"; } leaf access-algorithm { type types-radius:server-selection-algo; description "Algorithm to access the set of RADIUS servers"; } leaf stickiness { type boolean; default "true"; description "Allow stickiness in a multi-server application"; } list server { key "server-index"; max-elements 32; description "Enter the server list instance"; leaf server-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..16"; } } description "RADIUS server index"; } leaf server-name { type types-sros:named-item; description "RADIUS server name"; } } // list server container buffering { description "Enter the buffering context"; container acct-start { presence "Enter the 'acct-start' context"; description "Enable the acct-start context"; leaf min { type types-sros:time-duration { range "1..3600"; } units "seconds"; description "Minimum time between accounting message resend attempts"; } leaf max { type types-sros:time-duration { range "1..3600"; } units "seconds"; description "Maximum time between accounting message resend attempts"; } leaf lifetime { type types-sros:time-duration { range "1..25"; } units "hours"; description "Time accounting message can be in retransmission buffer"; } } // container acct-start container acct-interim { presence "Enter the 'acct-interim' context"; description "Enable the acct-interim context"; leaf min { type types-sros:time-duration { range "1..3600"; } units "seconds"; description "Minimum time between accounting message resend attempts"; } leaf max { type types-sros:time-duration { range "1..3600"; } units "seconds"; description "Maximum time between accounting message resend attempts"; } leaf lifetime { type types-sros:time-duration { range "1..25"; } units "hours"; description "Time accounting message can be in retransmission buffer"; } } // container acct-interim container acct-stop { presence "Enter the 'acct-stop' context"; description "Enable the acct-stop context"; leaf min { type types-sros:time-duration { range "1..3600"; } units "seconds"; description "Minimum time between accounting message resend attempts"; } leaf max { type types-sros:time-duration { range "1..3600"; } units "seconds"; description "Maximum time between accounting message resend attempts"; } leaf lifetime { type types-sros:time-duration { range "1..25"; } units "hours"; description "Time accounting message can be in retransmission buffer"; } } // container acct-stop } // container buffering container health-check { description "Enter the health-check context"; leaf down-timeout { type types-sros:time-duration { range "1..340"; } units "seconds"; description "Wait time before declaring RADIUS server out-of-service"; } container test-account { description "Enter the test-account context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of health check state"; } leaf interval { type types-sros:time-duration { range "1..60"; } units "seconds"; default "3"; description "Time for health check"; } leaf user-name { type types-sros:display-string { length "1..64"; } description "Username for health check"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "Password for health check"; } } // container test-account } // container health-check } // container servers container acct-on-off { presence "Enter the 'acct-on-off' context"; description "Enable the acct-on-off context"; choice mode { case monitor { leaf monitor { type types-sros:named-item; sros-ext:immutable; description "Accounting on/off group name"; } } case oper-state-change { container oper-state-change { presence "Enter the 'oper-state-change' context"; description "Enable the oper-state-change context"; leaf group { type types-sros:named-item; sros-ext:immutable; description "Change of operational state for a group"; } } // container oper-state-change } } } // container acct-on-off } // list server-policy list route-downloader { key "name"; max-elements 1; description "Enter the route-downloader list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Route downloader name"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this Route Downloader"; } leaf radius-server-policy { type types-sros:named-item; description "Referenced RADIUS server policy"; } leaf download-interval { type uint32 { range "1..1440"; } units "minutes"; default "720"; description "Time for system to wait between two consecutive runs of route-download process"; } leaf default-metric { type uint32 { range "0..254"; } default "2"; description "Default metric of this route downloader"; } leaf default-tag { type uint32 { range "0..4294967295"; } default "0"; description "Default tag of this route downloader"; } leaf max-routes { type uint32 { range "1..200000"; } default "200000"; description "Maximum routes imported by this route downloader"; } leaf base-user-name { type types-sros:named-item; description "Prefix of the username used by this route downloader"; } leaf password { type types-sros:encrypted-leaf { length "1..71"; } description "Route downloader password"; } container retry-interval { description "Enter the retry-interval context"; leaf min { type uint32 { range "1..1440"; } units "minutes"; default "10"; description "Minimum duration of the retry interval"; } leaf max { type uint32 { range "1..1440"; } units "minutes"; default "20"; description "Maximum duration of the retry interval"; } } // container retry-interval } // list route-downloader list l2tp-accounting-policy { key "name"; max-elements 32; description "Enter the l2tp-accounting-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for L2TP RADIUS accounting policy"; } leaf description { type types-sros:description; description "Text description"; } leaf acct-tunnel-connection-fmt { type types-sros:display-string { length "1..253"; pattern "([^%]+|%[nsStTcC%])+"; } default "%n"; description "Accounting tunnel connection ASCII specification"; } leaf radius-server-policy { type types-sros:named-item; description "Referenced RADIUS server policy"; } container accounting-type { description "Enter the accounting-type context"; leaf session { type boolean; default "true"; description "Enable/disable per session accounting"; } leaf tunnel { type boolean; default "true"; description "Enable/disable per tunnel accounting"; } } // container accounting-type container include-radius-attribute { description "Enter the include-radius-attribute context"; leaf calling-station-id { type boolean; default "false"; description "Include the calling station ID attribute"; } leaf nas-identifier { type boolean; default "false"; description "Include the NAS-Identifier attribute"; } container nas-port { presence "Enter the 'nas-port' context"; description "Enable the nas-port context"; leaf bit-spec { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[oismpvc])+"; } description "RADIUS NAS-Port attribute"; } } // container nas-port container nas-port-id { presence "Enter the 'nas-port-id' context"; description "Enable the nas-port-id context"; leaf prefix-string { type types-sros:string-not-all-spaces { length "1..8"; } description "Specifies NAS-Port-Id prefix string"; } leaf suffix { type enumeration { enum "circuit-id" { value 1; } enum "remote-id" { value 2; } } description "NAS-Port-Id suffix"; } } // container nas-port-id container nas-port-type { presence "Enter the 'nas-port-type' context"; description "Enable the nas-port-type context"; leaf type { type union { type enumeration { enum "rfc-aligned" { value 1000; } } type uint32 { range "0..255"; } } default "rfc-aligned"; description "Value for RADIUS NAS-Port-Type attribute"; } } // container nas-port-type } // container include-radius-attribute } // list l2tp-accounting-policy list isa-policy { key "name"; max-elements 8; description "Enter the isa-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf password { type types-sros:encrypted-leaf { length "1..42"; } description "Password used in the RADIUS access requests"; } leaf nas-ip-address-origin { type enumeration { enum "system-ip" { value 0; } enum "isa-ip" { value 1; } } default "system-ip"; description "NAS-IP-Address attribute"; } leaf python-policy { type types-sros:named-item; description "Python policy used for modifying RADIUS messages"; } container accounting { description "Enter the accounting context"; container include-attributes { description "Enter the include-attributes context"; leaf acct-delay-time { type boolean; default "false"; description "Include the Acct-Delay-Time attribute"; } leaf acct-triggered-reason { type boolean; default "false"; description "Include the Alc-Acct-Triggered-Reason attribute"; } leaf called-station-id { type boolean; default "false"; description "Include the Called-Station-Id attribute"; } leaf calling-station-id { type boolean; default "false"; description "Include the Calling-Station-Id attribute"; } leaf circuit-id { type boolean; default "false"; description "Include the Agent-Circuit-Id attribute"; } leaf class { type boolean; default "false"; description "Include the Class attribute"; } leaf dhcp-options { type boolean; default "false"; description "Include the Alc-ToServer-Dhcp-Options attribute"; } leaf dhcp-vendor-class-id { type boolean; default "false"; description "Include the Alc-DHCP-Vendor-Class-Id attribute"; } leaf frame-counters { type boolean; default "false"; description "Include the Acct-Input-Packets and Acct-Output-Packets attributes"; } leaf framed-ip-address { type boolean; default "false"; description "Include the Framed-IP-Address attribute"; } leaf framed-ip-netmask { type boolean; default "false"; description "Include the Framed-IP-Netmask attribute"; } leaf framed-ipv6-prefix { type boolean; default "false"; description "Include the Framed-IPv6-Prefix attribute"; } leaf hardware-timestamp { type boolean; default "false"; description "Include the Event-Timestamp attribute"; } leaf ipv6-address { type boolean; default "false"; description "Include the Alc-Ipv6-Address attribute"; } leaf mac-address { type boolean; default "false"; description "Include the Alc-Client-Hardware-Addr attribute"; } leaf multi-session-id { type boolean; default "false"; description "Include the Acct-Multi-Session-Id attribute"; } leaf nas-identifier { type boolean; default "false"; description "Include the NAS-Identifier attribute"; } leaf nas-ip-address { type boolean; default "false"; description "Include the NAS-IP-Address attribute"; } leaf nas-port { type boolean; default "false"; description "Include the NAS-Port attribute"; } leaf nas-port-id { type boolean; default "false"; description "Include the NAS-Port-Id attribute"; } leaf nas-port-type { type boolean; default "false"; description "Include the NAS-Port-Type attribute"; } leaf nat-inside-service-id { type boolean; default "false"; description "Include NAT inside service ID in Alc-Serv-Id attribute"; } leaf nat-outside-ip-address { type boolean; default "false"; description "Include the Alc-Nat-Outside-Ip-Addr attribute"; } leaf nat-outside-service-id { type boolean; default "false"; description "Include NAT outside service ID in Alc-Serv-Id attribute"; } leaf nat-port-range-block { type boolean; default "false"; description "Include the Alc-Nat-Port-Range attribute"; } leaf nat-subscriber-string { type boolean; default "false"; description "Include the Alc-Subsc-ID-Str attribute"; } leaf octet-counters { type boolean; default "false"; description "Include the Acct-Input-Octets and Acct-Output-Octets attributes"; } leaf proxied-subscriber-data { type boolean; default "false"; description "Include subscriber data as RADIUS attributes"; } leaf release-reason { type boolean; default "false"; description "Include the NAT release reason in the Acct-Terminate-Cause attribute"; } leaf remote-id { type boolean; default "false"; description "Include the Agent-Remote-Id attribute"; } leaf rssi { type boolean; default "false"; description "Include the Alc-RSSI attribute"; } leaf session-time { type boolean; default "false"; description "Include the Acct-Session-Time attribute"; } leaf subscriber-id { type boolean; default "false"; description "Include the Alc-Subsc-ID-Str attribute"; } leaf toserver-dhcp6-options { type boolean; default "false"; description "Include the Alc-ToServer-Dhcp6-Options attribute"; } leaf ue-creation-type { type boolean; default "false"; description "Include the Alc-Wlan-Ue-Creation-Type attribute"; } leaf user-name { type boolean; default "false"; description "Include the User-Name attribute"; } leaf wlan-ssid-vlan { type boolean; default "false"; description "Include per-SSID VLAN in Alc-Wlan-SSID-VLAN attribute"; } leaf xconnect-tunnel-local-ipv6-address { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Local-Ipv6 attribute"; } leaf xconnect-tunnel-remote-ipv6-address { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Remote-Ipv6 attribute"; } leaf xconnect-tunnel-service { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Service attribute"; } leaf xconnect-tunnel-type { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Type attribute"; } leaf xconnect-tunnel-home-address { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Home-Ipv6 attribute"; } leaf millisecond-event-timestamp { type boolean; default "false"; description "Include the Alc-Millisecond-Event-Timestamp attribute"; } } // container include-attributes container update-triggers { description "Enter the update-triggers context"; leaf address-state { type boolean; default "false"; description "Send an Interim-Update when DHCP/DHCP6/SLAAC state is created or removed"; } } // container update-triggers container nat-periodic-update { description "Enter the nat-periodic-update context"; leaf interval { type types-sros:time-duration { range "1..72"; } units "hours"; description "Interval for periodic RADIUS Interim-Update messages"; } leaf rate-limit { type union { type uint32 { range "1..100000"; } type enumeration { enum "unlimited" { value 0; } } } units "packets per second"; default "unlimited"; description "Rate limit for periodic RADIUS Interim-Update messages"; } } // container nat-periodic-update } // container accounting container authentication { description "Enter the authentication context"; container include-attributes { description "Enter the include-attributes context"; leaf called-station-id { type boolean; default "false"; description "Include the Called-Station-Id attribute"; } leaf calling-station-id { type boolean; default "false"; description "Include the Calling-Station-Id attribute"; } leaf circuit-id { type boolean; default "false"; description "Include the Agent-Circuit-Id attribute"; } leaf toserver-dhcp-options { type boolean; default "false"; description "Include the Alc-ToServer-Dhcp-Options attribute"; } leaf dhcp-vendor-class-id { type boolean; default "false"; description "Include the Alc-DHCP-Vendor-Class-Id attribute"; } leaf framed-ip-address { type boolean; default "false"; description "Include the Framed-IP-Address attribute"; } leaf ipv6-address { type boolean; default "false"; description "Include the IPv6-address attribute"; } leaf mac-address { type boolean; default "false"; description "Include the Alc-Client-Hardware-Addr attribute"; } leaf nas-identifier { type boolean; default "false"; description "Include the NAS-Identifier attribute"; } leaf nas-ip-address { type boolean; default "true"; description "Include the NAS-IP-Address attribute"; } leaf nas-port { type boolean; default "false"; description "Include the NAS-Port attribute"; } leaf nas-port-id { type boolean; default "false"; description "Include the NAS-Port-Id attribute"; } leaf nas-port-type { type boolean; default "false"; description "Include the NAS-Port-Type attribute"; } leaf remote-id { type boolean; default "false"; description "Include the Agent-Remote-Id attribute"; } leaf toserver-dhcp6-options { type boolean; default "false"; description "Include the Alc-ToServer-Dhcp6-Options attribute"; } leaf wlan-ssid-vlan { type boolean; default "false"; description "Include per-SSID VLAN in Alc-Wlan-SSID-VLAN attribute"; } leaf xconnect-tunnel-home-address { type boolean; default "false"; description "Include the Alc-Xconnect-Tunnel-Home-Ipv6 attribute"; } } // container include-attributes } // container authentication container user-name { description "Enter the user-name context"; leaf format { type enumeration { enum "mac" { value 1; } enum "mac-ip" { value 2; } enum "dhcp-vendor" { value 3; } enum "circuit-id" { value 4; } } default "mac"; description "How user is represented when contacting RADIUS server"; } leaf mac-format { type types-nat:mac-format; description "How the MAC address gets formatted"; } } // container user-name container servers { description "Enter the servers context"; leaf source-address-range { type types-sros:ipv4-unicast-address; description "Starting source address of RADIUS messages; end depends on number of ISAs in the system"; } leaf timeout { type types-sros:time-duration { range "1..90"; } units "seconds"; default "5"; description "Timeout for a response from the RADIUS server"; } leaf total-tries { type uint32 { range "1..10"; } default "3"; description "Maximum number of tries toward the same RADIUS server"; } leaf router-instance { type string; description "The routing instance"; } leaf access-algorithm { type types-radius:isa-server-selection-algo; description "Algorithm that accesses the RADIUS servers"; } list server { key "index"; max-elements 10; description "Enter the server list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..10"; } } description "RADIUS server index that determines sequence in which servers are queried for auth requests"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ISA RADIUS server"; } leaf ip-address { type types-sros:ipv4-unicast-address; description "Destination IP address to reach RADIUS server"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Shared secret to authenticate messages and encrypt attributes to or from this server"; } container purpose { description "Enter the purpose context"; container accounting { presence "Enter the 'accounting' context"; description "Enable the accounting context"; leaf udp-port { type types-sros:tcp-udp-port-non-zero; default "1813"; description "ISA RADIUS server accounting UDP port"; } } // container accounting container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf udp-port { type types-sros:tcp-udp-port-non-zero; default "1812"; description "ISA RADIUS server authentication UDP port"; } } // container authentication container coa { presence "Enter the 'coa' context"; description "Enable the coa context"; leaf udp-port { type types-sros:tcp-udp-port-non-zero; default "3799"; description "ISA RADIUS server change of authorization UDP port"; } } // container coa } // container purpose } // list server } // container servers } // list isa-policy } // container radius container diameter { description "Enter the diameter context"; list node { key "origin-host"; max-elements 32; description "Enter the node list instance"; leaf origin-host { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-diam:diam-fqdn; } description "Origin-Host AVP"; } leaf description { type types-sros:description; description "Text description"; } leaf origin-realm { type types-diam:diam-fqdn; sros-ext:immutable; description "Origin-realm name"; } leaf python-policy { type types-sros:named-item; description "Python policy for received or sent Diameter messages"; } leaf router-instance { type string; default "Base"; description "Router in which this node connects to its peers"; } container connection { description "Enter the connection context"; leaf timer { type types-sros:time-duration { range "1..1000"; } units "seconds"; default "30"; description "Wait time before attempting reconnection to peer"; } container ipv4 { description "Enter the ipv4 context"; leaf local-address { type types-sros:ipv4-unicast-address; description "Local address of IPv4 TCP peer connection"; } leaf allow-connections { type boolean; default "false"; description "Listen on local address for incoming peer connections"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf local-address { type types-sros:ipv6-unicast-address; description "Local address of IPv6 TCP peer connection"; } leaf allow-connections { type boolean; default "false"; description "Listen on local address for incoming peer connections"; } } // container ipv6 } // container connection list peer { key "index"; max-elements 5; description "Enter the peer list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..5"; } } description "Index of peer within the node"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Diameter peer"; } leaf address { type types-sros:ip-unicast-address; description "Diameter peer address"; } leaf destination-host { type types-diam:diam-fqdn; sros-ext:immutable; description "Destination-Host AVP string for Diameter messages"; } leaf connection-timer { type types-sros:time-duration { range "1..1000"; } units "seconds"; description "Wait time before attempting reconnection to peer"; } leaf preference { type uint32 { range "1..100"; } default "50"; description "Preference of this peer, lower is more preferred"; } leaf watchdog-timer { type types-sros:time-duration { range "1..1000"; } units "seconds"; description "Time between consecutive watchdog messages"; } leaf default-peer { type boolean; default "false"; description "Use the peer as default route for realm-based routing"; } list route { key "index"; max-elements 15; description "Enter the route list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..15"; } } description "Static Diameter route ID"; } leaf realm { type types-diam:diam-fqdn; sros-ext:immutable; description "Destination realm reachable via the static route"; } leaf application { type enumeration { enum "nasreq" { value 1; } enum "gy" { value 4; } enum "gx" { value 16777238; } } sros-ext:immutable; description "Diameter application to which the route applies"; } leaf preference { type uint32 { range "1..100"; } default "50"; description "Static route preference; lower value is preferred"; } } // list route } // list peer } // list node list peer-policy { status deprecated; key "name"; max-elements 32; description "Enter the peer-policy list instance"; leaf name { status deprecated; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Diameter peer policy name"; } leaf description { status deprecated; type types-sros:description; description "Text description"; } leaf origin-host { status deprecated; type string { length "1..80"; } description "Origin-Host AVP sent in all Diameter messages"; } leaf origin-realm { status deprecated; type string { length "1..80"; } description "Origin-Realm AVP sent in all Diameter messages"; } leaf router-instance { status deprecated; type string; default "Base"; description "Diameter peer policy router"; } leaf ipv4-source-address { status deprecated; type types-sros:ipv4-unicast-address; description "IPv4 source address for peering connection"; } leaf ipv6-source-address { status deprecated; type types-sros:ipv6-unicast-address; description "IPv6 source address for IPv6-reachable peering"; } leaf watchdog-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; default "30"; description "Time between consecutive watchdog messages"; } leaf connection-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; default "30"; description "Wait time before attempting reconnection to peer"; } leaf transaction-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; default "30"; description "Timeout for base Diameter messages (DWR, CER, DPR)"; } leaf vendor-support { status deprecated; type types-diam:diam-vendor-support; default "three-gpp"; description "Vendor support announced in the capability exchange"; } leaf python-policy { status deprecated; type types-sros:named-item; description "Name of python policy for Diameter processing"; } leaf role { status deprecated; type enumeration { enum "client" { value 0; } enum "proxy" { value 1; } } sros-ext:immutable; default "client"; description "Client or proxy role of a Diameter peer policy"; } container applications { status deprecated; description "Enter the applications context"; leaf gx { status deprecated; type boolean; default "false"; description "Advertise Gx application support in CER messages"; } leaf gy { status deprecated; type boolean; default "false"; description "Advertise Gy application support in CER messages"; } leaf nasreq { status deprecated; type boolean; default "false"; description "Advertise NASREQ application support in CER messages"; } } // container applications list peer { status deprecated; key "peer-name"; max-elements 5; description "Enter the peer list instance"; leaf peer-name { status deprecated; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of peer in Diameter peer policy"; } leaf admin-state { status deprecated; type types-sros:admin-state; default "disable"; description "Administrative state of the peer"; } leaf address { status deprecated; type types-sros:ip-unicast-address; description "Diameter peer address"; } leaf destination-host { status deprecated; type types-sros:string-not-all-spaces { length "1..80"; } description "Destination-Host AVP string for Diameter messages"; } leaf destination-realm { status deprecated; type types-sros:string-not-all-spaces { length "1..80"; } description "Destination-Realm AVP string"; } leaf watchdog-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; description "Time between consecutive watchdog messages"; } leaf connection-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; description "Wait time before attempting reconnection to peer"; } leaf transaction-timer { status deprecated; type types-sros:time-duration { range "1..1000"; } units "seconds"; description "Timeout for base Diameter messages (DWR, CER, DPR)"; } leaf preference { status deprecated; type uint32 { range "1..100"; } default "50"; description "Peer preference of the Diameter peer policy"; } container transport { status deprecated; description "Enter the transport context"; leaf port-number { status deprecated; type uint32 { range "1..65535"; } default "3868"; description "Transport protocol port number used toward policy peer"; } } // container transport container statistics { status deprecated; description "Enter the statistics context"; } // container statistics } // list peer container proxy { status deprecated; description "Enter the proxy context"; leaf admin-state { status deprecated; type types-sros:admin-state; default "disable"; description "Administrative state of Diameter proxy"; } leaf router-instance { status deprecated; type string; description "Routing context associated with Diameter proxy"; } leaf local-address { status deprecated; type types-sros:ip-unicast-address; description "Source IP address on which Diameter proxy listens"; } container mcs-peer { status deprecated; presence "Enter the 'mcs-peer' context"; description "Enable the mcs-peer context"; leaf address { status deprecated; type types-sros:ip-unicast-address; sros-ext:immutable; description "MCS peer address"; } leaf sync-tag { status deprecated; type types-sros:named-item; sros-ext:immutable; description "Synchronization tag shared by MCS peers"; } } // container mcs-peer } // container proxy } // list peer-policy } // container diameter container wpp { description "Enter the wpp context"; leaf system-name { type string { length "1..16"; } description "System name used in WPP protocol messages"; } list portal-group { key "group-name"; description "Enter the portal-group list instance"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Portal group name"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the portal group"; } list portal { key "router-instance name"; max-elements 8; description "Add a list entry for portal"; leaf router-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64 { pattern ".{1,32}" { error-message "vRtrName needs to be extended to 64 to support this name"; } } } description "Router on which the portal is configured"; } leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Portal name"; } } // list portal } // list portal-group } // container wpp } // container aaa list aps { if-feature nokia-features:sros-port-aps; key "group-id"; description "Enter the aps list instance"; leaf group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..128"; } } description "Specifies the APS group identifier."; } leaf advertise-interval { type uint32 { range "10..650"; } units "deciseconds"; default "10"; description "Configure interval between subsequent advertisement messages."; } leaf hold-time { type uint32 { range "10..650"; } units "deciseconds"; default "30"; description "Configure how long to wait for an APS advertisement packet before the peer in a Multi-Chassis APS group is considered operationally down."; } leaf switching-mode { type enumeration { enum "uni-directional" { value 1; } enum "bi-directional" { value 2; } } default "bi-directional"; description "Configure the switching mode for the APS port."; } choice annexb-choice { default "non-annexb"; case annexb { container annexb { presence "Enter the 'annexb' context"; description "Enable the annexb context"; leaf wait-to-restore-time { type uint32 { range "0..3600"; } units "seconds"; default "300"; description "Configure Annex B Wait To Restore time."; } leaf-list working-circuit { type types-sros:port; max-elements 2; ordered-by user; description "Configure the physical ports that will act as the working circuits for this APS group."; } } // container annexb } case non-annexb { leaf neighbor { type types-sros:ip-address; default "0.0.0.0"; description "Configure neighbor's IP address for Multi-Chassis APS."; } leaf protect-circuit { type types-sros:port; description "Physical port that acts as the protection circuit"; } leaf working-circuit { type types-sros:port; description "Configure a physical port that will act as the working circuit for this APS group."; } container revert { presence "Enter the 'revert' context"; description "Enable the revert context"; leaf time { type uint32 { range "0|60..3600"; } units "seconds"; default "300"; description "Configure how long to wait before switching back to the working circuit after it has been restored to service."; } } // container revert } } } // list aps container bfd { description "Enter the bfd context"; list bfd-template { key "name"; description "Enter the bfd-template list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "BFD template name"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; default "100"; description "Echo receive interval"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Detection multiplier value"; } leaf receive-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Receive interval"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Transmit interval"; } leaf type { type enumeration { enum "cpm-np" { value 1; } } description "Local termination point for the BFD session"; } } // list bfd-template container seamless-bfd { description "Enter the seamless-bfd context"; list reflector { key "name"; max-elements 1; description "Enter the reflector list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "S-BFD reflector name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the seamless BFD reflector"; } leaf discriminator { type uint32 { range "524288..526335"; } description "Discriminator of the seamless BFD reflector"; } leaf description { type types-sros:description; description "Text description"; } leaf local-state { type enumeration { enum "admin-down" { value 0; } enum "up" { value 3; } } default "up"; description "Local state of the seamless BFD reflector"; } } // list reflector } // container seamless-bfd } // container bfd container bmp { description "Enter the bmp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the BMP operation"; } container collector { description "Enter the collector context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the BMP collector"; } container connection { description "Enter the connection context"; container ipv4 { description "Enter the ipv4 context"; leaf address { type types-sros:ipv4-unicast-address; description "IPv4 address."; } leaf port { type types-sros:tcp-udp-port-non-zero; default "4210"; description "IPv4 TCP port."; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf address { type types-sros:ipv6-unicast-address; description "IPv6 address."; } leaf port { type types-sros:tcp-udp-port-non-zero; default "4210"; description "IPv6 TCP port."; } } // container ipv6 } // container connection } // container collector list station { key "name"; max-elements 8; description "Enter the station list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "BMP monitoring station name"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the BMP monitoring station"; } leaf initiation-message { type string { length "1..255"; } description "Free form initiation message for a type 0 TLV to be sent to the BMP monitoring station"; } leaf stats-report-interval { type types-sros:time-duration { range "15..65535"; } units "seconds"; description "Frequency of statistics reporting messages sent to the BMP monitoring station"; } leaf report-local-routes { type boolean; default "false"; description "Allow local route reporting to the BMP monitoring station"; } container connection { description "Enter the connection context"; leaf connect-retry { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "120"; description "Maximum time between connection attempts"; } leaf local-address { type types-sros:ip-unicast-address; description "Local IP address to communicate with the BMP monitoring station"; } leaf router-instance { type string; default "Base"; description "Router instance used to reach the BMP station"; } container station-address { description "Enter the station-address context"; leaf ip-address { type types-sros:ip-unicast-address; description "IP address of the BMP monitoring station"; } leaf port { type types-sros:tcp-udp-port-non-zero; description "Port of the BMP monitoring station"; } } // container station-address container tcp-keepalive { description "Enter the tcp-keepalive context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the TCP keepalive"; } leaf keep-idle { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "600"; description "Time until the first TCP keepalive probe is sent."; } leaf keep-interval { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "15"; description "Time between two TCP keepalive probes"; } leaf keep-count { type uint32 { range "3..100"; } default "4"; description "Number of missed keepalives before the TCP connection is declared down"; } } // container tcp-keepalive } // container connection container family { description "Enter the family context"; leaf ipv4 { type boolean; default "true"; description "Support IPv4 address family"; } leaf ipv6 { type boolean; default "false"; description "Support IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Support labeled IPv4 address family"; } leaf label-ipv6 { type boolean; default "false"; description "Support labeled IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Support IPv4 multicast address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Support IPv6 multicast address family"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support VPN IPv4 address family"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support VPN IPv6 address family"; } leaf mcast-vpn-ipv4 { type boolean; default "false"; description "Support IPv4 VPN multicast address family"; } leaf mcast-vpn-ipv6 { type boolean; default "false"; description "Support IPv6 VPN multicast address family"; } leaf evpn { type boolean; default "false"; description "Support EVPN address family"; } leaf l2-vpn { type boolean; default "false"; description "Support L2 VPN address family"; } } // container family } // list station } // container bmp container call-trace { description "Enter the call-trace context"; leaf max-files-number { type uint32 { range "1..1024"; } default "200"; description "Maximum number of all call trace log files stored on all compact flash cards"; } leaf primary-cf { type enumeration { enum "cf1" { value 1; } enum "cf2" { value 2; } } default "cf1"; description "Compact flash card to be used as primary local storage location to save the call trace log files"; } leaf buffering { type boolean; default "false"; description "Buffer messages until the trace key is known"; } list location { key "location-type"; description "Enter the location list instance"; leaf location-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "cf1" { value 1; } enum "cf2" { value 2; } } } description "ID of the compact flash card to be used"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of compact flash for log storage"; } leaf size-limit { type union { type uint32 { range "1..65536"; } type enumeration { enum "unlimited" { value 0; } } } default "1000"; description "Maximum cumulative size of all local call trace log files stored on the given compact flash card"; } } // list location list trace-profile { key "name"; description "Enter the trace-profile list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Unique name for the call trace profile"; } leaf description { type types-sros:description; description "Text description"; } leaf size-limit { type uint32 { range "1..1000"; } units "megabytes"; default "10"; description "Maximum data volume generated by a single call trace job to the output"; } leaf time-limit { type types-sros:time-duration { range "1..604800"; } default "86400"; description "Maximum time for a single call trace job"; } leaf events { type enumeration { enum "public-only" { value 2; } enum "all" { value 3; } } description "Events to include in the captured trace"; } container applications { description "Enter the applications context"; leaf connectivity-management { type boolean; default "true"; description "Allow tracing for connectivity protocols"; } leaf radius-auth { type boolean; default "true"; description "Allow tracing for messages and events related to RADIUS authentication"; } leaf radius-acct { type boolean; default "true"; description "Allow tracing for messages and events related to RADIUS-based accounting"; } leaf python { type boolean; default "true"; description "Allow tracing for Python script execution"; } leaf ludb { type boolean; default "true"; description "Allow tracing for local user database lookups"; } leaf msap { type boolean; default "true"; description "Allow tracing for MSAP creation events"; } leaf ppp-event { type boolean; default "false"; description "Allow tracing for PPP state machine related events"; } } // container applications container output { description "Enter the output context"; choice destination { default "local-storage"; case local-storage { leaf local-storage { type empty; description "Default destination for output"; } } case debug { leaf debug { type empty; description "Trace log generated by a call trace job to be decoded as test and sent to debug logging"; } } case live { container live { presence "Enter the 'live' context"; description "Enable the live context"; leaf port { type types-nat:port-number; default "29770"; description "TCP IP port"; } leaf router-instance { type string; default "Base"; description "Router instance or VPRN service name"; } choice live { case ip-address { leaf ip-address { type types-sros:ip-address; description "IP address of the live output destination"; } } case fqdn { leaf fqdn { type string { length "1..255"; } description "Fully qualified domain name of the live output destination"; } } } } // container live } } } // container output } // list trace-profile } // container call-trace list card { key "slot-number"; description "Enter the card list instance"; leaf slot-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-card:iom-card-slot; } description "IOM slot within a chassis"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the I/O module"; } leaf card-type { type types-card:sros-iom-type; sros-ext:immutable; description "Card type"; } leaf fail-on-error { type boolean; default "false"; description "Set the Operational State of the card to Failed when an error is detected"; } leaf reset-on-recoverable-error { type boolean; default "false"; description "Reset card for fatal memory parity error on a Q-chip of the card, regardless of fail-on-error setting"; } leaf level { type types-card:sros-iom-level; sros-ext:immutable; description "Functional level of I/O module for slot"; } leaf power-save { type boolean; default "false"; description "Keeps the card in a low-power, unloaded state when set."; } leaf filter-profile { type types-card:filter-profile; default "none"; description "The filter allocation profile for the card."; } leaf hash-seed-shift { type uint32 { range "1..16"; } default "2"; description "Number of bits to shift the hash seed result"; } list upgrade { key "upgrade-index"; description "Enter the upgrade list instance"; leaf upgrade-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..6"; } } description "Value specifying the order of the upgrade"; } leaf path { type types-card:sros-iom-level-upgrade-path; sros-ext:immutable; description "Upgrade path of the I/O module for the slot"; } } // list upgrade list event { key "type"; description "Enter the event list instance"; leaf type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "soft-error" { value 1; } } } description "The unique value which identifies the card event type to be monitored."; } leaf action { type types-chassis:hw-event-action; description "Provisions action to be taken on the card when the event is detected."; } } // list event container virtual-scheduler-adjustment { description "Enter the virtual-scheduler-adjustment context"; leaf internal-scheduler-weight-mode { type types-qos:internal-scheduler-weight-mode; default "auto"; description "Internal scheduler weight mode"; } leaf slow-queue-threshold-rate { type uint32 { range "0..1000000"; } units "kilobps"; default "1000"; description "Rate of the slow queue threshold"; } container interval { description "Enter the interval context"; leaf scheduler-run-minimum { type decimal64 { range "0.01..1000.00"; fraction-digits 2; } units "percent"; default "100.00"; description "Minimum time of the scheduler run"; } leaf task-scheduling { type decimal64 { range "0.01..1000.00"; fraction-digits 2; } units "percent"; default "100.00"; description "Task scheduling interval"; } container rate-calculation-minimum { description "Enter the rate-calculation-minimum context"; leaf fast-queue { type decimal64 { range "0.01..1000.00"; fraction-digits 2; } units "percent"; default "100.00"; description "Default minimum rate calculation time for fast queues"; } leaf slow-queue { type decimal64 { range "0.01..1000.00"; fraction-digits 2; } units "percent"; default "100.00"; description "Default minimum rate calculation time for slow queues"; } } // container rate-calculation-minimum } // container interval } // container virtual-scheduler-adjustment list mda { key "mda-slot"; description "Enter the mda list instance"; leaf mda-slot { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..6"; } } description "MDA slot"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the MDA"; } leaf fail-on-error { type boolean; default "false"; description "Set the Operational State of the MDA to Failed when threshold of egress XPL errors is reached"; } leaf mda-type { type types-card:sros-mda-type; sros-ext:immutable; description "MDA configuration for slot"; } leaf power-priority-level { type uint32 { range "1..200"; } default "150"; description "Power priority value, lower value has higher priority"; } leaf reset-on-recoverable-error { type boolean; default "false"; description "Reset MDA for fatal memory parity error on a Q-chip of the MDA, regardless of fail-on-error setting"; } leaf sync-e { type enumeration { enum "true" { value 1; } enum "false" { value 2; } } description "Synchronous Ethernet"; } leaf level { type types-card:sros-mda-level; sros-ext:immutable; description "Functional level of MDA for slot"; } container clock-mode { description "Enter the clock-mode context"; leaf mode { type enumeration { enum "adaptive" { value 1; } enum "differential" { value 2; } } description "Clock mode"; } leaf timestamp-freq { type uint32 { range "19440|77760|103680"; } description "Differential timestamp frequency"; } } // container clock-mode container egress-xpl { description "Enter the egress-xpl context"; leaf threshold { type uint32 { range "1..1000000"; } units "xpl errors"; default "1000"; description "Threshold value for egress XPL errors"; } leaf window { type uint32 { range "1..1440"; } units "minutes"; default "60"; description "Time interval to measure frequency of egress XPL errors against threshold value"; } } // container egress-xpl container ingress-xpl { description "Enter the ingress-xpl context"; leaf threshold { type uint32 { range "1..1000000"; } units "xpl errors"; default "1000"; description "Threshold value for ingress XPL errors"; } leaf window { type uint32 { range "1..1440"; } units "minutes"; default "60"; description "Time interval to measure frequency of ingress XPL errors against threshold value"; } } // container ingress-xpl list upgrade { key "upgrade-index"; description "Enter the upgrade list instance"; leaf upgrade-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..6"; } } description "Value specifying the order of the upgrade"; } leaf path { type types-card:sros-mda-level-upgrade-path; sros-ext:immutable; description "Upgrade path of the MDA for the slot"; } } // list upgrade container access { description "Enter the access context"; container egress { description "Enter the egress context"; list pool { key "name"; description "Enter the pool list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Unique pool name for MDA"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Configure amber alarm threshold allowed on over-subscription."; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Configure red alarm threshold allowed on over-subscription."; } leaf slope-policy { type types-sros:named-item; description "Configure the slope policy."; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type int32 { range "0..100"; } units "percent"; description "Configure the percentage of pool size reserved for CBS. For network, the default value is computed as the sum of the CBS request by the entities using the pool. For access, the default value is 30%."; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS size of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS size of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container egress container ingress { description "Enter the ingress context"; list pool { key "name"; description "Enter the pool list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Unique pool name for MDA"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Amber alarm threshold allowed on over-subscription"; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Red alarm threshold allowed on over-subscription"; } leaf slope-policy { type types-sros:named-item; description "Slope policy name"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type int32 { range "0..100"; } units "percent"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS size of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS size of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container ingress } // container access container egress { status obsolete; description "Enter the egress context"; leaf hsmda-pool-policy { status obsolete; type types-sros:named-item; description "Egress HSMDA pool policy"; } container hsmda-aggregate-queue-burst { status obsolete; description "Enter the hsmda-aggregate-queue-burst context"; leaf high-burst-increase { status obsolete; type int32 { range "0..65536"; } units "bytes"; description "High burst increase"; } leaf low-burst-multiplier { status obsolete; type int32 { range "1..65536"; } description "Low burst multiplier"; } } // container hsmda-aggregate-queue-burst } // container egress list event { key "type"; description "Enter the event list instance"; leaf type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "soft-error" { value 1; } enum "internal-frame-loss" { value 2; } enum "memory-error" { value 3; } } } description "MDA event type to be monitored"; } leaf action { type types-chassis:hw-event-action; description "Action when a specific hardware error event is raised"; } } // list event container network { description "Enter the network context"; container egress { description "Enter the egress context"; list pool { key "name"; description "Enter the pool list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Unique pool name for MDA"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Configure amber alarm threshold allowed on over-subscription."; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Configure red alarm threshold allowed on over-subscription."; } leaf slope-policy { type types-sros:named-item; description "Configure the slope policy."; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type int32 { range "0..100"; } units "percent"; description "Configure the percentage of pool size reserved for CBS. For network, the default value is computed as the sum of the CBS request by the entities using the pool. For access, the default value is 30%."; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS size of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS size of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container egress container ingress { description "Enter the ingress context"; leaf queue-policy { status obsolete; type types-sros:named-item; description "Network-queue policy"; } list pool { status obsolete; key "name"; description "Enter the pool list instance"; leaf name { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Unique pool name for MDA"; } leaf amber-alarm-threshold { status obsolete; type uint32 { range "1..1000"; } units "percent"; description "Amber alarm threshold allowed on over-subscription"; } leaf red-alarm-threshold { status obsolete; type uint32 { range "1..1000"; } units "percent"; description "Red alarm threshold allowed on over-subscription"; } leaf slope-policy { status obsolete; type types-sros:named-item; description "Slope policy name"; } container resv-cbs { status obsolete; description "Enter the resv-cbs context"; leaf cbs { status obsolete; type int32 { range "0..100"; } units "percent"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { status obsolete; description "Enter the amber-alarm-action context"; leaf step { status obsolete; type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS size of the pool"; } leaf max { status obsolete; type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS size of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container ingress } // container network } // list mda list xiom { key "xiom-slot"; description "Enter the xiom list instance"; leaf xiom-slot { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "2"; pattern "x[1-2]" { error-message "Invalid xiom-slot."; } } } description "XIOM slot ID"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the XIOM"; } leaf fail-on-error { type boolean; default "false"; description "Set Operational State to Failed if an error is detected"; } leaf level { type types-card:sros-xiom-level; sros-ext:immutable; description "License level of the XIOM"; } leaf reset-on-recoverable-error { type boolean; default "false"; description "Reset XIOM for fatal memory parity error on a Q-chip"; } leaf xiom-type { type types-card:sros-xiom-type; sros-ext:immutable; description "XIOM type"; } list mda { key "mda-slot"; description "Enter the mda list instance"; leaf mda-slot { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2"; } } description "MDA-s slot number"; } leaf mda-type { type types-card:sros-xiom-mda-type; sros-ext:immutable; description "MDA-s type provisioned for the XIOM slot"; } leaf power-priority-level { type uint32 { range "1..200"; } default "150"; description "Power priority level for the XIOM MDA-s"; } leaf sync-e { type enumeration { enum "true" { value 1; } enum "false" { value 2; } } description "Synchronous Ethernet operation capability"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the MDA"; } } // list mda list upgrade { key "upgrade-index"; description "Enter the upgrade list instance"; leaf upgrade-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..6"; } } description "Value specifying the order of the upgrade"; } leaf path { type types-card:sros-xiom-level-upgrade-path; sros-ext:immutable; description "Upgrade name"; } } // list upgrade } // list xiom list fp { key "fp-number"; description "Enter the fp list instance"; leaf fp-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Forwarding plane within a specific IOM card"; } leaf ingress-buffer-allocation { type decimal64 { range "20.00..80.00"; fraction-digits 2; } units "percent"; default "50.00"; description "Ingress buffer pool percentage for forwarding plane"; } leaf init-extract-prio-mode { type enumeration { enum "uniform" { value 1; } enum "l3-classify" { value 2; } } default "uniform"; description "Scheme to select initial drop priority of extracted control plane traffic"; } leaf stable-pool-sizing { type boolean; default "false"; description "Use a stable buffer pool allocation environment for all default port buffer pools on an FP"; } leaf fp-resource-policy { type types-qos:qos-policy-name; sros-ext:card-auto-reset-on-modify; description "FP resource policy name"; } leaf policy-accounting { status obsolete; type uint32 { range "1000..128000"; } description "Number of stats resources for policy accounting for the forwarding plane"; } container dist-cpu-protection { status obsolete; description "Enter the dist-cpu-protection context"; leaf dynamic-enforcement-policer-pool { status obsolete; type uint32 { range "1000..32000"; } description "Number of policers reserved as enforcement policers use"; } } // container dist-cpu-protection container egress { description "Enter the egress context"; leaf hs-fixed-high-thresh-delta { type int32 { range "0..65536"; } description "High threshold delta on forwarding plane"; } leaf hs-pool-policy { type types-sros:named-item; description "HS pool policy"; } container wred-queue-control { description "Enter the wred-queue-control context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WRED queue control"; } leaf buffer-allocation { type decimal64 { range "0.01..99.99"; fraction-digits 2; } units "percent"; default "25.00"; description "Configure the WRED queue aggregate buffer allocation which will be set aside for WRED queue buffer pools"; } leaf reserved-cbs { type decimal64 { range "0.01..99.99"; fraction-digits 2; } units "percent"; default "25.00"; description "Configure the buffers within the WRED pool that will be set aside for WRED queues operating within their configured CBS thresholds."; } leaf slope-policy { type types-sros:named-item; description "Egress WRED queue control slope policy for forwarding plane"; } } // container wred-queue-control } // container egress container hi-bw-mcast-src { presence "Enter the 'hi-bw-mcast-src' context"; description "Enable the hi-bw-mcast-src context"; leaf alarm { type boolean; default "false"; description "Raise an alarm when more than one high bandwidth multicast traffic taps share a plane"; } leaf group { type uint32 { range "0..32"; } default "0"; description "Logical MSFP group of the MDA"; } leaf default-paths-only { type boolean; default "false"; description "Allocate only the two default paths (one high priority and one low priority) to dedicated MSFPs"; } } // container hi-bw-mcast-src container ingress { description "Enter the ingress context"; container access { description "Enter the access context"; list queue-group { key "queue-group-name instance-id"; description "Enter the queue-group list instance"; leaf queue-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Queue group name"; } leaf instance-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint16 { range "1..65535"; } } description "Instance ID"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy for the FP ingress queue group"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics on FP ingress queue group"; } leaf description { type types-sros:description; description "Text description"; } container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf max-rate { type types-qos:queue-pir-rate-override; units "kilobps"; description "Maximum rate override"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-threshold-separation { type types-qos:policer-burst-size-override; units "bytes"; description "Minimum threshold separation override"; } list priority { key "level"; description "Enter the priority list instance"; leaf level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type types-qos:policer-burst-size-override; units "bytes"; description "MBS contribution size override"; } } // list priority } // container priority-mbs-thresholds } // container overrides } // container policer-control-policy container policer-overrides { description "Enter the policer-overrides context"; list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id { range "1..32"; } } description "Policer identifier"; } leaf cbs { type types-qos:policer-burst-size-override; units "bytes"; description "CBS parameter override"; } leaf mbs { type types-qos:policer-burst-size-override; units "bytes"; description "MBS parameter override"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet handled by the policer"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Stat mode for the policer"; } container rate { description "Enter the rate context"; leaf cir { type types-qos:queue-cir-rate-override; description "CIR rate"; } leaf pir { type types-qos:queue-pir-rate-override; description "PIR rate"; } } // container rate } // list policer } // container policer-overrides } // list queue-group } // container access container mcast-path-management { description "Enter the mcast-path-management context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress MCAST path management"; } leaf bandwidth-policy { type types-sros:named-item; description "Bandwidth policy associated with the MDA or forwarding plane for ingress multicast path management"; } } // container mcast-path-management container network { description "Enter the network context"; leaf queue-policy { type types-sros:named-item; description "Network policy queue policy"; } list queue-group { key "queue-group-name instance-id"; description "Enter the queue-group list instance"; leaf queue-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Queue group name"; } leaf instance-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint16 { range "1..65535"; } } description "Instance ID"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy for the FP ingress queue group"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics on FP ingress queue group"; } leaf description { type types-sros:description; description "Text description"; } container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf max-rate { type types-qos:queue-pir-rate-override; units "kilobps"; description "Maximum rate override"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-threshold-separation { type types-qos:policer-burst-size-override; units "bytes"; description "Minimum threshold separation override"; } list priority { key "level"; description "Enter the priority list instance"; leaf level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type types-qos:policer-burst-size-override; units "bytes"; description "MBS contribution size override"; } } // list priority } // container priority-mbs-thresholds } // container overrides } // container policer-control-policy container policer-overrides { description "Enter the policer-overrides context"; list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id { range "1..32"; } } description "Policer identifier"; } leaf cbs { type types-qos:policer-burst-size-override; units "bytes"; description "CBS parameter override"; } leaf mbs { type types-qos:policer-burst-size-override; units "bytes"; description "MBS parameter override"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet handled by the policer"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Stat mode for the policer"; } container rate { description "Enter the rate context"; leaf cir { type types-qos:queue-cir-rate-override; description "CIR rate"; } leaf pir { type types-qos:queue-pir-rate-override; description "PIR rate"; } } // container rate } // list policer } // container policer-overrides } // list queue-group list pool { key "name"; description "Enter the pool list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Unique pool name for the FP"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Amber alarm threshold allowed on over-subscription"; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Red alarm threshold allowed on over-subscription"; } leaf slope-policy { type types-sros:named-item; description "Slope policy name"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type int32 { range "0..100"; } units "percent"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS size of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS size of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container network container policy-accounting { description "Enter the policy-accounting context"; leaf policers { type uint32 { range "1..64000"; } description "Number of policer resources for policy accounting"; } leaf classes { type uint32 { range "1000..128000"; } description "Number of accounting classes for the forwarding plane"; } } // container policy-accounting container dist-cpu-protection { description "Enter the dist-cpu-protection context"; leaf dynamic-enforcement-policer-pool { type uint32 { range "1000..32000"; } description "Number of policers reserved as enforcement policers use"; } } // container dist-cpu-protection } // container ingress } // list fp } // list card container cflowd { presence "Enter the 'cflowd' context"; description "Enable the cflowd context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of Cflowd sampling"; } leaf analyze-gre-payload { type boolean; default "false"; description "Perform Cflowd analysis on the inner IP packet within a GRE packet"; } leaf analyze-l2tp-traffic { type boolean; default "false"; description "Analyze the inner IP header of an L2TP packet"; } leaf analyze-v4overv6-traffic { type boolean; default "false"; description "Analyze the inner IPv4 packet within an IPv6 packet"; } leaf cache-size { type uint32 { range "1000..2000000"; } units "flows"; description "Maximum number of active flows in the flow cache table"; } leaf enhanced-distribution { type boolean; default "false"; description "Include ingress port ID in the hashing algorithm used to distribute Cflowd sample traffic"; } leaf export-mode { type enumeration { enum "automatic" { value 1; } enum "manual" { value 2; } } default "automatic"; description "Export mode for flow data"; } leaf inband-collector-export-only { type boolean; default "false"; description "Export the traffic to all collectors only via in-band interfaces"; } leaf overflow { type uint32 { range "1..50"; } units "percent"; default "1"; description "Percentage of entries to remove from Cflowd cache when the maximum number of entries is exceeded"; } leaf template-retransmit { type uint32 { range "10..600"; } units "seconds"; default "600"; description "Time to resend template information"; } leaf use-vrtr-if-index { type boolean; default "false"; description "Export flow data using virtual router interface indexes"; } leaf active-flow-timeout { type uint32 { range "30..36000"; } units "seconds"; default "1800"; description "Maximum time before an active flow is exported"; } leaf inactive-flow-timeout { type uint32 { range "10..600"; } units "seconds"; default "15"; description "Time without matching packet before flow is inactive"; } leaf active-timeout { status obsolete; type uint32 { range "1..600"; } units "minutes"; default "30"; description "Maximum time before an active flow is exported"; } leaf inactive-timeout { status obsolete; type uint32 { range "10..600"; } units "seconds"; default "15"; description "Time before the flow is considered inactive"; } leaf rate { status obsolete; type uint32 { range "1..10000"; } units "packets"; default "1000"; description "Rate at which traffic is sampled and sent for Cflowd analysis"; } list sample-profile { key "profile-id"; max-elements 5; description "Enter the sample-profile list instance"; leaf profile-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..5"; } } description "The unique specifier of this sample-profile"; } leaf sample-rate { type uint32 { range "1..10000"; } default "1000"; description "The cflowd sampling rate for this profile"; } } // list sample-profile list collector { key "ip-address port"; max-elements 8; description "Enter the collector list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address of the remote Cflowd collector host"; } leaf port { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:tcp-udp-match-port { range "1..65535"; } } description "UDP port number on the remote Cflowd collector host to receive the exported Cflowd data"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the cflowd collector"; } leaf autonomous-system-type { type enumeration { enum "origin" { value 1; } enum "peer" { value 2; } } default "origin"; description "Basis of the AS information included in flow data"; } leaf description { type types-sros:description; description "Text description"; } leaf router-instance { type string; default "management"; description "Router or service name"; } leaf template-set { type enumeration { enum "not-applicable" { value 0; } enum "basic" { value 1; } enum "mpls-ip" { value 2; } enum "l2-ip" { value 3; } enum "mpls-transport" { value 4; } } description "Template set for this Cflowd collector"; } leaf version { type types-cflowd:collector-version; sros-ext:immutable; description "Flow data collector version"; } container aggregation { description "Enter the aggregation context"; leaf as-matrix { type boolean; default "false"; description "Base aggregation data on autonomous system (AS) information"; } leaf protocol-port { type boolean; default "false"; description "Aggregate flows based on the IP protocol, source port number, and destination port number"; } leaf source-prefix { type boolean; default "false"; description "Aggregate flows based on the source prefix information"; } leaf destination-prefix { type boolean; default "false"; description "Aggregate data based on the destination prefix information"; } leaf source-destination-prefix { type boolean; default "false"; description "Aggregate data based on the source and destination prefix information"; } leaf raw { type boolean; default "false"; description "Export flow data without aggregation"; } } // container aggregation container export-filter { description "Enter the export-filter context"; container family { description "Enter the family context"; leaf ipv4 { type boolean; default "false"; description "Filter IPv4 flow data from being sent to the associated collector"; } leaf ipv6 { type boolean; default "false"; description "Filter IPv6 flow data from being sent to the associated collector"; } leaf mcast-ipv4 { type boolean; default "false"; description "Filter multicast IPv4 flow data from being sent to the associated collector"; } leaf mcast-ipv6 { type boolean; default "false"; description "Filter multicast IPv6 flow data from being sent to the associated collector"; } leaf l2-ip { type boolean; default "false"; description "Filter Layer 2 IP flow data from being sent to the associated collector"; } leaf mpls { type boolean; default "false"; description "Filter MPLS flow data from being sent to the associated collector"; } } // container family list router { key "router-instance"; description "Add a list entry for router"; leaf router-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Router instance ID"; } } // list router container interface-list { description "Enter the interface-list context"; list router { key "router-name interface-name"; description "Add a list entry for router"; leaf router-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64 { pattern ".{1,32}" { error-message "vRtrName needs to be extended to 64 to support this name"; } } } description "Administrative router name"; } leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name"; } } // list router container service { description "Enter the service context"; list ies-interface { key "service-name interface-name"; description "Add a list entry for ies-interface"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "ies interface name"; } } // list ies-interface list ies-group-interface { key "service-name subscriber-interface-name group-interface-name"; description "Add a list entry for ies-group-interface"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf subscriber-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "IES subscriber-interface name"; } leaf group-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "IES group-interface name"; } } // list ies-group-interface list vprn-interface { key "service-name interface-name"; description "Add a list entry for vprn-interface"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "vprn interface name"; } } // list vprn-interface list vprn-network-interface { key "service-name network-interface-name"; description "Add a list entry for vprn-network-interface"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf network-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "VPRN network-interface name"; } } // list vprn-network-interface list vprn-group-interface { key "service-name subscriber-interface-name group-interface-name"; description "Add a list entry for vprn-group-interface"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf subscriber-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "VPRN subscriber-interface name"; } leaf group-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "vprn group-interface name"; } } // list vprn-group-interface } // container service } // container interface-list } // container export-filter } // list collector } // container cflowd list chassis { key "chassis-class chassis-number"; description "Enter the chassis list instance"; leaf chassis-class { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-chassis:chassis-class; } description "Functional use of the physical chassis"; } leaf chassis-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..100"; } } description "Unique index to identify this physical chassis"; } leaf monitor-filter-door { if-feature nokia-features:sros-filter-door-monitoring; type boolean; default "false"; description "The value of monitor-filter-door specifies whether or not a filter door open or missing condition will be monitored by the system."; } list power-supply { key "power-supply-id"; description "Enter the power-supply list instance"; leaf power-supply-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..31"; } } description "Unique identifier index for a power supply tray in the chassis"; } leaf power-supply-type { type enumeration { enum "none" { value 0; } enum "dc-single" { value 1; } enum "ac-single" { value 2; } enum "ac-multiple" { value 3; } enum "auto" { value 4; } enum "dc-multiple" { value 5; } } default "auto"; description "Power supply type"; } } // list power-supply list peq { key "peq-slot"; description "Enter the peq list instance"; leaf peq-slot { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..31"; } } description "Unique identifier index for a power supply tray in the chassis"; } leaf input-power-mode { type uint32 { range "60|80"; } units "amperes"; description "Input power mode of the PEQ"; } leaf peq-type { type types-system:peq-type; sros-ext:immutable; description "APEQ type"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PEQ"; } } // list peq list power-connection-module { key "pcm-slot"; description "Enter the power-connection-module list instance"; leaf pcm-slot { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..12"; } } description "Unique identifier index for a power control module in the chassis"; } leaf pcm-type { type types-chassis:pcm-type; sros-ext:immutable; description "PCM type"; } } // list power-connection-module list power-module { key "power-module-id"; description "Enter the power-module list instance"; leaf power-module-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..12"; } } description "Unique identifier index for a power shelf in chassis"; } leaf power-module-type { type types-chassis:power-module-type; sros-ext:immutable; description "Power module type"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the power module"; } } // list power-module list power-shelf { if-feature nokia-features:sros-power-shelf; key "power-shelf-id"; description "Enter the power-shelf list instance"; leaf power-shelf-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2"; } } description "Unique identifier index for a power shelf in chassis"; } leaf power-shelf-type { type types-chassis:power-shelf-type; sros-ext:immutable; description "Power shelf type"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the power shelf"; } leaf description { type types-sros:description; description "Text description"; } list power-module { key "power-module-id"; description "Enter the power-module list instance"; leaf power-module-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..12"; } } description "Unique identifier index for a power shelf in chassis"; } leaf power-module-type { type types-chassis:power-module-type; sros-ext:immutable; description "Power module type"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the power module"; } } // list power-module } // list power-shelf } // list chassis container connection-profile { description "Enter the connection-profile context"; list vlan { key "connection-profile-id"; description "Enter the vlan list instance"; leaf connection-profile-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8000"; } } description "Identifier of this connection profile"; } leaf description { type types-sros:description; description "Text description"; } list qtag-range { key "start"; description "Enter the qtag-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..4094"; } } description "Lower bound of VLAN range for connection profile"; } leaf end { type int32 { range "1..4094"; } sros-ext:immutable; description "Upper bound of VLAN range for connection profile"; } } // list qtag-range } // list vlan } // container connection-profile list esa { key "esa-id"; description "Enter the esa list instance"; leaf esa-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-esa:esa-id; } description "ESA ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ESA"; } leaf description { type types-sros:description; description "Text description"; } list host-port { key "host-port"; max-elements 2; description "Add a list entry for host-port"; leaf host-port { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port; } description "Ethernet port associated with the ESA"; } } // list host-port list vm { key "vm-id"; description "Enter the vm list instance"; leaf vm-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-esa:vm-id; } description "VM ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ESA-VM instance"; } leaf description { type types-sros:description; description "Text description"; } leaf host-port { type types-sros:port; sros-ext:immutable; description "Ethernet port associated with the ESA-VM instance"; } leaf vm-type { type enumeration { enum "aa" { value 1; } enum "bb" { value 2; } enum "tunnel" { value 3; } } sros-ext:immutable; description "ESA-VM type"; } leaf cores { type uint32 { range "0..128"; } default "0"; description "Number of CPU physical cores allocated to the ESA-VM"; } leaf memory { type uint32 { range "0..256"; } units "gigabytes"; default "0"; description "Amount of memory allocated to the ESA-VM"; } } // list vm } // list esa container eth-cfm { description "Enter the eth-cfm context"; list domain { key "md-admin-name"; description "Enter the domain list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Unique domain name"; } leaf level { type types-eth-cfm:mp-level; sros-ext:immutable; description "Maintenance Domain Level (MD Level)"; } leaf md-index { type uint32 { range "1..max"; } sros-ext:immutable; description "The index of the Maintenance Domain (MD)"; } choice md-name { case dns { leaf dns { type string { length "1..43"; } sros-ext:immutable; description "Domain name like text string derived from a DNS name"; } } case mac { leaf mac { type string { length "13..23"; pattern "[0-9a-fA-F]{1,2}(:[0-9a-fA-F]{1,2}){5}-[0-9]{1,5}"; } sros-ext:immutable; description "Maintenance domain MAC name"; } } case name { leaf name { type string { length "1..43"; } sros-ext:immutable; description "Maintenance domain name as an ASCII string"; } } case format { leaf format { type enumeration { enum "none" { value 0; } } sros-ext:immutable; description "Maintenance domain name not to be provided"; } } } list association { key "ma-admin-name"; description "Enter the association list instance"; leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Domain association name"; } leaf ma-index { type uint32 { range "1..max"; } sros-ext:immutable; description "Maintenance Association (MA) table index"; } leaf ccm-interval { type types-eth-cfm:ccm-interval-type; description "CCM transmission interval for all MEPs in the association"; } leaf auto-mep-discovery { type boolean; default "false"; description "Enable the ability to auto-discover remote MEPs in the network"; } leaf facility-id-permission { type types-eth-cfm:facility-id-permission-type; default "none"; description "Sender ID TLV information for facility base MEPs"; } choice ma-name { description "The Maintenance Domain Association name It is the part of the Maintenance Association Identifier which is unique within the Maintenance Domain Name and is appended to the Maintenance Domain Name to form the Maintenance Association Identifier (MAID)."; case icc-based { leaf icc-based { type string { length "8..13"; } sros-ext:immutable; description "Maintenance Association name in ICC-based format"; } } case integer { leaf integer { type uint32 { range "0..65535"; } sros-ext:immutable; description "Maintenance Association name in integer format"; } } case string { leaf string { type string { length "1..45"; } sros-ext:immutable; description "Maintenance Association name in raw ASCII string format"; } } case vid { leaf vid { type uint32 { range "0..4094"; } sros-ext:immutable; description "Primary VLAN ID for the Maintenance Association name"; } } case vpn-id { leaf vpn-id { type string { length "0..15"; pattern "[0-9A-F]{6}(:[0-9A-F]{8})"; } sros-ext:immutable; description "VPN ID for the Maintenance Association name"; } } } container ccm-hold-time { description "Enter the ccm-hold-time context"; leaf down { type uint32 { range "1..1000"; } units "centiseconds"; description "Additional time before a MEP declares a fault, in CCM timeout conditions"; } } // container ccm-hold-time list bridge-identifier { key "bridge-name"; max-elements 1; description "Enter the bridge-identifier list instance"; leaf bridge-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Bridge name for this association"; } leaf vlan { type int32 { range "1..4094"; } description "VLAN ID for the default domain index"; } leaf mhf-creation { type types-eth-cfm:tmnx-mhf-creation-type; default "none"; description "MIP method of creation"; } leaf id-permission { type types-eth-cfm:facility-id-permission-type; default "none"; description "Strategy for the inclusion of Sender ID TLV information"; } leaf mip-ltr-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of the Linktrace Response Message (ETH-LTR) from a MIP"; } } // list bridge-identifier list remote-mep { key "mep-id"; description "Enter the remote-mep list instance"; leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "Remote MEP ID"; } leaf remote-mac { type types-sros:mac-unicast-address-no-zero; description "Remote MAC Address for transmitting CFM packets to remote MEPs"; } } // list remote-mep } // list association } // list domain } // container eth-cfm container filter { description "Enter the filter context"; list redirect-policy { key "redirect-policy-name"; description "Enter the redirect-policy list instance"; leaf redirect-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Redirect policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf router-instance { type string; description "Routing context to use for route lookup"; } leaf sticky-dest { type types-filter:filter-sticky-dest; units "seconds"; description "Time required by system before applying the current best destination as active destination"; } leaf notify-dest-change { type boolean; default "false"; description "The value of the object indicates whether to send tFilterRPActiveDestChangeEvent notification for this redirect policy active destination changes."; } list destination { key "destination-address"; description "Enter the destination list instance"; leaf destination-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address and type of destination"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the destination"; } leaf description { type types-sros:description; description "Text description"; } leaf priority { type uint32 { range "1..255"; } default "100"; description "Priority for this destination"; } container ping-test { presence "Enter the 'ping-test' context"; description "Enable the ping-test context"; leaf source-address { type types-sros:ip-address; description "Source address to use in the IP packet of the ping test"; } leaf interval { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Time between consecutive requests which are sent to the far end host"; } leaf timeout { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Time required to receive a response from the far end host"; } leaf drop-count { type uint32 { range "1..60"; } default "3"; description "Number of consecutive requests that fail before destination is declared unreachable"; } leaf hold-down { type uint32 { range "0..86400"; } units "seconds"; default "0"; description "Time for the system to be held down if this test has marked it unreachable"; } } // container ping-test container unicast-rt-test { presence "Enter the 'unicast-rt-test' context"; description "Enable the unicast-rt-test context"; } // container unicast-rt-test } // list destination } // list redirect-policy list redirect-policy-binding { key "binding-name"; max-elements 16; description "Enter the redirect-policy-binding list instance"; leaf binding-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Binding name"; } leaf binding-operator { type types-filter:filter-binding-operator; default "and"; description "The value of the this object indicates the logical operator to use when combining result of different destinations' tests."; } list redirect-policy { key "redirect-policy-name"; description "Enter the redirect-policy list instance"; leaf redirect-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "The redirect-policy identifier."; } list destination { key "destination-address"; min-elements 1; description "Add a list entry for destination"; leaf destination-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address of redirect policy destination to binding"; } } // list destination } // list redirect-policy } // list redirect-policy-binding list log { key "log-id"; description "Enter the log list instance"; leaf log-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-log-id; } description "Filter log identifier"; } leaf description { type types-sros:description-or-empty; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of filter logging"; } container destination { description "Enter the destination context"; choice destination { default "memory"; case memory { container memory { description "Enter the memory context"; leaf max-entries { type uint32 { range "1..50000"; } default "1000"; description "Maximum number of memory entries that the log can store"; } leaf stop-on-full { type boolean; default "false"; description "Stop logging when maximum number of memory entries is reached or wrap-around is used"; } } // container memory } case syslog { container syslog { description "Enter the syslog context"; leaf name { type types-log:log-syslog-name; description "Specifies the syslog Id to be used as destination."; } leaf syslog-id { status obsolete; type types-log:log-syslog-name; description "ID of the Syslog server definition for filter logs"; } container summary { description "Enter the summary context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the summarization of filter log entries"; } leaf summary-crit { type types-filter:filter-log-summary-criterion; default "src-addr"; description "Summary for filter log entries"; } } // container summary } // container syslog } } } // container destination } // list log container match-list { description "Enter the match-list context"; list protocol-list { key "protocol-list-name"; max-elements 512; description "Enter the protocol-list list instance"; leaf protocol-list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Protocol list name"; } leaf description { type types-sros:description; description "Text description"; } list protocol { key "protocol-id"; max-elements 32; description "Add a list entry for protocol"; leaf protocol-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-protocol; } description "IP protocol identifier"; } } // list protocol } // list protocol-list list ip-prefix-list { key "prefix-list-name"; description "Enter the ip-prefix-list list instance"; leaf prefix-list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Prefix list name that is used for this prefix list"; } leaf description { type types-sros:description; description "Text description"; } container apply-path { description "Enter the apply-path context"; list bgp-peers { key "criterion-index"; description "Enter the bgp-peers list instance"; leaf criterion-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "Value of the enumerating BGP peers autogeneration configuration within list"; } leaf group { type types-sros:regular-expression-not-all-spaces; sros-ext:immutable; description "Regular expression to match against the base router BGP instance group configuration"; } leaf neighbor { type types-sros:regular-expression-not-all-spaces; sros-ext:immutable; description "Regular expression to match against the base router BGP instance neighbor configuration"; } leaf router-instance { type string; sros-ext:immutable; default "Base"; description "Target routing instance"; } } // list bgp-peers } // container apply-path list prefix { key "ip-prefix"; max-elements 8192; description "Add a list entry for prefix"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-prefix; } description "IPv4 prefix to be added to the prefix list"; } } // list prefix list prefix-exclude { key "ip-prefix"; max-elements 512; description "Add a list entry for prefix-exclude"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-prefix; } description "IPv4 prefix to be added to the prefix list"; } } // list prefix-exclude } // list ip-prefix-list list ipv6-prefix-list { key "prefix-list-name"; description "Enter the ipv6-prefix-list list instance"; leaf prefix-list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Prefix list name that is used for this prefix list"; } leaf description { type types-sros:description; description "Text description"; } container apply-path { description "Enter the apply-path context"; list bgp-peers { key "criterion-index"; description "Enter the bgp-peers list instance"; leaf criterion-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "Value of the enumerating BGP peers autogeneration configuration within list"; } leaf group { type types-sros:regular-expression-not-all-spaces; sros-ext:immutable; description "Regular expression to match against the base router BGP instance group configuration"; } leaf neighbor { type types-sros:regular-expression-not-all-spaces; sros-ext:immutable; description "Regular expression to match against the base router BGP instance neighbor configuration"; } leaf router-instance { type string; sros-ext:immutable; default "Base"; description "Target routing instance"; } } // list bgp-peers } // container apply-path list prefix { key "ipv6-prefix"; max-elements 8192; description "Add a list entry for prefix"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "Add IPv6 prefix to the list."; } } // list prefix list prefix-exclude { key "ipv6-prefix"; max-elements 512; description "Add a list entry for prefix-exclude"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "Add IPv6 prefix to the list."; } } // list prefix-exclude } // list ipv6-prefix-list list port-list { key "port-list-name"; max-elements 1024; description "Enter the port-list list instance"; leaf port-list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Port list name"; } leaf description { type types-sros:description; description "Text description"; } list port { key "value"; description "Add a list entry for port"; leaf value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "0..65535"; } } description "Port value"; } } // list port list range { key "start end"; description "Add a list entry for range"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "0..65534"; } } description "Highest value for TCP/UDP port range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..65535"; } } description "Highest value for TCP/UDP port range"; } } // list range } // list port-list } // container match-list list ip-filter { key "filter-name"; description "Enter the ip-filter list instance"; leaf filter-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "Filter name"; } leaf default-action { type types-filter:filter-default-action; default "drop"; description "Action for packets that do not match any entry"; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-filter:filter-scope; default "template"; description "Scope of this filter definition"; } leaf type { type enumeration { enum "normal" { value 0; } enum "src-mac" { value 1; } enum "packet-length" { value 2; } enum "destination-class" { value 3; } } default "normal"; description "Set of match criteria for the filter policy"; } leaf chain-to-system-filter { type boolean; default "false"; description "Chain filter policy to the active IPvX system filter policy"; } leaf filter-id { type types-filter:filter-id; sros-ext:immutable; description "IP filter ID"; } container subscriber-mgmt { description "Enter the subscriber-mgmt context"; container host-specific-entry { description "Enter the host-specific-entry context"; container filter-rule { description "Enter the filter-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; description "Lower bound of range for subscriber host filter-rule entries from RADIUS/Diameter"; } leaf end { type types-filter:entry-id; description "Upper bound of range for filter-rule entries from RADIUS/Diameter"; } } // container range } // container filter-rule container credit-control { description "Enter the credit-control context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; description "Lower bound of range for entries from Credit Control"; } leaf end { type types-filter:entry-id; description "Upper bound of range for entries from Credit Control"; } } // container range } // container credit-control container watermark { description "Enter the watermark context"; leaf low { type int32 { range "0..100"; } default "90"; description "Low watermark for host-specific entries, to clear a table full alarm"; } leaf high { type int32 { range "0..100"; } default "95"; description "High watermark for host-specific entries, to raise a table full alarm"; } } // container watermark } // container host-specific-entry container shared-entry { description "Enter the shared-entry context"; container filter-rule { description "Enter the filter-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; description "Lower bound of range for shared filter-rules from RADIUS"; } leaf end { type types-filter:entry-id; description "Upper bound of range for shared-filter rules from RADIUS"; } } // container range } // container filter-rule container pcc-rule { description "Enter the pcc-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; description "Lower bound of range for pcc-rule filter entries from Diameter"; } leaf end { type types-filter:entry-id; description "Upper bound of range for pcc-rule filter entries from Diameter"; } } // container range } // container pcc-rule container watermark { presence "Enter the 'watermark' context"; description "Enable the watermark context"; leaf low { type int32 { range "0..7999"; } description "Limit of RADIUS or Diameter shared filters before clearing high watermark notification"; } leaf high { type int32 { range "1..8000"; } description "Limit of RADIUS shared filters before generating high watermark notification"; } } // container watermark } // container shared-entry } // container subscriber-mgmt list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:entry-id; } description "ID for a match criteria and the corresponding action"; } leaf description { type types-sros:description; description "Text description"; } leaf pbr-down-action-override { type types-filter:filter-pbr-down-action-ovr; description "Action when PBR or PBF target for this entry is not available"; } leaf sticky-dest { type types-filter:filter-sticky-dest; units "seconds"; description "Time before action with available PBR or PBF destination and highest priority"; } leaf log { type types-filter:filter-log-id; description "Log that is used for packets matching this entry"; } leaf collect-stats { type boolean; default "false"; description "Enable/disable statistics collection"; } leaf egress-pbr { type types-filter:filter-egress-pbr; sros-ext:immutable; description "PBR that has an effect when this filter is applied on egress"; } leaf filter-sample { type boolean; default "false"; description "Sample matching traffic if IP interface is set to cflowd ACL mode"; } leaf interface-sample { type boolean; default "true"; description "Sample matching traffic if IP interface is set to cflowd interface mode"; } leaf sample-profile { type uint32 { range "1..5"; } description "Cflowd sample profile ID for matching packets"; } container match { description "Enter the match context"; leaf dscp { type types-qos:dscp-name; description "DSCP used as an IP filter match criterion"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } enum "first-only" { value 4; } enum "non-first-only" { value 5; } } description "Match criterion for fragmented packets"; } leaf multiple-option { type boolean; description "Match based on presence of multiple options in header"; } leaf option-present { type boolean; description "Match on the presence of any IP option in the packet"; } leaf src-route-option { type boolean; description "Match based on presence of source route option"; } leaf destination-class { type types-sros:class-index; description "Destination class as a match criterion"; } choice match-protocol-choice { case protocol { leaf protocol { type types-sros:match-ip-protocol; description "IP protocol identifier as a match criterion"; } } case protocol-list { leaf protocol-list { type types-sros:named-item; description "Name of the protocol list as a match criterion"; } } } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container dst-port } case port { container port { description "Enter the port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container port } } container ip-option { presence "Enter the 'ip-option' context"; description "Enable the ip-option context"; leaf type { type types-filter:filter-match-ip-option; description "Specific IP option to match"; } leaf mask { type types-filter:filter-match-ip-option { range "1..255"; } default "255"; description "Mask that is ANDed with ip-option value in the packet header"; } } // container ip-option container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "IP address to match"; } leaf mask { type types-sros:ipv4-address; description "Mask as an AND to the IP address"; } } case ip-prefix-list { leaf ip-prefix-list { type types-sros:named-item; description "IP prefix list as match criterion for IP address"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "IP address to match"; } leaf mask { type types-sros:ipv4-address; description "Mask as an AND to the IP address"; } } case ip-prefix-list { leaf ip-prefix-list { type types-sros:named-item; description "IP prefix list as match criterion for IP address"; } } } } // container dst-ip container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container src-mac container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code value to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type value to match"; } } } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Match TCP ACK as per value of the ACK TCP flag bit"; } leaf syn { type boolean; description "Match TCP SYN as per value of the SYN TCP flag bit"; } leaf fin { type boolean; description "Match TCP FIN as per value of the FIN TCP flag bit"; } leaf rst { type boolean; description "Match TCP RST as per value of the RST TCP flag bit"; } leaf psh { type boolean; description "Match TCP PSH as per value of the PSH TCP flag bit"; } leaf urg { type boolean; description "Match TCP URG as per value of the URG TCP flag bit"; } leaf ece { type boolean; description "Match TCP ECE as per value of the ECE TCP flag bit"; } leaf cwr { type boolean; description "Match TCP CWR as per value of the CWR TCP flag bit"; } leaf ns { type boolean; description "Match TCP NS as per value of the NS TCP flag bit"; } } // container tcp-flags container packet-length { presence "Enter the 'packet-length' context"; description "Enable the packet-length context"; choice packet-length { case eq { leaf eq { type types-filter:pkt-len-or-payload-len-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:pkt-len-or-payload-len-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:pkt-len-or-payload-len-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:pkt-len-or-payload-len-gt-value; description "Lower bound of the length range"; } leaf end { type types-filter:pkt-len-or-payload-len-lt-value; description "Upper bound of the length range"; } } // container range } } } // container packet-length } // container match container action { presence "Enter the 'action' context"; description "Enable the action context"; leaf fc { type types-sros:fc-name; description "Class name to be forwarded for matching packets"; } leaf l2-aware-nat-bypass { type boolean; default "false"; description "Divert traffic from an L2-Aware NAT subscriber"; } choice action { case ignore-match { leaf ignore-match { type empty; description "Ignore match criteria for the entry"; } } case drop { leaf drop { type empty; description "Drop a packet matching this entry"; } } case forward { container forward { description "Enter the forward context"; choice forward-action { case bonding-connection { leaf bonding-connection { type types-submgt:bonding-connection-index; description "Connection ID over which packet is forwarded"; } } case esi-l2 { container esi-l2 { presence "Enter the 'esi-l2' context"; description "Enable the esi-l2 context"; leaf esi-value { type types-services:ethernet-segment-id { pattern "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})"; } description "ESI of the first ESI-identified appliance"; } leaf vpls { type types-services:service-name; description "VPLS service name"; } } // container esi-l2 } case esi-l3 { container esi-l3 { presence "Enter the 'esi-l3' context"; description "Enable the esi-l3 context"; leaf sf-ip { type types-sros:ipv4-address; sros-ext:immutable; description "IP address of the service function to forward traffic"; } leaf esi-value { type types-services:ethernet-segment-id { pattern "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})"; } sros-ext:immutable; description "ESI of the first ESI-identified appliance"; } leaf vas-interface { type types-sros:interface-name; sros-ext:immutable; description "Egress R-VPLS IP interface name"; } leaf vprn { type types-services:service-name; sros-ext:immutable; description "VPRN service name"; } } // container esi-l3 } case router { leaf router-instance { type string; sros-ext:immutable; description "Specifies the routing context used for route lookup."; } } case next-hop { container next-hop { presence "Enter the 'next-hop' context"; description "Enable the next-hop context"; choice next-hop { case nh-ip { container nh-ip { presence "Enter the 'nh-ip' context"; description "Enable the nh-ip context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf address { type types-sros:ipv4-address; sros-ext:immutable; description "IPv4 address of next hop to forward matching packets"; } } // container nh-ip } case nh-interface { leaf interface-name { type types-sros:named-item; description "IP interface name that forwards matching packets"; } } case nh-ip-vrf { container nh-ip-vrf { presence "Enter the 'nh-ip-vrf' context"; description "Enable the nh-ip-vrf context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf router-instance { type string; sros-ext:immutable; description "Routing context for route lookup for forwarding packets"; } leaf address { type types-sros:ipv4-address; sros-ext:immutable; description "IPv4 address of next hop to forward matching packets"; } } // container nh-ip-vrf } } } // container next-hop } case lsp { leaf lsp { type types-sros:named-item-64; description "LSP that is specified to forward a packet matching this entry"; } } case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type types-services:service-name; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type types-services:service-name; description "VPLS associated with the SAP"; } leaf sap-id { type types-sros:sap; description "VPLS Ethernet SAP ID used to forward matching packets"; } } // container sap } case redirect-policy { leaf redirect-policy { type types-sros:named-item; sros-ext:immutable; description "Next hop or forward next hop router that forwards a packet that matches this entry"; } } case vprn-target { container vprn-target { presence "Enter the 'vprn-target' context"; description "Enable the vprn-target context"; leaf bgp-nh { type types-sros:ipv4-address { pattern "((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))| ((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){2}(([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){1}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1})| ((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){1}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1}(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){2})| (([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1}(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})"; } description "Target BGP next hop IP address"; } leaf vprn { type types-services:service-name; description "Routing context used for route lookup"; } leaf lsp { type types-sros:named-item-64; description "LSP that is specified to forward a packet matching this entry"; } leaf adv-prefix { type types-sros:ipv4-prefix; description "Advertised IP prefix for target destination"; } } // container vprn-target } case gre-tunnel { leaf gre-tunnel { type types-sros:named-item; description "GRE tunnel template ID that sets the location where an encapsulated matching packet is transported"; } } case mpls-policy { container mpls-policy { presence "Enter the 'mpls-policy' context"; description "Enable the mpls-policy context"; leaf endpoint { type types-sros:ipv4-unicast-address; description "The MPLS forwarding policy endpoint IPv4 address"; } } // container mpls-policy } case srte-policy { container srte-policy { presence "Enter the 'srte-policy' context"; description "Enable the srte-policy context"; leaf endpoint { type types-sros:ipv4-unicast-or-zero-address; description "The SR-TE policy endpoint IPv4 address"; } leaf color { type int64 { range "0..4294967295"; } description "The SR-TE policy color value"; } } // container srte-policy } } } // container forward } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type union { type enumeration { enum "from-cpf" { value 1; } } type types-sros:http-redirect-url; } sros-ext:immutable; description "URL that is used for redirecting"; } leaf allow-override { type boolean; default "false"; description "Override http-redirect by a RADIUS VSA"; } } // container http-redirect } case nat { container nat { presence "Enter the 'nat' context"; description "Enable the nat context"; leaf nat-policy { type types-sros:external-named-item; sros-ext:isa-auto-clear-on-modify; description "NAT policy name when action is NAT"; } } // container nat } case reassemble { leaf reassemble { type empty; description "Forward matching packets to reassembly function"; } } case gtp-local-breakout { leaf gtp-local-breakout { type empty; description "Break out matching traffic locally from a GTP tunnel for GTP-subscriber-hosts, or forward for other entities"; } } case tcp-mss-adjust { leaf tcp-mss-adjust { type empty; description "Adjust MSS option of TCP matching packets to configured value of tcp-mss in router interface context"; } } case accept { leaf accept { type empty; description "Accept regular routing to forward a packet that matches this entry"; } } } container remark { presence "Enter the 'remark' context"; description "Enable the remark context"; leaf dscp { type types-qos:dscp-name; description "Destination SAP"; } } // container remark container rate-limit { presence "Enter the 'rate-limit' context"; description "Enable the rate-limit context"; leaf pir { type types-filter:rate-limit; units "kilobps"; description "Peak information rate"; } choice criterion-1 { case ttl { container ttl { presence "Enter the 'ttl' context"; description "Enable the ttl context"; choice ttl { case eq { leaf eq { type types-filter:ttl-or-hop-limit-value; description "Value to compare against 'equal' condition for entry match criteria"; } } case lt { leaf lt { type types-filter:ttl-or-hop-limit-lt-value; description "Value to compare against 'less than' condition for entry match criteria"; } } case gt { leaf gt { type types-filter:ttl-or-hop-limit-gt-value; description "Value to compare against 'greater than' condition for entry match criteria"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:ttl-or-hop-limit-gt-value; description "Lower bound value"; } leaf end { type types-filter:ttl-or-hop-limit-lt-value; description "Upper bound value"; } } // container range } } } // container ttl } case packet-length { container packet-length { presence "Enter the 'packet-length' context"; description "Enable the packet-length context"; choice packet-length { case eq { leaf eq { type types-filter:pkt-len-or-payload-len-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:pkt-len-or-payload-len-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:pkt-len-or-payload-len-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:pkt-len-or-payload-len-gt-value; description "Lower bound of the length range"; } leaf end { type types-filter:pkt-len-or-payload-len-lt-value; description "Upper bound of the length range"; } } // container range } } } // container packet-length } } container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } description "Offset value for the pattern expression"; } } // container pattern } // container rate-limit container drop-when { presence "Enter the 'drop-when' context"; description "Enable the drop-when context"; choice criterion-1 { case ttl { container ttl { presence "Enter the 'ttl' context"; description "Enable the ttl context"; choice ttl { case eq { leaf eq { type types-filter:ttl-or-hop-limit-value; description "Value to compare against 'equal' condition for entry match criteria"; } } case lt { leaf lt { type types-filter:ttl-or-hop-limit-lt-value; description "Value to compare against 'less than' condition for entry match criteria"; } } case gt { leaf gt { type types-filter:ttl-or-hop-limit-gt-value; description "Value to compare against 'greater than' condition for entry match criteria"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:ttl-or-hop-limit-gt-value; description "Lower bound value"; } leaf end { type types-filter:ttl-or-hop-limit-lt-value; description "Upper bound value"; } } // container range } } } // container ttl } case packet-length { container packet-length { presence "Enter the 'packet-length' context"; description "Enable the packet-length context"; choice packet-length { case eq { leaf eq { type types-filter:pkt-len-or-payload-len-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:pkt-len-or-payload-len-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:pkt-len-or-payload-len-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:pkt-len-or-payload-len-gt-value; description "Lower bound of the length range"; } leaf end { type types-filter:pkt-len-or-payload-len-lt-value; description "Upper bound of the length range"; } } // container range } } } // container packet-length } } choice criterion-2 { case extracted-traffic { leaf extracted-traffic { type empty; description "Drop traffic extracted to CPM"; } } } container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } description "Offset value for the pattern expression"; } } // container pattern } // container drop-when container accept-when { presence "Enter the 'accept-when' context"; description "Enable the accept-when context"; container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } description "Offset value for the pattern expression"; } } // container pattern } // container accept-when container secondary { presence "Enter the 'secondary' context"; description "Enable the secondary context"; choice action { case forward { container forward { description "Enter the forward context"; choice forward-action { case next-hop { container next-hop { presence "Enter the 'next-hop' context"; description "Enable the next-hop context"; choice next-hop { case nh-ip-vrf { container nh-ip-vrf { presence "Enter the 'nh-ip-vrf' context"; description "Enable the nh-ip-vrf context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf router-instance { type string; sros-ext:immutable; description "Routing context for route lookup for forwarding packets"; } leaf address { type types-sros:ipv4-address; sros-ext:immutable; description "IPv4 address of next hop to forward matching packets"; } } // container nh-ip-vrf } } } // container next-hop } case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type types-services:service-name; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; sros-ext:immutable; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type types-services:service-name; description "VPLS the sdp-bind-id belongs to"; } leaf sap-id { type types-sros:sap; sros-ext:immutable; description "A packet matching the entry will be forwarded using the specified SAP"; } } // container sap } } } // container forward } } container remark { presence "Enter the 'remark' context"; description "Enable the remark context"; leaf dscp { type types-qos:dscp-name; description "Destination SAP"; } } // container remark } // container secondary } // container action } // list entry container embed { description "Enter the embed context"; list filter { key "name offset"; description "Enter the filter list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "ID of the filter to insert"; } leaf offset { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:embed-offset { range "0..2097150"; } } description "Offset of the inserted entries"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } } // list filter list flowspec { key "offset"; description "Enter the flowspec list instance"; leaf offset { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:embed-offset; } description "Offset of the inserted entries"; } leaf group { type uint32 { range "0..16383"; } sros-ext:immutable; description "Interface group ID for an external configured set of flowspec rules"; } leaf router-instance { type string; sros-ext:immutable; description "Virtual router for an external configured set of flowspec rules"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } } // list flowspec list openflow { key "of-switch offset"; description "Enter the openflow list instance"; leaf of-switch { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Referenced Hybrid OpenFlow Switch (OFS) name"; } leaf offset { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:embed-offset { range "0..2097150"; } } description "Offset of the inserted entries"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } choice context { default "grt"; description "Specifies the context in which the openflow embedding is inserted into filter. When no context is present, this object is set to grt value."; case grt { leaf grt { type empty; sros-ext:immutable; description "Global routing context"; } } case system { leaf system { type empty; sros-ext:immutable; description "System context"; } } case vprn { leaf vprn { type types-services:service-name; sros-ext:immutable; description "VPRN context"; } } case vpls { leaf vpls { type types-services:service-name; sros-ext:immutable; description "VPLS context"; } leaf sap { type types-sros:sap; sros-ext:immutable; description "SAP context"; } } } } // list openflow } // container embed } // list ip-filter list ipv6-filter { key "filter-name"; description "Enter the ipv6-filter list instance"; leaf filter-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "Filter name"; } leaf default-action { type types-filter:filter-default-action; default "drop"; description "Action for packets that do not match any entry"; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-filter:filter-scope; default "template"; description "Scope of this filter definition"; } leaf type { type enumeration { enum "normal" { value 0; } enum "src-mac" { value 1; } enum "packet-length" { value 2; } enum "destination-class" { value 3; } } default "normal"; description "Set of match criteria for the filter policy"; } leaf chain-to-system-filter { type boolean; default "false"; description "Chain filter policy to the active IPvX system filter policy"; } leaf filter-id { type types-filter:filter-id; sros-ext:immutable; description "IPv6 filter identifier"; } container subscriber-mgmt { description "Enter the subscriber-mgmt context"; container host-specific-entry { description "Enter the host-specific-entry context"; container filter-rule { description "Enter the filter-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; description "Lower bound of range for subscriber host filter-rule entries from RADIUS/Diameter"; } leaf end { type types-filter:entry-id; description "Upper bound of range for filter-rule entries from RADIUS/Diameter"; } } // container range } // container filter-rule container credit-control { description "Enter the credit-control context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; description "Lower bound of range for entries from Credit Control"; } leaf end { type types-filter:entry-id; description "Upper bound of range for entries from Credit Control"; } } // container range } // container credit-control container watermark { description "Enter the watermark context"; leaf low { type int32 { range "0..100"; } default "90"; description "Low watermark for host-specific entries, to clear a table full alarm"; } leaf high { type int32 { range "0..100"; } default "95"; description "High watermark for host-specific entries, to raise a table full alarm"; } } // container watermark } // container host-specific-entry container shared-entry { description "Enter the shared-entry context"; container filter-rule { description "Enter the filter-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; description "Lower bound of range for shared filter-rules from RADIUS"; } leaf end { type types-filter:entry-id; description "Upper bound of range for shared-filter rules from RADIUS"; } } // container range } // container filter-rule container pcc-rule { description "Enter the pcc-rule context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:entry-id; description "Lower bound of range for pcc-rule filter entries from Diameter"; } leaf end { type types-filter:entry-id; description "Upper bound of range for pcc-rule filter entries from Diameter"; } } // container range } // container pcc-rule container watermark { presence "Enter the 'watermark' context"; description "Enable the watermark context"; leaf low { type int32 { range "0..7999"; } description "Limit of RADIUS or Diameter shared filters before clearing high watermark notification"; } leaf high { type int32 { range "1..8000"; } description "Limit of RADIUS shared filters before generating high watermark notification"; } } // container watermark } // container shared-entry } // container subscriber-mgmt list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:entry-id; } description "ID for a match criteria and the corresponding action"; } leaf description { type types-sros:description; description "Text description"; } leaf pbr-down-action-override { type types-filter:filter-pbr-down-action-ovr; description "Action when PBR or PBF target for this entry is not available"; } leaf sticky-dest { type types-filter:filter-sticky-dest; units "seconds"; description "Time before action with available PBR or PBF destination and highest priority"; } leaf log { type types-filter:filter-log-id; description "Log that is used for packets matching this entry"; } leaf collect-stats { type boolean; default "false"; description "Enable/disable statistics collection"; } leaf egress-pbr { type types-filter:filter-egress-pbr; sros-ext:immutable; description "PBR that has an effect when this filter is applied on egress"; } leaf filter-sample { type boolean; default "false"; description "Sample matching traffic if IP interface is set to cflowd ACL mode"; } leaf interface-sample { type boolean; default "true"; description "Sample matching traffic if IP interface is set to cflowd interface mode"; } leaf sample-profile { type uint32 { range "1..5"; } description "Cflowd sample profile ID for matching packets"; } container match { description "Enter the match context"; leaf dscp { type types-qos:dscp-name; description "DSCP used as an IP filter match criterion"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } enum "first-only" { value 4; } enum "non-first-only" { value 5; } } description "Match criterion for fragmented packages"; } leaf destination-class { type types-sros:class-index; description "Destination class as a match criterion"; } choice match-next-header-choice { case next-header { leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } } case next-header-list { leaf next-header-list { type types-sros:named-item; description "Name of the protocol list as a match criterion"; } } } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container dst-port } case port { container port { description "Enter the port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container port } } container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "IP prefix list as match criterion for IP address"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "IP prefix list as match criterion for IP address"; } } } } // container dst-ip container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container src-mac container extension-header { description "Enter the extension-header context"; leaf ah { type boolean; description "Match a packet as per the existence of an AH Extension Header"; } leaf esp { type boolean; description "Match a packet as per the existence of an Encapsulation security payload extension header"; } leaf hop-by-hop { type boolean; description "Match on Hop-by-Hop Options Extension Header existence"; } leaf routing-type0 { type boolean; description "Match a packet as per the existence of a routing Extension Header"; } } // container extension-header container flow-label { presence "Enter the 'flow-label' context"; description "Enable the flow-label context"; leaf value { type types-filter:filter-match-flow-label; description "Flow label as match criterion"; } leaf mask { type types-filter:filter-match-flow-label { range "1..1048575"; } default "1048575"; description "Flow label mask for this policy IP filter entry"; } } // container flow-label container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv6-match-icmp-codes; description "ICMPv6 code value to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv6-match-icmp-types; description "ICMPv6 type value to match"; } } } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Match TCP ACK as per value of the ACK TCP flag bit"; } leaf syn { type boolean; description "Match TCP SYN as per value of the SYN TCP flag bit"; } leaf fin { type boolean; description "Match TCP FIN as per value of the FIN TCP flag bit"; } leaf rst { type boolean; description "Match TCP RST as per value of the RST TCP flag bit"; } leaf psh { type boolean; description "Match TCP PSH as per value of the PSH TCP flag bit"; } leaf urg { type boolean; description "Match TCP URG as per value of the URG TCP flag bit"; } leaf ece { type boolean; description "Match TCP ECE as per value of the ECE TCP flag bit"; } leaf cwr { type boolean; description "Match TCP CWR as per value of the CWR TCP flag bit"; } leaf ns { type boolean; description "Match TCP NS as per value of the NS TCP flag bit"; } } // container tcp-flags container packet-length { presence "Enter the 'packet-length' context"; description "Enable the packet-length context"; choice packet-length { case eq { leaf eq { type types-filter:ipv6-match-packet-length-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:ipv6-match-packet-length-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:ipv6-match-packet-length-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:ipv6-match-packet-length-gt-value; description "Lower bound of packet length range as match criterion"; } leaf end { type types-filter:ipv6-match-packet-length-lt-value; description "Upper bound of packet length range as match criterion"; } } // container range } } } // container packet-length } // container match container action { presence "Enter the 'action' context"; description "Enable the action context"; leaf fc { type types-sros:fc-name; description "Class name to be forwarded for matching packets"; } choice action { case ignore-match { leaf ignore-match { type empty; description "Ignore match criteria for the entry"; } } case drop { leaf drop { type empty; description "Drop a packet matching this entry"; } } case forward { container forward { description "Enter the forward context"; choice forward-action { case bonding-connection { leaf bonding-connection { type types-submgt:bonding-connection-index; description "Connection ID over which packet is forwarded"; } } case esi-l2 { container esi-l2 { presence "Enter the 'esi-l2' context"; description "Enable the esi-l2 context"; leaf esi-value { type types-services:ethernet-segment-id { pattern "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})"; } description "ESI of the first ESI-identified appliance"; } leaf vpls { type types-services:service-name; description "VPLS service name"; } } // container esi-l2 } case esi-l3 { container esi-l3 { presence "Enter the 'esi-l3' context"; description "Enable the esi-l3 context"; leaf sf-ip { type types-sros:ipv6-address; sros-ext:immutable; description "IP address of the service function to forward traffic"; } leaf esi-value { type types-services:ethernet-segment-id { pattern "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})"; } sros-ext:immutable; description "ESI of the first ESI-identified appliance"; } leaf vas-interface { type types-sros:interface-name; sros-ext:immutable; description "Egress R-VPLS IP interface name"; } leaf vprn { type types-services:service-name; sros-ext:immutable; description "VPRN service name"; } } // container esi-l3 } case router { leaf router-instance { type string; sros-ext:immutable; description "Specifies the routing context used for route lookup."; } } case next-hop { container next-hop { presence "Enter the 'next-hop' context"; description "Enable the next-hop context"; choice next-hop { case nh-ip { container nh-ip { presence "Enter the 'nh-ip' context"; description "Enable the nh-ip context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf address { type types-sros:ipv6-address; description "IPv6 address of next hop to forward matching packets"; } } // container nh-ip } case nh-ip-vrf { container nh-ip-vrf { presence "Enter the 'nh-ip-vrf' context"; description "Enable the nh-ip-vrf context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf router-instance { type string; sros-ext:immutable; description "Routing context for route lookup for forwarding packets"; } leaf address { type types-sros:ipv6-address; description "IPv6 address of next hop to forward matching packets"; } } // container nh-ip-vrf } } } // container next-hop } case lsp { leaf lsp { type types-sros:named-item-64; description "LSP that is specified to forward a packet matching this entry"; } } case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type types-services:service-name; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type types-services:service-name; description "VPLS associated with the SAP"; } leaf sap-id { type types-sros:sap; description "VPLS Ethernet SAP ID used to forward matching packets"; } } // container sap } case redirect-policy { leaf redirect-policy { type types-sros:named-item; sros-ext:immutable; description "Next hop or forward next hop router that forwards a packet that matches this entry"; } } case vprn-target { container vprn-target { presence "Enter the 'vprn-target' context"; description "Enable the vprn-target context"; leaf bgp-nh { type types-sros:ipv4-address { pattern "((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))| ((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){2}(([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){1}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1})| ((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){1}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1}(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){2})| (([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]){1}(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})"; } description "Target BGP next hop IP address"; } leaf vprn { type types-services:service-name; description "Routing context used for route lookup"; } leaf lsp { type types-sros:named-item-64; description "LSP that is specified to forward a packet matching this entry"; } leaf adv-prefix { type types-sros:ipv6-prefix; description "Advertised IP prefix for target destination"; } } // container vprn-target } case gre-tunnel { leaf gre-tunnel { type types-sros:named-item; description "GRE tunnel template ID that sets the location where an encapsulated matching packet is transported"; } } case mpls-policy { container mpls-policy { presence "Enter the 'mpls-policy' context"; description "Enable the mpls-policy context"; leaf endpoint { type types-sros:ipv6-unicast-address; description "The MPLS forwarding policy endpoint IPv6 address"; } } // container mpls-policy } case srte-policy { container srte-policy { presence "Enter the 'srte-policy' context"; description "Enable the srte-policy context"; leaf endpoint { type types-sros:ipv6-unicast-or-zero-address; description "The SR-TE policy endpoint IPv6 address"; } leaf color { type int64 { range "0..4294967295"; } description "The SR-TE policy color value"; } } // container srte-policy } } } // container forward } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type union { type enumeration { enum "from-cpf" { value 1; } } type types-sros:http-redirect-url; } sros-ext:immutable; description "URL that is used for redirecting"; } leaf allow-override { type boolean; default "false"; description "Override http-redirect by a RADIUS VSA"; } } // container http-redirect } case nat { container nat { presence "Enter the 'nat' context"; description "Enable the nat context"; leaf nat-policy { type types-sros:external-named-item; sros-ext:isa-auto-clear-on-modify; description "NAT policy name when action is NAT"; } leaf nat-type { type types-filter:nat-type; sros-ext:isa-auto-clear-on-modify; description "NAT type to assign when action is NAT"; } } // container nat } case tcp-mss-adjust { leaf tcp-mss-adjust { type empty; description "Adjust MSS option of TCP matching packets to configured value of tcp-mss in router interface context"; } } case accept { leaf accept { type empty; description "Accept regular routing to forward a packet that matches this entry"; } } } container remark { presence "Enter the 'remark' context"; description "Enable the remark context"; leaf dscp { type types-qos:dscp-name; description "Destination SAP"; } } // container remark container rate-limit { presence "Enter the 'rate-limit' context"; description "Enable the rate-limit context"; leaf pir { type types-filter:rate-limit; units "kilobps"; description "Peak information rate"; } choice criterion-1 { case hop-limit { container hop-limit { presence "Enter the 'hop-limit' context"; description "Enable the hop-limit context"; choice hop-limit { case eq { leaf eq { type types-filter:ttl-or-hop-limit-value; description "Value to compare against 'equal' condition for entry match criteria"; } } case lt { leaf lt { type types-filter:ttl-or-hop-limit-lt-value; description "Value to compare against 'less than' condition for entry match criteria"; } } case gt { leaf gt { type types-filter:ttl-or-hop-limit-gt-value; description "Value to compare against 'greater than' condition for entry match criteria"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:ttl-or-hop-limit-gt-value; description "Lower bound value"; } leaf end { type types-filter:ttl-or-hop-limit-lt-value; description "Upper bound value"; } } // container range } } } // container hop-limit } case payload-length { container payload-length { presence "Enter the 'payload-length' context"; description "Enable the payload-length context"; choice payload-length { case eq { leaf eq { type types-filter:pkt-len-or-payload-len-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:pkt-len-or-payload-len-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:pkt-len-or-payload-len-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:pkt-len-or-payload-len-gt-value; description "Lower bound of the length range"; } leaf end { type types-filter:pkt-len-or-payload-len-lt-value; description "Upper bound of the length range"; } } // container range } } } // container payload-length } } container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } description "Offset value for the pattern expression"; } } // container pattern } // container rate-limit container drop-when { presence "Enter the 'drop-when' context"; description "Enable the drop-when context"; choice criterion-1 { case hop-limit { container hop-limit { presence "Enter the 'hop-limit' context"; description "Enable the hop-limit context"; choice hop-limit { case eq { leaf eq { type types-filter:ttl-or-hop-limit-value; description "Value to compare against 'equal' condition for entry match criteria"; } } case lt { leaf lt { type types-filter:ttl-or-hop-limit-lt-value; description "Value to compare against 'less than' condition for entry match criteria"; } } case gt { leaf gt { type types-filter:ttl-or-hop-limit-gt-value; description "Value to compare against 'greater than' condition for entry match criteria"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:ttl-or-hop-limit-gt-value; description "Lower bound value"; } leaf end { type types-filter:ttl-or-hop-limit-lt-value; description "Upper bound value"; } } // container range } } } // container hop-limit } case payload-length { container payload-length { presence "Enter the 'payload-length' context"; description "Enable the payload-length context"; choice payload-length { case eq { leaf eq { type types-filter:pkt-len-or-payload-len-value; description "Exact match criterion for the length"; } } case lt { leaf lt { type types-filter:pkt-len-or-payload-len-lt-value; description "Less than match criterion for the length"; } } case gt { leaf gt { type types-filter:pkt-len-or-payload-len-gt-value; description "Greater than match criterion for the length"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-filter:pkt-len-or-payload-len-gt-value; description "Lower bound of the length range"; } leaf end { type types-filter:pkt-len-or-payload-len-lt-value; description "Upper bound of the length range"; } } // container range } } } // container payload-length } } choice criterion-2 { case extracted-traffic { leaf extracted-traffic { type empty; description "Drop traffic extracted to CPM"; } } } container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } description "Offset value for the pattern expression"; } } // container pattern } // container drop-when container accept-when { presence "Enter the 'accept-when' context"; description "Enable the accept-when context"; container pattern { presence "Enter the 'pattern' context"; description "Enable the pattern context"; leaf expression { type types-sros:hex-string { length "3..18"; } description "Pattern expression to match"; } leaf mask { type types-sros:hex-string { length "3..18"; pattern "0x[a-fA-F0-9]*[a-fA-F1-9]+[a-fA-F0-9]*" { error-message "The value has to be in hex-string format with prefix '0x' and must not be all zeros."; } } description "Mask for the pattern expression"; } leaf offset-type { type enumeration { enum "layer-3" { value 1; } enum "layer-4" { value 2; } enum "data" { value 3; } enum "dns-qtype" { value 4; } } description "Starting point reference for offset value of pattern"; } leaf offset-value { type int32 { range "0..255"; } description "Offset value for the pattern expression"; } } // container pattern } // container accept-when container secondary { presence "Enter the 'secondary' context"; description "Enable the secondary context"; choice action { case forward { container forward { description "Enter the forward context"; choice forward-action { case next-hop { container next-hop { presence "Enter the 'next-hop' context"; description "Enable the next-hop context"; choice next-hop { case nh-ip-vrf { container nh-ip-vrf { presence "Enter the 'nh-ip-vrf' context"; description "Enable the nh-ip-vrf context"; leaf indirect { type boolean; default "false"; description "Allow next hop to be indirectly reachable"; } leaf router-instance { type string; sros-ext:immutable; description "Routing context for route lookup for forwarding packets"; } leaf address { type types-sros:ipv6-address; description "IPv6 address of next hop to forward matching packets"; } } // container nh-ip-vrf } } } // container next-hop } case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type types-services:service-name; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; sros-ext:immutable; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type types-services:service-name; description "VPLS the sdp-bind-id belongs to"; } leaf sap-id { type types-sros:sap; sros-ext:immutable; description "A packet matching the entry will be forwarded using the specified SAP"; } } // container sap } } } // container forward } } container remark { presence "Enter the 'remark' context"; description "Enable the remark context"; leaf dscp { type types-qos:dscp-name; description "Destination SAP"; } } // container remark } // container secondary } // container action } // list entry container embed { description "Enter the embed context"; list filter { key "name offset"; description "Enter the filter list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "ID of the filter to insert"; } leaf offset { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:embed-offset { range "0..2097150"; } } description "Offset of the inserted entries"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } } // list filter list flowspec { key "offset"; description "Enter the flowspec list instance"; leaf offset { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:embed-offset; } description "Offset of the inserted entries"; } leaf group { type uint32 { range "0..16383"; } sros-ext:immutable; description "Interface group ID for an external configured set of flowspec rules"; } leaf router-instance { type string; sros-ext:immutable; description "Virtual router for an external configured set of flowspec rules"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } } // list flowspec list openflow { key "of-switch offset"; description "Enter the openflow list instance"; leaf of-switch { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Referenced Hybrid OpenFlow Switch (OFS) name"; } leaf offset { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:embed-offset { range "0..2097150"; } } description "Offset of the inserted entries"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this embedding"; } choice context { default "grt"; description "Specifies the context in which the openflow embedding is inserted into filter. When no context is present, this object is set to grt value."; case grt { leaf grt { type empty; sros-ext:immutable; description "Global routing context"; } } case system { leaf system { type empty; sros-ext:immutable; description "System context"; } } case vprn { leaf vprn { type types-services:service-name; sros-ext:immutable; description "VPRN context"; } } case vpls { leaf vpls { type types-services:service-name; sros-ext:immutable; description "VPLS context"; } leaf sap { type types-sros:sap; sros-ext:immutable; description "SAP context"; } } } } // list openflow } // container embed } // list ipv6-filter list mac-filter { key "filter-name"; description "Enter the mac-filter list instance"; leaf filter-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "Filter name"; } leaf default-action { type types-filter:filter-default-action; default "drop"; description "Action for packets that do not match any entry"; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-filter:filter-scope; default "template"; description "Scope of this filter definition"; } leaf type { type types-qos:mac-filter-type; sros-ext:immutable; default "normal"; description "MAC filter policy"; } leaf filter-id { type types-filter:filter-id; sros-ext:immutable; description "MAC filter ID"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:entry-id; } description "ID for a match criteria and the corresponding action"; } leaf description { type types-sros:description; description "Text description"; } leaf pbr-down-action-override { type types-filter:filter-pbr-down-action-ovr; description "Action when PBR or PBF target for this entry is not available"; } leaf sticky-dest { type types-filter:filter-sticky-dest; units "seconds"; description "Time before action with available PBR or PBF destination and highest priority"; } leaf log { type types-filter:filter-log-id; description "Log that is used for packets matching this entry"; } leaf collect-stats { type boolean; default "false"; description "Enable/disable statistics collection"; } container match { description "Enter the match context"; leaf frame-type { type types-filter:mac-frame-type; description "MAC frame as match criteria"; } leaf etype { type types-services:etype-value; description "Ethernet type"; } leaf snap-pid { type int32 { range "0..65535"; } description "Parameter snap-pid as a MAC filter match criteria"; } leaf snap-oui { type enumeration { enum "zero" { value 2; } enum "non-zero" { value 3; } } description "Parameter snap-oui as a MAC filter match criteria"; } container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container src-mac container dst-mac { presence "Enter the 'dst-mac' context"; description "Enable the dst-mac context"; leaf address { type yang:mac-address; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container dst-mac container dot1p { presence "Enter the 'dot1p' context"; description "Enable the dot1p context"; leaf priority { type types-qos:dot1p-priority; description "IEEE 802.1p value used as a MAC filter match criterion"; } leaf mask { type types-qos:dot1p-priority { range "1..7"; } default "7"; description "802.1p mask value used as a MAC filter match criterion"; } } // container dot1p container llc-ssap { presence "Enter the 'llc-ssap' context"; description "Enable the llc-ssap context"; leaf ssap { type types-qos:service-access-point; description "Source or destination SAP value"; } leaf mask { type types-qos:service-access-point { range "1..255"; } default "255"; description "Source SAP mask"; } } // container llc-ssap container llc-dsap { presence "Enter the 'llc-dsap' context"; description "Enable the llc-dsap context"; leaf dsap { type types-qos:service-access-point; description "DSAP value"; } leaf mask { type types-qos:service-access-point { range "1..255"; } default "255"; description "Destination SAP mask"; } } // container llc-dsap container inner-tag { presence "Enter the 'inner-tag' context"; description "Enable the inner-tag context"; leaf tag { type int32 { range "0..4095"; } description "Matching value against VID of the second or first VLAN tag in the packet carried transparently"; } leaf mask { type uint32 { range "1..4095"; } default "4095"; description "Mask to VID of the inner VLAN tag before comparing it with the inner-tag or outer-tag value"; } } // container inner-tag container outer-tag { presence "Enter the 'outer-tag' context"; description "Enable the outer-tag context"; leaf tag { type int32 { range "0..4095"; } description "Matching value against VID of the second or first VLAN tag in the packet carried transparently"; } leaf mask { type uint32 { range "1..4095"; } default "4095"; description "Mask to VID of the inner VLAN tag before comparing it with the inner-tag or outer-tag value"; } } // container outer-tag container isid { description "Enter the isid context"; choice isid { case isid-value { leaf value { type types-sros:svc-isid; description "Lowest value of 24-bit service instance identifier for the service matching this entry"; } } case isid-range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-sros:svc-isid; description "Lowest value of 24-bit service instance identifier for the service matching this entry"; } leaf end { type types-sros:svc-isid; description "Highest value of 24-bit service instance identifier for the service matching this entry"; } } // container range } } } // container isid } // container match container action { presence "Enter the 'action' context"; description "Enable the action context"; leaf fc { type types-sros:fc-name; description "Specifies forwarding class name for packets matching the entry."; } choice action { case ignore-match { leaf ignore-match { type empty; description "Ignore match criteria for the entry"; } } case drop { leaf drop { type empty; description "Drop a packet matching this entry"; } } case forward { container forward { description "Enter the forward context"; choice forward-action { case esi-l2 { container esi-l2 { presence "Enter the 'esi-l2' context"; description "Enable the esi-l2 context"; leaf esi-value { type types-services:ethernet-segment-id { pattern "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})"; } description "ESI of the first ESI-identified appliance"; } leaf vpls { type types-services:service-name; description "VPLS service name"; } } // container esi-l2 } case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type types-services:service-name; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type types-services:service-name; description "VPLS associated with the SAP"; } leaf sap-id { type types-sros:sap; description "VPLS Ethernet SAP ID used to forward matching packets"; } } // container sap } } } // container forward } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type types-sros:http-redirect-url; sros-ext:immutable; description "URL that is used for redirecting"; } } // container http-redirect } case accept { leaf accept { type empty; description "Accept regular routing to forward a packet that matches this entry"; } } } container rate-limit { presence "Enter the 'rate-limit' context"; description "Enable the rate-limit context"; leaf pir { type types-filter:rate-limit; units "kilobps"; description "Peak information rate"; } } // container rate-limit container secondary { presence "Enter the 'secondary' context"; description "Enable the secondary context"; choice action { case forward { container forward { description "Enter the forward context"; choice forward-action { case sdp { container sdp { presence "Enter the 'sdp' context"; description "Enable the sdp context"; leaf vpls { type types-services:service-name; description "VPLS associated with the SDP"; } leaf sdp-bind-id { type types-services:sdp-bind-id; sros-ext:immutable; description "VPLS SDP bind ID used to forward matching packets"; } } // container sdp } case sap { container sap { presence "Enter the 'sap' context"; description "Enable the sap context"; leaf vpls { type types-services:service-name; description "VPLS the sdp-bind-id belongs to"; } leaf sap-id { type types-sros:sap; sros-ext:immutable; description "A packet matching the entry will be forwarded using the specified SAP"; } } // container sap } } } // container forward } } } // container secondary } // container action } // list entry container embed { description "Enter the embed context"; } // container embed } // list mac-filter container system-filter { description "Enter the system-filter context"; list ip { key "ip-filter"; max-elements 1; description "Add a list entry for ip"; leaf ip-filter { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "The name of the IPv4 filter policy to be selected as the active system filter policy"; } } // list ip list ipv6 { key "ipv6-filter"; max-elements 1; description "Add a list entry for ipv6"; leaf ipv6-filter { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "The name of the IPv6 filter policy to be selected as the active system filter policy"; } } // list ipv6 } // container system-filter list gre-tunnel-template { key "gre-tunnel-template-name"; max-elements 1023; description "Enter the gre-tunnel-template list instance"; leaf gre-tunnel-template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "GRE tunnel template identifier"; } leaf description { type types-sros:description; description "Text description"; } container ipv4 { description "Enter the ipv4 context"; leaf source-address { type types-sros:ipv4-address; description "Source IP address of the GRE encapsulated"; } leaf gre-key { type types-filter:filter-gre-tunnel-gre-key; description "GRE key"; } leaf skip-ttl-decrement { type boolean; default "false"; description "Decrement TTL"; } list destination-address { key "address"; max-elements 32; description "Add a list entry for destination-address"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Destination IP address"; } } // list destination-address } // container ipv4 } // list gre-tunnel-template container md-auto-id { description "Enter the md-auto-id context"; container filter-id-range { presence "Enter the 'filter-id-range' context"; description "Enable the filter-id-range context"; leaf start { type types-filter:filter-id; sros-ext:immutable; description "Lower value of the ID range, must be less than or equal to end value"; } leaf end { type types-filter:filter-id; sros-ext:immutable; description "Upper value of the ID range, must be greater than or equal to start value"; } } // container filter-id-range } // container md-auto-id list dhcp-filter { key "filter-id"; description "Enter the dhcp-filter list instance"; leaf filter-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "Unique DHCP filter policy ID"; } leaf description { type types-sros:description; description "Text description"; } container default-action { presence "Enter the 'default-action' context"; description "Enable the default-action context"; choice action { description "The action to take for DHCP host creation requests that match this filter entry. If not set host creation proceeds as usual"; case bypass-host-creation { leaf bypass-host-creation { type empty; description "Host creation options to bypass"; } } case drop { leaf drop { type empty; description "DHCP host creation when the filter entry is matched"; } } } } // container default-action list entry { key "entry-id"; max-elements 10; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "DHCP filter entry index"; } container action { presence "Enter the 'action' context"; description "Enable the action context"; choice action { description "The action to take for DHCP host creation requests that match this filter entry. If not set host creation proceeds as usual"; case bypass-host-creation { leaf bypass-host-creation { type empty; description "Host creation options to bypass"; } } case drop { leaf drop { type empty; description "DHCP host creation when the filter entry is matched"; } } } } // container action container option { presence "Enter the 'option' context"; description "Enable the option context"; leaf number { type int32 { range "0..255"; } description "Number for DHCP or DHCPv6 option to filter on"; } choice option-match { case present { leaf present { type empty; description "Require the presence of related option"; } } case absent { leaf absent { type empty; description "Require the absence of related option"; } } case match { container match { presence "Enter the 'match' context"; description "Enable the match context"; leaf exact { type boolean; default "false"; description "Use an exact match pattern (not partial)"; } leaf invert { type boolean; default "false"; description "Invert (partial) matching criteria"; } choice option-value { case string { leaf string { type string { length "1..127"; } description "Matching pattern for the filtered option"; } } case hex { leaf hex { type string { length "1..256"; pattern "0x[0-9a-fA-F]+"; } description "Matching pattern for the filtered option"; } } } } // container match } } } // container option } // list entry } // list dhcp-filter list dhcp6-filter { key "filter-id"; description "Enter the dhcp6-filter list instance"; leaf filter-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "Unique DHCP filter policy ID"; } leaf description { type types-sros:description; description "Text description"; } container default-action { presence "Enter the 'default-action' context"; description "Enable the default-action context"; choice action { description "The action to take for DHCP6 host creation requests that match this filter entry. If not set host creation proceeds as usual"; case bypass-host-creation { container bypass-host-creation { presence "Enter the 'bypass-host-creation' context"; description "Enable the bypass-host-creation context"; leaf na { type boolean; default "true"; description "Bypass the DHCPv6 NA host creation"; } leaf pd { type boolean; default "true"; description "Bypass the DHCPv6 PD host creation"; } } // container bypass-host-creation } case drop { leaf drop { type empty; description "Drop DHCPv6 message (do not process)"; } } } } // container default-action list entry { key "entry-id"; max-elements 10; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "DHCP filter entry index"; } container action { presence "Enter the 'action' context"; description "Enable the action context"; choice action { description "The action to take for DHCP6 host creation requests that match this filter entry. If not set host creation proceeds as usual"; case bypass-host-creation { container bypass-host-creation { presence "Enter the 'bypass-host-creation' context"; description "Enable the bypass-host-creation context"; leaf na { type boolean; default "true"; description "Bypass the DHCPv6 NA host creation"; } leaf pd { type boolean; default "true"; description "Bypass the DHCPv6 PD host creation"; } } // container bypass-host-creation } case drop { leaf drop { type empty; description "Drop DHCPv6 message (do not process)"; } } } } // container action container option { presence "Enter the 'option' context"; description "Enable the option context"; leaf number { type int32 { range "0..255"; } description "Number for DHCP or DHCPv6 option to filter on"; } choice option-match { case present { leaf present { type empty; description "Require the presence of related option"; } } case absent { leaf absent { type empty; description "Require the absence of related option"; } } case match { container match { presence "Enter the 'match' context"; description "Enable the match context"; leaf exact { type boolean; default "false"; description "Use an exact match pattern (not partial)"; } leaf invert { type boolean; default "false"; description "Invert (partial) matching criteria"; } choice option-value { case string { leaf string { type string { length "1..127"; } description "Matching pattern for the filtered option"; } } case hex { leaf hex { type string { length "1..256"; pattern "0x[0-9a-fA-F]+"; } description "Matching pattern for the filtered option"; } } } } // container match } } } // container option } // list entry } // list dhcp6-filter list ip-exception { key "filter-name"; description "Enter the ip-exception list instance"; leaf filter-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "Filter name"; } leaf description { type types-sros:description; description "Text description"; } leaf filter-id { type types-filter:filter-id; sros-ext:immutable; description "Configure ip-exception identifier."; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:entry-id; } description "ID for a match criteria and the corresponding action"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IP protocol to match."; } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Condition on equality to specified value."; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Condition on being less than the specified value."; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Condition on being greater than the specified value."; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } description "Specifies lower bound port to match."; } leaf end { type uint16 { range "1..65535"; } description "Specifies upper bound port to match."; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Condition on equality to specified value."; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Condition on being less than the specified value."; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Condition on being greater than the specified value."; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } description "Specifies lower bound port to match."; } leaf end { type uint16 { range "1..65535"; } description "Specifies upper bound port to match."; } } // container range } } } // container dst-port } } container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Specifies IP address to match."; } leaf mask { type types-sros:ipv4-address; description "Specifies the mask that is applied as an AND to the IP address."; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Specifies IP address to match."; } leaf mask { type types-sros:ipv4-address; description "Specifies the mask that is applied as an AND to the IP address."; } } } } // container dst-ip container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code value to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type value to match"; } } } } // container icmp } // container match } // list entry } // list ip-exception list ipv6-exception { key "filter-name"; description "Enter the ipv6-exception list instance"; leaf filter-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "Filter name"; } leaf description { type types-sros:description; description "Text description"; } leaf filter-id { type types-filter:filter-id; sros-ext:immutable; description "Filter ID"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:entry-id; } description "ID for a match criteria and the corresponding action"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container dst-port } case port { container port { description "Enter the port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Exact match criterion for the port number"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Less than match criterion for the port number"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Greater than match criterion for the port number"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65534"; } description "Lower bound of the port range as port match criterion"; } leaf end { type uint16 { range "1..65535"; } description "Upper bound of the port range as port match criterion"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container port } } container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "IP prefix list as match criterion for IP address"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "IP prefix list as match criterion for IP address"; } } } } // container dst-ip container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv6-match-icmp-codes; description "ICMPv6 code value to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv6-match-icmp-types; description "ICMPv6 type value to match"; } } } } // container icmp } // container match } // list entry } // list ipv6-exception } // container filter container fwd-path-ext { description "Enter the fwd-path-ext context"; container sdp-id-range { presence "Enter the 'sdp-id-range' context"; description "Enable the sdp-id-range context"; leaf start { type types-services:sdp-id; description "Start of range"; } leaf end { type types-services:sdp-id; description "End of range"; } } // container sdp-id-range list fpe { key "fpe-id"; description "Enter the fpe list instance"; leaf fpe-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..64"; } } description "FPE used to associate the application with a PXC"; } leaf description { type types-sros:description; description "Text description"; } container path { description "Enter the path context"; choice path-type { case port-xc { leaf pxc { type uint32 { range "1..64"; } description "Cross connect port identifier associated with this entry"; } } case lag { leaf xc-lag-a { type types-sros:lag-interface; description "LAG name"; } leaf xc-lag-b { type types-sros:lag-interface; description "LAG name"; } } } } // container path container application { description "Enter the application context"; leaf pw-port { type boolean; default "false"; description "Use FPE to set up FPE PW cross-connect"; } leaf sub-mgmt-extension { type boolean; default "false"; description "Reserve FPE for hybrid access bonding"; } container vxlan-termination { presence "Enter the 'vxlan-termination' context"; description "Enable the vxlan-termination context"; leaf router-instance { type string; default "Base"; description "Routing context that provides reachability to the tunnel configured"; } } // container vxlan-termination } // container application } // list fpe } // container fwd-path-ext container ipsec { description "Enter the ipsec context"; leaf show-ipsec-keys { type boolean; default "false"; description "Show IPsec IKE and ESP keys."; } list cert-profile { key "name"; max-elements 10200; description "Enter the cert-profile list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Certificate profile name."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the certificate profile."; } list entry { key "id"; max-elements 8; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Certificate profile entry ID"; } leaf cert { type types-security:pki-file-name; description "Certificate file name for the certificate profile entry"; } leaf key { type types-security:pki-file-name; description "File name of imported key used for authentication"; } leaf rsa-signature { type enumeration { enum "pkcs1" { value 1; } enum "pss" { value 2; } } default "pkcs1"; description "Signature scheme for the RSA key"; } container send-chain { description "Enter the send-chain context"; leaf-list ca-profile { type types-sros:named-item; max-elements 7; description "CA certificate to send to the peer"; } } // container send-chain } // list entry } // list cert-profile list client-db { key "name"; max-elements 1000; description "Enter the client-db list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "IPsec client database name."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the client database."; } leaf description { type types-sros:description; description "Text description"; } container match-list { description "Enter the match-list context"; leaf idi { type boolean; default "false"; description "Use IDi type in the IPsec client matching process"; } leaf peer-ip-prefix { type boolean; default "false"; description "Use the peer's tunnel IP address in matching process"; } } // container match-list list client { key "id"; description "Enter the client list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8000"; } } description "Client ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the database client."; } leaf client-name { type types-sros:named-item; description "Client name"; } leaf private-interface { type types-sros:named-item; description "Private interface name used for tunnel setup"; } leaf private-service-name { type types-services:service-name; description "Name of the private service used for tunnel setup"; } leaf ts-list { type types-sros:named-item; description "Traffic selector list used by the tunnel"; } leaf tunnel-template { type uint32 { range "1..2048"; } description "Tunnel template ID"; } container credential { description "Enter the credential context"; leaf pre-shared-key { type types-sros:encrypted-leaf-hex-without-prefix { length "1..115"; } description "Pre-shared key used to authenticate peers"; } } // container credential container identification { description "Enter the identification context"; container idi { presence "Enter the 'idi' context"; description "Enable the idi context"; choice idi { case any { leaf any { type boolean; description "Accept any IDi value as a match"; } } case ipv4-prefix { leaf ipv4-prefix { type types-sros:ipv4-prefix; description "IPv4 prefix used as the match criteria for the IDi"; } } case ipv4-prefix-any { leaf ipv4-prefix-any { type boolean; description "Accept any valid IPv4 prefix as a match for the IDi"; } } case ipv6-prefix { leaf ipv6-prefix { type types-sros:ipv6-prefix; description "IPv6 prefix used as the match criteria for the IDi"; } } case ipv6-prefix-any { leaf ipv6-prefix-any { type boolean; description "Accept any valid IPv6 prefix as a match for the IDi"; } } case fqdn { leaf fqdn { type types-sros:display-string-or-empty; description "FQDN used as the match criteria for the IDi"; } } case fqdn-suffix { leaf fqdn-suffix { type types-sros:display-string-or-empty; description "FQDN suffix used as the match criteria for the IDi"; } } case rfc822 { leaf rfc822 { type types-sros:display-string-or-empty; description "Email address (RFC 822) used as match criteria for IDi"; } } case rfc822-suffix { leaf rfc822-suffix { type types-sros:display-string-or-empty; description "Email address domain (RFC 822) as IDi match criteria"; } } } } // container idi container peer-ip-prefix { presence "Enter the 'peer-ip-prefix' context"; description "Enable the peer-ip-prefix context"; choice prefix { case ipv4-only { leaf ipv4-only { type boolean; description "Accept any valid IPv4 address as a match"; } } case ipv6-only { leaf ipv6-only { type boolean; description "Accept any valid IPv6 address as a match"; } } case ip-prefix { leaf ip-prefix { type types-sros:ip-prefix; description "IP prefix used as the match criteria"; } } } } // container peer-ip-prefix } // container identification } // list client } // list client-db list ike-policy { key "id"; max-elements 2048; description "Enter the ike-policy list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-ipsec:ike-policy-id; } description "The unique identifier of an IKE policy."; } leaf description { type types-sros:description; description "Text description"; } leaf ipsec-lifetime { type types-ipsec:lifetime; default "3600"; description "Phase 1 lifetime for the IKE transform session"; } leaf match-peer-id-to-cert { type boolean; default "false"; description "Check IKE peer's ID during certificate authentication"; } leaf-list ike-transform { type types-ipsec:ike-transform-id; max-elements 4; description "IKE transform instance associated with the IKE policy"; } choice ike-version { default "version-1"; case version-1 { container ike-version-1 { description "Enter the ike-version-1 context"; leaf auth-method { type enumeration { enum "psk" { value 1; } enum "plain-psk-xauth" { value 4; } } default "psk"; description "Authentication method used with the IKE policy"; } leaf own-auth-method { type enumeration { enum "symmetric" { value 0; } } default "symmetric"; description "Authentication method used with policy on its own side"; } leaf ike-mode { type enumeration { enum "main" { value 1; } enum "aggressive" { value 2; } } default "main"; description "Mode of operation"; } leaf ph1-responder-delete-notify { type boolean; default "true"; description "Send delete notification for IKEv1 phase 1 removal"; } } // container ike-version-1 } case version-2 { container ike-version-2 { presence "Enter the 'ike-version-2' context"; description "Enable the ike-version-2 context"; leaf auth-method { type enumeration { enum "psk" { value 1; } enum "cert" { value 5; } enum "psk-radius" { value 6; } enum "cert-radius" { value 7; } enum "eap" { value 8; } enum "auto-eap-radius" { value 9; } enum "auto-eap" { value 10; } } default "psk"; description "Authentication method used with the IKE policy"; } leaf own-auth-method { type enumeration { enum "symmetric" { value 0; } enum "psk" { value 1; } enum "cert" { value 5; } enum "eap-only" { value 8; } } default "symmetric"; description "Authentication method used with IKE policy on own side"; } leaf auto-eap-method { type enumeration { enum "psk" { value 1; } enum "cert" { value 2; } enum "psk-or-cert" { value 3; } } default "cert"; description "Authentication method"; } leaf own-auto-eap-method { type enumeration { enum "psk" { value 1; } enum "cert" { value 2; } } default "cert"; description "Authentication method"; } leaf send-idr-after-eap-success { type boolean; default "true"; description "Send IDr payload in last IKE authentication response"; } container ikev2-fragment { presence "Enter the 'ikev2-fragment' context"; description "Enable the ikev2-fragment context"; leaf mtu { type uint32 { range "512..9000"; } units "octets"; default "1500"; description "MTU of the IKEv2 messages"; } leaf reassembly-timeout { type uint32 { range "1..5"; } units "seconds"; default "2"; description "Timeout for reassembly of IKEv2 message fragments"; } } // container ikev2-fragment } // container ike-version-2 } } container limit-init-exchange { description "Enter the limit-init-exchange context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of limiting initial IKE exchanges"; } leaf reduced-max-exchange-timeout { type union { type uint32 { range "2..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "2"; description "Max timeout for the in-progress initial IKE exchange"; } } // container limit-init-exchange container dpd { presence "Enter the 'dpd' context"; description "Enable the dpd context"; leaf reply-only { type boolean; default "false"; description "Initiate DPD request for incoming ESP or IKE packets"; } leaf interval { type uint32 { range "10..300"; } units "seconds"; default "30"; description "DPD interval"; } leaf max-retries { type uint32 { range "2..5"; } default "3"; description "Maximum number of retries before the tunnel is removed"; } } // container dpd container nat-traversal { presence "Enter the 'nat-traversal' context"; description "Enable the nat-traversal context"; leaf force { type boolean; default "false"; description "Force NAT-T to be enabled."; } leaf keep-alive-interval { type uint32 { range "120..600"; } units "seconds"; description "The keep alive interval for NAT-T."; } leaf force-keep-alive { type boolean; default "true"; description "Send the keep alive packets only when behind a NAT."; } } // container nat-traversal container lockout { presence "Enter the 'lockout' context"; description "Enable the lockout context"; leaf failed-attempts { type uint32 { range "1..64"; } default "3"; description "Maximum failed authentications allowed in the duration"; } leaf duration { type uint32 { range "1..60"; } units "minutes"; default "5"; description "Time interval in which failed attempts must be exceeded"; } leaf block { type union { type uint32 { range "1..1440"; } type enumeration { enum "infinite" { value 0; } } } units "minutes"; default "10"; description "Time a client is blocked for failed authentications"; } leaf max-port-per-ip { type uint32 { range "1..32000"; } default "16"; description "Max number of ports allowed behind the same IP address"; } } // container lockout container pfs { presence "Enter the 'pfs' context"; description "Enable the pfs context"; leaf dh-group { type types-ipsec:dh-group; default "group-2"; description "The new Diffie-Hellman (DH) group used when each time the SA(Security Association) key is renegotiated."; } } // container pfs container relay-unsolicited-cfg-attribute { description "Enter the relay-unsolicited-cfg-attribute context"; leaf internal-ip4-address { type boolean; default "false"; description "IPv4 address attribute."; } leaf internal-ip4-netmask { type boolean; default "false"; description "IPv4 netmask attribute."; } leaf internal-ip4-dns { type boolean; default "false"; description "IPv4 DNS attribute."; } leaf internal-ip6-address { type boolean; default "false"; description "IPv6 address attribute."; } leaf internal-ip6-dns { type boolean; default "false"; description "IPv6 DNS attribute."; } } // container relay-unsolicited-cfg-attribute } // list ike-policy list ike-transform { key "id"; max-elements 4096; description "Enter the ike-transform list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-ipsec:ike-transform-id; } description "The unique identifier of an IKE transform."; } leaf dh-group { type types-ipsec:dh-group; default "group-2"; description "Diffie-Helman group used to calculate session keys"; } leaf ike-auth-algorithm { type types-ipsec:ike-auth-algorithms; default "sha-1"; description "IKE authentication algorithm for IKE transform instance"; } leaf ike-encryption-algorithm { type types-ipsec:ike-encryption-algorithms; default "aes-128"; description "IKE encryption algorith for the IKE transform instance"; } leaf ike-prf-algorithm { type types-ipsec:prf-algorithms; default "same-as-auth"; description "PRF algorithm for the IKE transform instance"; } leaf isakmp-lifetime { type types-ipsec:lifetime; default "86400"; description "Phase 1 lifetime for the IKE transform instance"; } } // list ike-transform list ipsec-transform { key "id"; max-elements 2048; description "Enter the ipsec-transform list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2048"; } } description "IPsec transform ID."; } leaf esp-auth-algorithm { type types-ipsec:auth-algorithms; default "sha-1"; description "The authentication algorithm for this IPsec transform."; } leaf esp-encryption-algorithm { type types-ipsec:encryption-algorithms; default "aes-128"; description "Encryption algorithm for the IPsec transform session"; } leaf ipsec-lifetime { type types-ipsec:lifetime; description "Phase 2 lifetime for the IPsec transform session"; } leaf pfs-dh-group { type enumeration { enum "none" { value 0; } enum "group-1" { value 1; } enum "group-2" { value 2; } enum "group-5" { value 5; } enum "group-14" { value 14; } enum "group-15" { value 15; } enum "group-19" { value 19; } enum "group-20" { value 20; } enum "group-21" { value 21; } } description "Diffie-Hellman group used for PFS compilation"; } } // list ipsec-transform list static-sa { key "name"; max-elements 1000; description "Enter the static-sa list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Static Security Association (SA) name."; } leaf description { type types-sros:named-item; description "Text description"; } leaf direction { type enumeration { enum "inbound" { value 1; } enum "outbound" { value 2; } enum "bidirectional" { value 3; } } default "bidirectional"; description "Direction to which the static SA entry can be applied"; } leaf protocol { type enumeration { enum "ah" { value 1; } enum "esp" { value 2; } } default "esp"; description "IPsec protocol used with the static SA"; } leaf spi { type uint32 { range "256..16383"; } description "Security Parameter Index (SPI) for the static SA"; } container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf algorithm { type enumeration { enum "md5" { value 2; } enum "sha1" { value 3; } } description "Authentication algorithm used for an IPsec manual SA"; } leaf key { type types-sros:encrypted-leaf { length "1..54"; } description "Key used for the authentication algorithm"; } } // container authentication } // list static-sa list ts-list { key "name"; max-elements 32768; description "Enter the ts-list list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "IPsec Traffic Selector (TS) list name."; } container local { description "Enter the local context"; list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32"; } } description "The unique ID of this TS list entry."; } container address { presence "Enter the 'address' context"; description "Enable the address context"; choice address-range { case prefix { leaf prefix { type types-sros:ip-prefix; description "IP prefix for address range in IKEv2 traffic selector"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf begin { type types-sros:ip-address; description "Beginning IP address of the range for the entry"; } leaf end { type types-sros:ip-address; description "The end IP address."; } } // container range } } } // container address container protocol { presence "Enter the 'protocol' context"; description "Enable the protocol context"; choice range { case any { leaf any { type empty; description "Match any protocol ID"; } } case id { container id { presence "Enter the 'id' context"; description "Enable the id context"; choice id { case tcp { container tcp { description "Enter the tcp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } description "Upper bound of the port range"; } } // container port-range } } } // container tcp } case udp { container udp { description "Enter the udp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } description "Upper bound of the port range"; } } // container port-range } } } // container udp } case sctp { container sctp { description "Enter the sctp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } description "Upper bound of the port range"; } } // container port-range } } } // container sctp } case icmp { container icmp { description "Enter the icmp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin-icmp-type { type uint16 { range "0..255"; } description "Lower bound of the ICMP type range"; } leaf begin-icmp-code { type uint16 { range "0..255"; } description "Lower bound of the ICMP code range"; } leaf end-icmp-type { type uint16 { range "0..255"; } description "Upper bound of the ICMP type range"; } leaf end-icmp-code { type uint16 { range "0..255"; } description "Upper bound of the ICMP code range"; } } // container port-range } } } // container icmp } case icmp6 { container icmp6 { description "Enter the icmp6 context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin-icmp-type { type uint16 { range "0..255"; } description "Lower bound of the ICMP type range"; } leaf begin-icmp-code { type uint16 { range "0..255"; } description "Lower bound of the ICMP code range"; } leaf end-icmp-type { type uint16 { range "0..255"; } description "Upper bound of the ICMP type range"; } leaf end-icmp-code { type uint16 { range "0..255"; } description "Upper bound of the ICMP code range"; } } // container port-range } } } // container icmp6 } case mipv6 { container mipv6 { description "Enter the mipv6 context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint16 { range "0..255"; } description "The begin mobility header type."; } leaf end { type uint16 { range "0..255"; } description "The end mobility header type."; } } // container port-range } } } // container mipv6 } case any { leaf protocol-id-with-any-port { type union { type enumeration { enum "icmp" { value 1; } enum "tcp" { value 6; } enum "udp" { value 17; } enum "icmp6" { value 58; } enum "sctp" { value 132; } enum "mipv6" { value 135; } } type int32 { range "1..255"; } } description "Protocol ID that accepts any port value"; } } } } // container id } } } // container protocol } // list entry } // container local container remote { description "Enter the remote context"; list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32"; } } description "The unique ID of this TS list entry."; } container address { presence "Enter the 'address' context"; description "Enable the address context"; choice address-range { case prefix { leaf prefix { type types-sros:ip-prefix; description "IP prefix for address range in IKEv2 traffic selector"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf begin { type types-sros:ip-address; description "Beginning IP address of the range for the entry"; } leaf end { type types-sros:ip-address; description "The end IP address."; } } // container range } } } // container address container protocol { presence "Enter the 'protocol' context"; description "Enable the protocol context"; choice range { case any { leaf any { type empty; description "Match any protocol ID"; } } case id { container id { presence "Enter the 'id' context"; description "Enable the id context"; choice id { case tcp { container tcp { description "Enter the tcp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } description "Upper bound of the port range"; } } // container port-range } } } // container tcp } case udp { container udp { description "Enter the udp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } description "Upper bound of the port range"; } } // container port-range } } } // container udp } case sctp { container sctp { description "Enter the sctp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } description "Upper bound of the port range"; } } // container port-range } } } // container sctp } case icmp { container icmp { description "Enter the icmp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin-icmp-type { type uint16 { range "0..255"; } description "Lower bound of the ICMP type range"; } leaf begin-icmp-code { type uint16 { range "0..255"; } description "Lower bound of the ICMP code range"; } leaf end-icmp-type { type uint16 { range "0..255"; } description "Upper bound of the ICMP type range"; } leaf end-icmp-code { type uint16 { range "0..255"; } description "Upper bound of the ICMP code range"; } } // container port-range } } } // container icmp } case icmp6 { container icmp6 { description "Enter the icmp6 context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin-icmp-type { type uint16 { range "0..255"; } description "Lower bound of the ICMP type range"; } leaf begin-icmp-code { type uint16 { range "0..255"; } description "Lower bound of the ICMP code range"; } leaf end-icmp-type { type uint16 { range "0..255"; } description "Upper bound of the ICMP type range"; } leaf end-icmp-code { type uint16 { range "0..255"; } description "Upper bound of the ICMP code range"; } } // container port-range } } } // container icmp6 } case mipv6 { container mipv6 { description "Enter the mipv6 context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint16 { range "0..255"; } description "The begin mobility header type."; } leaf end { type uint16 { range "0..255"; } description "The end mobility header type."; } } // container port-range } } } // container mipv6 } case any { leaf protocol-id-with-any-port { type union { type enumeration { enum "icmp" { value 1; } enum "tcp" { value 6; } enum "udp" { value 17; } enum "icmp6" { value 58; } enum "sctp" { value 132; } enum "mipv6" { value 135; } } type int32 { range "1..255"; } } description "Protocol ID that accepts any port value"; } } } } // container id } } } // container protocol } // list entry } // container remote } // list ts-list list tunnel-template { key "id"; max-elements 2048; description "Enter the tunnel-template list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-ipsec:tunnel-template-id; } description "Tunnel template ID"; } leaf description { type types-sros:description; description "Text description"; } leaf clear-df-bit { type boolean; default "false"; description "Clear the Do-not-Fragment (DF) bit"; } leaf encapsulated-ip-mtu { type uint32 { range "512..9000"; } units "octets"; description "Maximum size of the encapsulated tunnel packet"; } leaf ip-mtu { type uint32 { range "512..9000"; } units "octets"; description "Maximum size of the IP MTU for the payload packets"; } leaf private-tcp-mss-adjust { type int32 { range "512..9000"; } units "octets"; description "New TCP MSS value on the private side"; } leaf public-tcp-mss-adjust { type union { type uint32 { range "512..9000"; } type enumeration { enum "auto" { value 0; } } } units "octets"; description "New TCP MSS value on the public side"; } leaf replay-window { type uint32 { range "32|64|128|256|512"; } description "Anti-replay window size for the tunnel template"; } leaf sp-reverse-route { type enumeration { enum "none" { value 0; } enum "use-security-policy" { value 1; } } default "none"; description "Reverse route creation method in private service"; } leaf-list ipsec-transform { type uint32 { range "1..2048"; } max-elements 4; description "IPsec transform ID for the tunnel template"; } leaf ignore-default-route { type boolean; default "false"; description "Ignore any full range traffic selector in TSi"; } container icmp6-generation { description "Enter the icmp6-generation context"; container pkt-too-big { description "Enter the pkt-too-big context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Adminstrative state of the generation of ICMPv6 Packet Too Big messages"; } leaf interval { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Maximum interval during which PTB messages can be sent"; } leaf message-count { type uint32 { range "10..1000"; } default "100"; description "Max ICMPv6 messages that can be sent during interval"; } } // container pkt-too-big } // container icmp6-generation } // list tunnel-template list trust-anchor-profile { key "name"; max-elements 10128; description "Enter the trust-anchor-profile list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Trust anchor profile name."; } list trust-anchor { key "ca-profile"; max-elements 8; description "Add a list entry for trust-anchor"; leaf ca-profile { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of the CA profile as a trust anchor profile"; } } // list trust-anchor } // list trust-anchor-profile container radius { description "Enter the radius context"; list accounting-policy { key "name"; max-elements 100; description "Enter the accounting-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RADIUS accounting policy name"; } leaf radius-server-policy { type types-sros:named-item; description "Referenced RADIUS server policy"; } container update-interval { description "Enter the update-interval context"; leaf value { type int32 { range "0|5..259200"; } units "minutes"; default "10"; description "The update interval of the RADIUS accounting data. Zero specifies that no intermediate updates will be sent."; } leaf jitter { type int32 { range "0..3600"; } units "seconds"; description "The jitter of the update interval. If not specified, the system will use 10% of the update interval value"; } } // container update-interval container include-radius-attribute { description "Enter the include-radius-attribute context"; leaf called-station-id { type boolean; default "false"; description "Include the Called-Station-Id attribute"; } leaf calling-station-id { type boolean; default "false"; description "Include the Calling-Station-Id attribute"; } leaf nas-identifier { type boolean; default "false"; description "Include the NAS-Identifier attribute"; } leaf nas-ip-addr { type boolean; default "false"; description "Include the NAS-IP-Address attribute"; } leaf nas-port-id { type boolean; default "false"; description "Include the NAS-Port-Id attribute"; } leaf acct-stats { type boolean; default "false"; description "Include accounting attributes in RADIUS packets"; } leaf framed-ip-addr { type boolean; default "false"; description "Include the Framed-IP-Address attribute"; } leaf framed-ipv6-prefix { type boolean; default "false"; description "Include the Framed-IPv6-Prefix attribute"; } } // container include-radius-attribute } // list accounting-policy list authentication-policy { key "name"; max-elements 100; description "Enter the authentication-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RADIUS authentication policy name."; } leaf radius-server-policy { type types-sros:named-item; description "Referenced RADIUS server policy"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "The default password to be used in access-request messages to the RADIUS server"; } container include-radius-attribute { description "Enter the include-radius-attribute context"; leaf called-station-id { type boolean; default "false"; description "Include the Called-Station-Id attribute"; } leaf calling-station-id { type boolean; default "false"; description "Include the Calling-Station-Id attribute"; } leaf nas-identifier { type boolean; default "false"; description "Include the NAS-Identifier attribute"; } leaf nas-ip-addr { type boolean; default "false"; description "Include the NAS-IP-Address attribute"; } leaf nas-port-id { type boolean; default "false"; description "Include the NAS-Port-Id attribute"; } leaf client-cert-subject-key-id { type boolean; default "false"; description "Include the Subject-Key-Id attribute."; } } // container include-radius-attribute } // list authentication-policy } // container radius } // container ipsec container isa { description "Enter the isa context"; list tunnel-group { key "id"; description "Enter the tunnel-group list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-redundancy:tunnel-group-id; } description "The unique identifier of the tunnel group."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ISA tunnel group"; } leaf description { type types-sros:description; description "Text description"; } leaf isa-scale-mode { type enumeration { enum "tunnel-limit-2k" { value 1; } enum "tunnel-limit-32k" { value 2; } enum "tunnel-limit-64k" { value 3; } enum "tunnel-limit-8" { value 4; } enum "tunnel-limit-32" { value 5; } } sros-ext:immutable; description "The set of supported scaling modes for each ISA in this group."; } leaf ipsec-responder-only { type boolean; default "false"; description "The IPsec tunnel responds the requests only and does not initiate exchanges with the peer."; } choice redundancy { default "primary-backup"; description "Redundancy mode for ISAs in this tunnel group"; case primary-backup { leaf primary { type types-isa:slot-mda; description "The primary IPsec ISA to be used for this tunnel group."; } leaf backup { type types-isa:slot-mda; description "The backup IPsec ISA to be used for this tunnel group."; } } case multi-active { container multi-active { presence "Enter the 'multi-active' context"; description "Enable the multi-active context"; leaf active-isa-number { type uint32 { range "1..16"; } default "1"; description "The number of active ISAs to be used by this tunnel group to load-balance IPsec traffic."; } choice group-members { default "isa"; description "MDA or ESA-VM members of this tunnel group"; case isa { list isa { key "isa-id"; description "Add a list entry for isa"; leaf isa-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-isa:slot-mda; } description "The ISA associated with this tunnel group."; } } // list isa } case esa { list esa { key "esa-id vm"; description "Add a list entry for esa"; leaf esa-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-esa:esa-id; } description "ESA ID"; } leaf vm { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-esa:vm-id; } description "VM ID"; } } // list esa } } } // container multi-active } } container reassembly { description "Enter the reassembly context"; leaf max-wait-time { type int32 { range "1..5000"; } units "milliseconds"; description "The maximum number of milliseconds to wait to receive all fragments of a particular IPsec or GRE packet for reassembly. The value of this leaf must be a multiple of 100 milliseconds."; } } // container reassembly container stats-collection { description "Enter the stats-collection context"; leaf isa-dp-cpu-usage { type boolean; default "false"; description "Collect the historical data-plane CPU usage statistics."; } } // container stats-collection } // list tunnel-group list nat-group { key "id"; max-elements 4; description "Enter the nat-group list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4"; } } description "Nat-group identifier"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the NAT group"; } leaf radius-accounting-policy { type types-sros:named-item; description "RADIUS accounting policy for ISA group"; } leaf scaling-profile { type types-sros:isa-scaling-profile; sros-ext:isa-auto-clear-on-modify; default "profile1"; description "Scaling profile for the NAT group"; } container redundancy { description "Enter the redundancy context"; leaf active-mda-limit { type uint32 { range "1..14"; } sros-ext:isa-auto-clear-on-modify; description "Number of active MS-ISAs in the NAT group"; } choice redundancy-mode { default "intra-chassis"; case intra-chassis { container intra-chassis { description "Enter the intra-chassis context"; choice mode { default "active-standby"; case active-standby { leaf active-standby { type empty; sros-ext:isa-auto-clear-on-modify; description "Active-standby intra-chassis NAT redundancy model"; } } case active-active { container active-active { description "Enter the active-active context"; leaf failed-mda-limit { type uint32 { range "1..2"; } sros-ext:isa-auto-clear-on-modify; description "Maximum allowable number of failed MS-ISAs in the nat-group"; } } // container active-active } case l2aware-bypass { leaf l2aware-bypass { type empty; sros-ext:isa-auto-clear-on-modify; description "L2-aware-bypass NAT redundancy model"; } } } } // container intra-chassis } case inter-chassis { container inter-chassis { presence "Enter the 'inter-chassis' context"; description "Enable the inter-chassis context"; leaf replication-threshold { type uint32 { range "0..300"; } units "seconds"; default "20"; description "Minimum time to wait before a NAT flow is synchronized"; } leaf flow-timeout-on-switchover { type types-sros:percent { range "1..50"; } default "50"; description "Flow timeout immediately following a switchover"; } leaf router-instance { type string; sros-ext:isa-auto-clear-on-modify; description "Router instance for the ISA-to-ISA communication"; } leaf local-ip-range-start { type types-sros:ipv4-unicast-address; sros-ext:isa-auto-clear-on-modify; description "Starting IP address for ISAs in the NAT group"; } leaf remote-ip-range-start { type types-sros:ipv4-unicast-address; sros-ext:isa-auto-clear-on-modify; description "Starting IP address for ISAs on the remote node"; } leaf ip-mtu { type uint32 { range "512..9000"; } default "1500"; description "IP MTU for ISA-to-ISA communication"; } leaf preferred { type boolean; default "false"; description "Set the preferred activity status for the node"; } container keepalive { description "Enter the keepalive context"; leaf interval { type types-sros:time-duration { range "2..250"; } units "deciseconds"; default "30"; description "Interval between two consecutive keepalive messages"; } leaf dropcount { type uint32 { range "2..20"; } default "2"; description "Threshold for lost consecutive keepalive messages"; } } // container keepalive list monitor-port { key "port-id"; max-elements 16; description "Enter the monitor-port list instance"; leaf port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port-named; } description "Port ID"; } leaf health-drop { type uint32 { range "1..255"; } default "1"; description "Overall health drop of the NAT group on a state change"; } } // list monitor-port list monitor-oper-group { key "oper-group"; max-elements 4; description "Enter the monitor-oper-group list instance"; leaf oper-group { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Operational group name"; } leaf health-drop { type uint32 { range "1..255"; } default "1"; description "Overall health drop of the NAT group on a state change"; } } // list monitor-oper-group } // container inter-chassis } } } // container redundancy container log { description "Enter the log context"; leaf suppress-lsn-sub-blocks-free { type boolean; default "false"; description "Suppress the LSN Free blocks and NAT pool block allocation notifications"; } leaf suppress-lsn-events { type boolean; default "true"; description "Suppress the generation of Large Scale NAT (LSN) events when RADIUS accounting is enabled"; } } // container log container session-limits { description "Enter the session-limits context"; leaf reserved { type uint32 { range "1..6291456"; } description "Number of sessions reserved for prioritized sessions"; } leaf upnp-mappings { type uint32 { range "1..524288"; } sros-ext:isa-auto-clear-on-modify; default "524288"; description "Maximum number of Universal Plug and Play mappings per member"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf low { type types-sros:percent; description "Low watermark of the number of sessions for each MDA in this NAT ISA group"; } leaf high { type types-sros:percent; description "High watermark of the number of sessions for each MDA in this NAT ISA group"; } } // container watermarks } // container session-limits list mda { key "mda-id"; description "Add a list entry for mda"; leaf mda-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-isa:slot-mda; } description "MDA ID for ISA NAT group"; } } // list mda list esa { key "esa-id vm"; description "Add a list entry for esa"; leaf esa-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-esa:esa-id; } description "Provisioned ESA ID"; } leaf vm { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-esa:vm-id; } description "VM ID for the provisioned BB ISA"; } } // list esa } // list nat-group list wlan-gw-group { key "id"; max-elements 1; description "Enter the wlan-gw-group list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-isa:wlan-gw-group-id; } description "Unique value which to identify the WLAN-GW group within a chassis in system"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of a WLAN gateway group"; } leaf description { type types-sros:description; description "Text description"; } leaf redundancy { type enumeration { enum "iom" { value 1; } enum "mda" { value 2; } } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; default "iom"; description "Hardware unit subject to redundancy"; } leaf active-iom-limit { type uint32 { range "1..7"; } sros-ext:isa-auto-clear-on-modify; description "Number of WLAN-GW IOMs used as active IOMs"; } leaf active-mda-limit { type uint32 { range "1..14"; } sros-ext:isa-auto-clear-on-modify; description "ISAs that can be active to use by the WLAN-GW group at the same time"; } leaf port-policy { type types-sros:named-item; description "Base port configuration for WLAN-GW group ports that take part in per-UE QoS processing"; } leaf tunnel-port-policy { type types-sros:named-item; description "Base port configuration for WLAN-GW group ports that take part in per-tunnel QoS processing"; } leaf scaling-profile { type types-sros:isa-scaling-profile; sros-ext:isa-auto-clear-on-modify; default "profile1"; description "The ISA scaling profile identifier."; } list iom { key "slot-number"; description "Add a list entry for iom"; leaf slot-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-card:iom-card-slot; } description "IOM slot to use in the WLAN-GW group"; } } // list iom list mda { key "mda-id"; description "Add a list entry for mda"; leaf mda-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-isa:slot-mda; } description "MDA slot value"; } } // list mda list esa { key "esa-id vm"; description "Add a list entry for esa"; leaf esa-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-esa:esa-id; } description "ESA ID"; } leaf vm { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-esa:vm-id; } description "VM ID"; } } // list esa container nat { description "Enter the nat context"; leaf lsn { type boolean; default "true"; description "Use Large Scale NAT"; } leaf radius-accounting-policy { type types-sros:named-item; description "RADIUS accounting policy for ISA group"; } container log { description "Enter the log context"; leaf suppress-lsn-sub-blocks-free { type boolean; default "false"; description "Suppress the LSN Free blocks and NAT pool block allocation notifications"; } leaf suppress-lsn-events { type boolean; default "true"; description "Suppress the generation of Large Scale NAT (LSN) events when RADIUS accounting is enabled"; } } // container log container session-limits { description "Enter the session-limits context"; leaf reserved { type uint32 { range "1..6291456"; } description "Number of sessions reserved for prioritized sessions"; } leaf upnp-mappings { type uint32 { range "1..524288"; } sros-ext:isa-auto-clear-on-modify; default "524288"; description "Maximum number of Universal Plug and Play mappings per member"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf low { type types-sros:percent; description "Low watermark of the number of sessions for each MDA in this NAT ISA group"; } leaf high { type types-sros:percent; description "High watermark of the number of sessions for each MDA in this NAT ISA group"; } } // container watermarks } // container session-limits } // container nat container watermarks { description "Enter the watermarks context"; list mark { key "entity"; description "Enter the mark list instance"; leaf entity { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-isa:wlan-gw-watermark-entity; } description "Entity to be monitored"; } leaf high { type types-sros:percent { range "1..100"; } description "High watermark for the WLAN-GW group"; } leaf low { type types-sros:percent { range "0..99"; } description "Low watermark for the WLAN-GW group"; } } // list mark } // container watermarks } // list wlan-gw-group list lns-group { key "id"; description "Enter the lns-group list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-l2tp:lns-group-id; } description "Tunnel group ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ISA LNS group"; } leaf description { type types-sros:description; description "Text description"; } leaf port-policy { type types-sros:named-item; description "Port policy for the ISA LNS group"; } list mda { key "mda-id"; max-elements 6; description "Enter the mda list instance"; leaf mda-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-isa:slot-mda; } description "MDA ID for the ISA LNS group"; } leaf drain { type boolean; default "false"; description "Specifies the draining state of the MDA"; } } // list mda list esa { key "esa-id vm"; max-elements 6; description "Enter the esa list instance"; leaf esa-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-esa:esa-id; } description "ESA ID"; } leaf vm { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-esa:vm-id; } description "VM ID"; } leaf drain { type boolean; default "false"; description "Redirect subscribers to other ESA VMs"; } } // list esa } // list lns-group list video-group { key "video-group-id"; max-elements 4; description "Enter the video-group list instance"; leaf video-group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4"; } } description "Video group identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of a video group"; } leaf ad-insert { type boolean; sros-ext:immutable; default "false"; description "Enable the ad insert server for the group"; } leaf analyzer { type boolean; sros-ext:immutable; default "false"; description "Enable video analyzer for all streams on video group"; } leaf description { type types-sros:description; description "Text description"; } leaf rt-client { type boolean; sros-ext:immutable; default "true"; description "Allow client capability for retransmission"; } leaf fcc-server { type boolean; sros-ext:immutable; default "false"; description "Allow FCC server capability for the group"; } leaf local-rt-server { type boolean; sros-ext:immutable; default "false"; description "Enable the local RET server for the group"; } leaf resv-ret { type uint32 { range "0..10500"; } units "megabps"; description "Egress bandwidth reserved for retransmission for all ISAs within a video group"; } leaf stream-selection { type boolean; sros-ext:immutable; default "false"; description "Allow stream selection for the group"; } list mda { key "mda-id"; max-elements 6; description "Add a list entry for mda"; leaf mda-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-isa:slot-mda; } description "MDA identifier"; } } // list mda container watermark { description "Enter the watermark context"; container bandwidth { description "Enter the bandwidth context"; leaf fcc { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "FCC watermark parameters based on the bandwidth"; } leaf ret { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "RET watermark parameters based on the bandwidth"; } leaf total { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "Total watermark parameters based on the bandwidth"; } } // container bandwidth container session { description "Enter the session context"; leaf fcc { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "FCC watermark parameters based on the session"; } leaf ret { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "RET watermark parameters based on the session"; } leaf total { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "Total watermark parameters based on the session"; } } // container session } // container watermark } // list video-group } // container isa list lag { key "lag-name"; description "Enter the lag list instance"; leaf lag-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:lag-interface; } description "LAG name"; } leaf encap-type { type enumeration { enum "null" { value 1; } enum "dot1q" { value 2; } enum "qinq" { value 10; } } sros-ext:immutable; description "Encapsulation type"; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Static MAC address for the LAG"; } leaf mode { type types-port:mode; sros-ext:immutable; default "network"; description "Port mode of the LAG"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of LAG"; } leaf dynamic-cost { type boolean; default "false"; description "Allow OSPF or ISIS costing of a LAG based on available aggregated, operational bandwidth"; } leaf lacp-xmit-interval { type enumeration { enum "slow" { value 1; } enum "fast" { value 2; } } default "fast"; description "Time for periodic transmission"; } leaf lacp-xmit-stdby { type boolean; default "true"; description "Allow LACP message transmission on standby links"; } leaf standby-signaling { type enumeration { enum "lacp" { value 1; } enum "power-off" { value 2; } } default "lacp"; description "Way of signaling a member port to the remote side"; } leaf hold-time-down { type uint32 { range "1..2000"; } units "deciseconds"; description "Delay time between detecting that a LAG is down and reporting to higher levels"; } leaf port-type { type enumeration { enum "standard" { value 1; } enum "hsmda" { value 3; } enum "hs" { value 4; } } default "standard"; description "Port type of the LAG"; } leaf port-weight-speed { type uint32 { range "1|10"; } units "gigabps"; description "Speed corresponding to a port weight unit"; } leaf lacp-mux-control { type enumeration { enum "coupled" { value 1; } enum "independent" { value 2; } } default "coupled"; description "Machine control to us in a LAG with LACP in active or passive modes"; } leaf monitor-oper-group { type types-sros:named-item; description "Operational group to monitor"; } leaf max-ports { type uint32 { range "32|64"; } sros-ext:immutable; default "32"; description "Indicates the number of lag-members allowed in the lag"; } container port-threshold { description "Enter the port-threshold context"; leaf value { type int32 { range "0..63"; } description "Number of operational links for the LAG at or below which the configured action is invoked"; } leaf action { type enumeration { enum "down" { value 1; } enum "dynamic-cost" { value 2; } enum "static-cost" { value 3; } } default "down"; description "Action to take if the number of operational links is equal or below a threshold level"; } leaf cost { type uint32 { range "1..16777215"; } description "Cost of the LAG if the action is equal to static-cost. The cost can be used by IGP such as OSPF and ISIS."; } } // container port-threshold container lacp { presence "Enter the 'lacp' context"; description "Enable the lacp context"; leaf mode { type enumeration { enum "passive" { value 1; } enum "active" { value 2; } } default "passive"; description "Mode in which LACP operates"; } leaf system-id { type yang:mac-address; default "00:00:00:00:00:00"; description "System identifier for the system"; } leaf system-priority { type int32 { range "0..65535"; } description "System priority value"; } leaf administrative-key { type int32 { range "1..65535"; } description "LACP key"; } } // container lacp container adaptive-load-balancing { presence "Enter the 'adaptive-load-balancing' context"; description "Enable the adaptive-load-balancing context"; leaf tolerance { type types-sros:percent { range "1..100"; } default "20"; description "Threshold that triggers link utilization optimization"; } } // container adaptive-load-balancing container access { description "Enter the access context"; leaf bandwidth { type uint64 { range "1..6400000000"; } units "bps"; description "Administrative bandwidth applied to this LAG"; } leaf booking-factor { type uint32 { range "1..1000"; } default "100"; description "Booking factor against the administrative bandwidth"; } leaf per-fp-ing-queuing { type boolean; default "false"; description "Per-fp-ing-queuing to be set if no port members exists in the LAG"; } leaf per-fp-egr-queuing { type boolean; default "false"; description "Per FP egress queuing"; } leaf per-fp-sap-instance { type boolean; default "false"; description "SAP instance allocation on a LAG"; } container adapt-qos { description "Enter the adapt-qos context"; leaf mode { type enumeration { enum "link" { value 1; } enum "distribute" { value 2; } enum "port-fair" { value 3; } } description "QoS adaptation mode"; } leaf include-egr-hash-cfg { type boolean; default "false"; description "Factor explicitly configured hashing into the egress buffering and rate distribution"; } } // container adapt-qos } // container access container selection-criteria { description "Enter the selection-criteria context"; leaf mode { type enumeration { enum "highest-count" { value 1; } enum "highest-weight" { value 2; } enum "best-port" { value 3; } } default "highest-count"; description "Criteria to select the active subgroup"; } leaf slave-to-partner { type boolean; default "false"; description "Use slave-to-partner for selection criteria"; } leaf subgroup-hold-time { type union { type int32 { range "0..2000"; } type enumeration { enum "infinite" { value -1; } } } units "deciseconds"; default "0"; description "Time to delay when switching to a newly selected active sub-group from the existing active sub-group"; } } // container selection-criteria container per-link-hash { presence "Enter the 'per-link-hash' context"; description "Enable the per-link-hash context"; container weighted { presence "Enter the 'weighted' context"; description "Enable the weighted context"; leaf auto-rebalance { type boolean; default "false"; description "Automatically rebalance existing SAPs, subscribers, or interfaces when new links are added to a LAG"; } } // container weighted } // container per-link-hash container weight-threshold { description "Enter the weight-threshold context"; leaf value { type int32 { range "0..63"; } description "Integer threshold number of operational links for the LAG"; } leaf action { type enumeration { enum "down" { value 1; } enum "dynamic-cost" { value 2; } enum "static-cost" { value 3; } } default "down"; description "Action to take if the number of active links in the LAG is at or below the threshold value"; } leaf cost { type uint32 { range "1..16777215"; } description "Cost of the LAG if the action is equal to static-cost. The cost can be used by IGP such as OSPF and ISIS."; } } // container weight-threshold container hash-weight-threshold { description "Enter the hash-weight-threshold context"; leaf value { type int32 { range "1..6400000"; } description "Threshold value."; } leaf action { type enumeration { enum "down" { value 1; } enum "dynamic-cost" { value 2; } enum "static-cost" { value 3; } } default "down"; description "Action to take."; } leaf cost { type uint32 { range "1..16777215"; } description "Cost of the LAG if the action is equal to static-cost. The cost can be used by IGP such as OSPF and ISIS."; } } // container hash-weight-threshold container bfd-liveness { description "Enter the bfd-liveness context"; leaf soft-reset-extension { type boolean; default "true"; description "Extend BFD timers during soft reset"; } container ipv4 { description "Enter the ipv4 context"; leaf bfd-on-distributing-only { type boolean; default "false"; description "Restrict micro-BFD sessions to links in LACP state distributing"; } leaf max-admin-down-time { type union { type int32 { range "0..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "0"; description "Maximum time to behave as if the micro-BFD session was up while the remote end is down"; } leaf max-setup-time { type union { type int32 { range "0..60000"; } type enumeration { enum "infinite" { value -1; } } } units "milliseconds"; default "infinite"; description "Maximum time to behave as if the micro-BFD session was up while it is actually still being set up"; } leaf multiplier { type uint32 { range "3..20"; } default "3"; description "Number of BFD messages to miss before the micro-BFD session goes down"; } leaf receive-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Receive timer for micro-BFD session over the associated LAG links"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of micro-BFD sessions for this address family"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Transmit timer for micro-BFD session over the associated LAG links"; } leaf local-ip-address { type types-sros:ipv4-unicast-address; description "BFD source address"; } leaf remote-ip-address { type types-sros:ipv4-unicast-address; description "BFD destination address"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf bfd-on-distributing-only { type boolean; default "false"; description "Restrict micro-BFD sessions to links in LACP state distributing"; } leaf max-admin-down-time { type union { type int32 { range "0..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "0"; description "Maximum time to behave as if the micro-BFD session was up while the remote end is down"; } leaf max-setup-time { type union { type int32 { range "0..60000"; } type enumeration { enum "infinite" { value -1; } } } units "milliseconds"; default "infinite"; description "Maximum time to behave as if the micro-BFD session was up while it is actually still being set up"; } leaf multiplier { type uint32 { range "3..20"; } default "3"; description "Number of BFD messages to miss before the micro-BFD session goes down"; } leaf receive-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Receive timer for micro-BFD session over the associated LAG links"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of micro-BFD sessions for this address family"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Transmit timer for micro-BFD session over the associated LAG links"; } leaf local-ip-address { type types-sros:ipv6-unicast-address; description "BFD source address"; } leaf remote-ip-address { type types-sros:ipv6-unicast-address; description "BFD destination address"; } } // container ipv6 } // container bfd-liveness container eth-cfm { description "Enter the eth-cfm context"; list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf vlan { type types-eth-cfm:vlan-id-or-none; sros-ext:immutable; default "none"; description "Unique VLAN ID for a specific VLAN"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf facility-fault { type boolean; default "false"; description "Allow the facility MEP to generate a network action"; } leaf-list ccm-tlv-ignore { type types-eth-cfm:ccm-tlv-ignore-type; max-elements 2; description "TLV to ignore on reception"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm list port { key "port-id"; description "Enter the port list instance"; leaf port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port; } description "Identifier to uniquely identify the port in the LAG"; } leaf priority { type uint32 { range "1..65535"; } default "32768"; description "Priority of the port in the LAG"; } leaf sub-group { type union { type uint32 { range "1..8"; } type enumeration { enum "auto-iom" { value -2; } enum "auto-mda" { value -1; } } } sros-ext:immutable; default "1"; description "Subgroup of the port in the LAG"; } leaf hash-weight { type union { type uint32 { range "1..100000"; } type enumeration { enum "port-speed" { value -1; } } } description "Flow hashing distribution between LAG ports"; } } // list port list link-map-profile { key "link-map-profile-id"; description "Enter the link-map-profile list instance"; leaf link-map-profile-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..64"; } } description "Link map profile to control LAG ports"; } leaf description { type types-sros:description; description "Text description"; } leaf failure-mode { type enumeration { enum "per-link-hash" { value 1; } enum "discard" { value 2; } } default "per-link-hash"; description "Failure mode of LAG link profile"; } list link { key "port-id"; description "Enter the link list instance"; leaf port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port; } description "Port associated with the link map profile"; } leaf port-type { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } sros-ext:immutable; description "Type of the associated port for this entry"; } } // list link } // list link-map-profile } // list lag container log { description "Enter the log context"; leaf event-damping { type boolean; default "true"; description "Allow event damping algorithm to suppress QoS or filter change events"; } list accounting-policy { key "policy-id"; description "Enter the accounting-policy list instance"; leaf policy-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:log-policy-id; } description "Accounting policy unique ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this policy"; } leaf description { type types-sros:description; description "Text description"; } leaf collection-interval { type int32 { range "1..120"; } units "minutes"; description "Accounting collection interval"; } leaf default { type boolean; default "false"; description "Default accounting policy for all objects that do not have an accounting policy"; } leaf include-system-info { type boolean; default "false"; description "Include system information in accounting policy records"; } leaf record { type types-log:accounting-record-type; sros-ext:immutable; description "Accounting record type that is forwarded to configured accounting file"; } leaf align { type boolean; default "false"; description "Align generation interval to absolute time"; } container custom-record { description "Enter the custom-record context"; leaf significant-change { type uint32 { range "0..max"; } description "Significant change required to generate the record"; } list override-counter { key "id"; description "Enter the override-counter list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Override counter ID"; } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container i-counters } // list override-counter list policer { key "id"; description "Enter the policer list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..63"; } } description "Specifies the identification of a custom-record policer."; } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in profile octets discarded count"; } leaf in-profile-octets-offered-count { type boolean; default "false"; description "Include the in profile octets offered count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in profile packets discarded count"; } leaf in-profile-packets-offered-count { type boolean; default "false"; description "Include the in profile packets offered count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out profile octets discarded count"; } leaf out-profile-octets-offered-count { type boolean; default "false"; description "Include the out profile octets offered count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out profile packets discarded count"; } leaf out-profile-packets-offered-count { type boolean; default "false"; description "Include the out profile packets offered count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out profile packets forwarded count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncoloured octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncoloured packets offered count"; } leaf exceed-profile-octets-discarded-count { type boolean; default "false"; description "Include the exceed profile octets discarded count"; } leaf exceed-profile-octets-forwarded-count { type boolean; default "false"; description "Include the exceed profile octets forwarded count"; } leaf exceed-profile-octets-offered-count { type boolean; default "false"; description "Include the exceed profile octets offered count"; } leaf exceed-profile-packets-discarded-count { type boolean; default "false"; description "Include the exceed profile packets discarded count"; } leaf exceed-profile-packets-forwarded-count { type boolean; default "false"; description "Include the exceed profile packets forwarded count"; } leaf exceed-profile-packets-offered-count { type boolean; default "false"; description "Include the exceed profile packets offered count"; } leaf in-plus-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-plus profile octets discarded count"; } leaf in-plus-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-plus profile octets forwarded count"; } leaf in-plus-profile-octets-offered-count { type boolean; default "false"; description "Include the in-plus profile octets offered count"; } leaf in-plus-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-plus profile packets discarded count"; } leaf in-plus-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-plus profile packets forwarded count"; } leaf in-plus-profile-packets-offered-count { type boolean; default "false"; description "Include the in-plus profile packets offered count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in profile octets discarded count"; } leaf in-profile-octets-offered-count { type boolean; default "false"; description "Include the in profile octets offered count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in profile packets discarded count"; } leaf in-profile-packets-offered-count { type boolean; default "false"; description "Include the in profile packets offered count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out profile octets discarded count"; } leaf out-profile-octets-offered-count { type boolean; default "false"; description "Include the out profile octets offered count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out profile packets discarded count"; } leaf out-profile-packets-offered-count { type boolean; default "false"; description "Include the out profile packets offered count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out profile packets forwarded count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncoloured octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncoloured packets offered count"; } } // container i-counters } // list policer list queue { key "id"; description "Enter the queue list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32"; } } description "Custom record queue ID"; } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } leaf high-octets-offered-count { type boolean; default "false"; description "Include the high octets offered count"; } leaf high-packets-offered-count { type boolean; default "false"; description "Include the high packets offered count"; } leaf low-octets-offered-count { type boolean; default "false"; description "Include the low octets offered count"; } leaf low-packets-offered-count { type boolean; default "false"; description "Include the low packets offered count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncolored octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncolored packets offered count"; } } // container i-counters } // list queue container ref-override-counter { description "Enter the ref-override-counter context"; choice counter { case id { leaf id { type uint32 { range "1..8"; } description "Referenced override counter ID"; } } case all { leaf all { type empty; description "All referenced override counters"; } } } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container i-counters } // container ref-override-counter container ref-policer { description "Enter the ref-policer context"; choice policer { case id { leaf id { type uint32 { range "1..63"; } description "Referenced policer ID"; } } case all { leaf all { type empty; description "This specifies all policer are referenced."; } } } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in profile octets discarded count"; } leaf in-profile-octets-offered-count { type boolean; default "false"; description "Include the in profile octets offered count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in profile packets discarded count"; } leaf in-profile-packets-offered-count { type boolean; default "false"; description "Include the in profile packets offered count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out profile octets discarded count"; } leaf out-profile-octets-offered-count { type boolean; default "false"; description "Include the out profile octets offered count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out profile packets discarded count"; } leaf out-profile-packets-offered-count { type boolean; default "false"; description "Include the out profile packets offered count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out profile packets forwarded count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncoloured octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncoloured packets offered count"; } leaf exceed-profile-octets-discarded-count { type boolean; default "false"; description "Include the exceed profile octets discarded count"; } leaf exceed-profile-octets-forwarded-count { type boolean; default "false"; description "Include the exceed profile octets forwarded count"; } leaf exceed-profile-octets-offered-count { type boolean; default "false"; description "Include the exceed profile octets offered count"; } leaf exceed-profile-packets-discarded-count { type boolean; default "false"; description "Include the exceed profile packets discarded count"; } leaf exceed-profile-packets-forwarded-count { type boolean; default "false"; description "Include the exceed profile packets forwarded count"; } leaf exceed-profile-packets-offered-count { type boolean; default "false"; description "Include the exceed profile packets offered count"; } leaf in-plus-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-plus profile octets discarded count"; } leaf in-plus-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-plus profile octets forwarded count"; } leaf in-plus-profile-octets-offered-count { type boolean; default "false"; description "Include the in-plus profile octets offered count"; } leaf in-plus-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-plus profile packets discarded count"; } leaf in-plus-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-plus profile packets forwarded count"; } leaf in-plus-profile-packets-offered-count { type boolean; default "false"; description "Include the in-plus profile packets offered count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in profile octets discarded count"; } leaf in-profile-octets-offered-count { type boolean; default "false"; description "Include the in profile octets offered count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in profile packets discarded count"; } leaf in-profile-packets-offered-count { type boolean; default "false"; description "Include the in profile packets offered count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out profile octets discarded count"; } leaf out-profile-octets-offered-count { type boolean; default "false"; description "Include the out profile octets offered count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out profile packets discarded count"; } leaf out-profile-packets-offered-count { type boolean; default "false"; description "Include the out profile packets offered count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out profile packets forwarded count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncoloured octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncoloured packets offered count"; } } // container i-counters } // container ref-policer container ref-queue { description "Enter the ref-queue context"; choice queue { case id { leaf id { type uint32 { range "1..32"; } description "Referenced queue ID"; } } case all { leaf all { type empty; description "All referenced queues"; } } } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } leaf high-octets-offered-count { type boolean; default "false"; description "Include the high octets offered count"; } leaf high-packets-offered-count { type boolean; default "false"; description "Include the high packets offered count"; } leaf low-octets-offered-count { type boolean; default "false"; description "Include the low octets offered count"; } leaf low-packets-offered-count { type boolean; default "false"; description "Include the low packets offered count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncolored octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncolored packets offered count"; } } // container i-counters } // container ref-queue } // container custom-record container destination { description "Enter the destination context"; choice destination { case file { leaf file { type int32 { range "1..99"; } sros-ext:immutable; description "Unique file identifier when creating a log or accounting file"; } } case null { leaf null { type empty; sros-ext:immutable; description "Destination not specified for records of an accounting policy."; } } } } // container destination } // list accounting-policy container app-route-notifications { description "Enter the app-route-notifications context"; leaf cold-start-wait { type uint32 { range "1..300"; } description "Time delay before notifying specific CPM applications for available route"; } leaf route-recovery-wait { type uint32 { range "1..100"; } description "Time delay before notifying specific CPM applications after route recovery or change"; } } // container app-route-notifications container log-events { description "Enter the log-events context"; list adp { key "event"; description "Enter the adp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:adp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list adp list application-assurance { key "event"; description "Enter the application-assurance list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:application-assurance-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list application-assurance list aps { key "event"; description "Enter the aps list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:aps-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list aps list atm { key "event"; description "Enter the atm list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:atm-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list atm list auto-prov { key "event"; description "Enter the auto-prov list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:auto-prov-events; } description "Events for auto-prov module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list auto-prov list bfd { key "event"; description "Enter the bfd list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:bfd-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list bfd list bgp { key "event"; description "Enter the bgp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:bgp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list bgp list bier { key "event"; description "Enter the bier list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:bier-events; } description "Events for bier module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list bier list calltrace { key "event"; description "Enter the calltrace list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:calltrace-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list calltrace list cflowd { key "event"; description "Enter the cflowd list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:cflowd-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list cflowd list chassis { key "event"; description "Enter the chassis list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:chassis-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list chassis list debug { key "event"; description "Enter the debug list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:debug-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list debug list dhcp { key "event"; description "Enter the dhcp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:dhcp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list dhcp list dhcps { key "event"; description "Enter the dhcps list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:dhcps-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list dhcps list diameter { key "event"; description "Enter the diameter list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:diameter-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list diameter list dot1x { key "event"; description "Enter the dot1x list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:dot1x-events; } description "Events for dynsvc module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list dot1x list dynsvc { key "event"; description "Enter the dynsvc list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:dynsvc-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list dynsvc list efm-oam { key "event"; description "Enter the efm-oam list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:efm-oam-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list efm-oam list elmi { key "event"; description "Enter the elmi list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:elmi-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list elmi list ering { key "event"; description "Enter the ering list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ethring-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list ering list eth-cfm { key "event"; description "Enter the eth-cfm list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ethcfm-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list eth-cfm list etun { key "event"; description "Enter the etun list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:etun-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list etun list filter { key "event"; description "Enter the filter list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:filter-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list filter list gmpls { key "event"; description "Enter the gmpls list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:gmpls-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list gmpls list gsmp { key "event"; description "Enter the gsmp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:gsmp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list gsmp list igh { key "event"; description "Enter the igh list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:igh-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list igh list igmp { key "event"; description "Enter the igmp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:igmp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list igmp list igmp-snooping { key "event"; description "Enter the igmp-snooping list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:igmp-snooping-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list igmp-snooping list ip { key "event"; description "Enter the ip list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ip-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list ip list ipsec { key "event"; description "Enter the ipsec list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ipsec-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list ipsec list isis { key "event"; description "Enter the isis list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:isis-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list isis list l2tp { key "event"; description "Enter the l2tp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:l2tp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list l2tp list lag { key "event"; description "Enter the lag list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:lag-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list lag list ldap { key "event"; description "Enter the ldap list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ldap-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list ldap list ldp { key "event"; description "Enter the ldp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ldp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list ldp list li { key "event"; description "Enter the li list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:li-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list li list lldp { key "event"; description "Enter the lldp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:lldp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list lldp list lmp { key "event"; description "Enter the lmp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:lmp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list lmp list logger { key "event"; description "Enter the logger list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:logger-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list logger list macsec { key "event"; description "Enter the macsec list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:macsec-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list macsec list mcpath { key "event"; description "Enter the mcpath list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mcpath-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list mcpath list mc-redundancy { key "event"; description "Enter the mc-redundancy list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mc-redundancy-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list mc-redundancy list mgmt-core { key "event"; description "Enter the mgmt-core list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mgmt-core-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list mgmt-core list mirror { key "event"; description "Enter the mirror list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mirror-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list mirror list mld { key "event"; description "Enter the mld list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mld-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list mld list mld-snooping { key "event"; description "Enter the mld-snooping list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mld-snooping-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list mld-snooping list mpls { key "event"; description "Enter the mpls list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mpls-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list mpls list mpls-tp { key "event"; description "Enter the mpls-tp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mpls-tp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list mpls-tp list msdp { key "event"; description "Enter the msdp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:msdp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list msdp list nat { key "event"; description "Enter the nat list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:nat-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list nat list ntp { key "event"; description "Enter the ntp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ntp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list ntp list oam { key "event"; description "Enter the oam list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:oam-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list oam list openflow { key "event"; description "Enter the openflow list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:openflow-events; } description "Events for openflow module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list openflow list ospf { key "event"; description "Enter the ospf list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ospf-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list ospf list pcap { key "event"; description "Enter the pcap list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:pcap-events; } description "Events for PCAP module"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list pcap list pim { key "event"; description "Enter the pim list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:pim-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list pim list pim-snooping { key "event"; description "Enter the pim-snooping list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:pim-snooping-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list pim-snooping list port { key "event"; description "Enter the port list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:port-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list port list ppp { key "event"; description "Enter the ppp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ppp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list ppp list pppoe { key "event"; description "Enter the pppoe list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:pppoe-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list pppoe list pppoe-clnt { key "event"; description "Enter the pppoe-clnt list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:pppoe-clnt-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list pppoe-clnt list ptp { key "event"; description "Enter the ptp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ptp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list ptp list python { key "event"; description "Enter the python list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:python-events; } description "Events for the PYTHON module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list python list radius { key "event"; description "Enter the radius list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:radius-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list radius list rip { key "event"; description "Enter the rip list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:rip-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list rip list ripng { key "event"; description "Enter the ripng list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ripng-events; } description "Events for RIPng module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list ripng list route-policy { key "event"; description "Enter the route-policy list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:route-policy-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list route-policy list rpki { key "event"; description "Enter the rpki list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:rpki-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list rpki list rsvp { key "event"; description "Enter the rsvp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:rsvp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list rsvp list satellite { key "event"; description "Enter the satellite list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:satellite-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list satellite list security { key "event"; description "Enter the security list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:security-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list security list sflow { key "event"; description "Enter the sflow list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:sflow-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list sflow list snmp { key "event"; description "Enter the snmp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:snmp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list snmp list stp { key "event"; description "Enter the stp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:stp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list stp list svcmgr { key "event"; description "Enter the svcmgr list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:svcmgr-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list svcmgr list system { key "event"; description "Enter the system list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:system-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list system list tls { key "event"; description "Enter the tls list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:tls-events; } description "Events for tls module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list tls list tree-sid { key "event"; description "Enter the tree-sid list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:treesid-events; } description "Events for tree_sid module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list tree-sid list user { key "event"; description "Enter the user list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:user-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list user list video { key "event"; description "Enter the video list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:video-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list video list vrrp { key "event"; description "Enter the vrrp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:vrrp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list vrrp list vrtr { key "event"; description "Enter the vrtr list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:vrtr-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list vrtr list wlan-gw { key "event"; description "Enter the wlan-gw list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:wlan-gw-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list wlan-gw list wpp { key "event"; description "Enter the wpp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:wpp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } } // list wpp } // container log-events container event-handling { description "Enter the event-handling context"; list handler { key "name"; max-elements 1500; description "Enter the handler list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "File ID to use when creating a log, or accounting file"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; max-elements 1500; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "Index of an event entry in parent EHS Event Handler"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf min-delay { type uint32 { range "1..604800"; } units "seconds"; description "Minimum delay between subsequent executions of the script policy"; } container script-policy { description "Enter the script-policy context"; leaf name { type types-sros:named-item; description "Name combined with value of owner to launch the script policy"; } leaf owner { type types-sros:named-item; description "Script policy owner"; } } // container script-policy } // list entry } // list handler } // container event-handling container event-trigger { description "Enter the event-trigger context"; list adp { key "event"; description "Enter the adp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:adp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list adp list application-assurance { key "event"; description "Enter the application-assurance list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:application-assurance-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list application-assurance list aps { key "event"; description "Enter the aps list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:aps-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list aps list atm { key "event"; description "Enter the atm list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:atm-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list atm list auto-prov { key "event"; description "Enter the auto-prov list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:auto-prov-events; } description "Events for auto-prov module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list auto-prov list bfd { key "event"; description "Enter the bfd list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:bfd-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list bfd list bgp { key "event"; description "Enter the bgp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:bgp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list bgp list bier { key "event"; description "Enter the bier list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:bier-events; } description "Events for bier module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list bier list calltrace { key "event"; description "Enter the calltrace list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:calltrace-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list calltrace list cflowd { key "event"; description "Enter the cflowd list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:cflowd-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list cflowd list chassis { key "event"; description "Enter the chassis list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:chassis-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list chassis list debug { key "event"; description "Enter the debug list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:debug-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list debug list dhcp { key "event"; description "Enter the dhcp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:dhcp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list dhcp list dhcps { key "event"; description "Enter the dhcps list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:dhcps-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list dhcps list diameter { key "event"; description "Enter the diameter list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:diameter-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list diameter list dynsvc { key "event"; description "Enter the dynsvc list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:dynsvc-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list dynsvc list efm-oam { key "event"; description "Enter the efm-oam list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:efm-oam-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list efm-oam list elmi { key "event"; description "Enter the elmi list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:elmi-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list elmi list ering { key "event"; description "Enter the ering list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ethring-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ering list eth-cfm { key "event"; description "Enter the eth-cfm list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ethcfm-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list eth-cfm list etun { key "event"; description "Enter the etun list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:etun-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list etun list filter { key "event"; description "Enter the filter list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:filter-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list filter list gmpls { key "event"; description "Enter the gmpls list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:gmpls-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list gmpls list gsmp { key "event"; description "Enter the gsmp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:gsmp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list gsmp list igh { key "event"; description "Enter the igh list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:igh-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list igh list igmp { key "event"; description "Enter the igmp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:igmp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list igmp list igmp-snooping { key "event"; description "Enter the igmp-snooping list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:igmp-snooping-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list igmp-snooping list ip { key "event"; description "Enter the ip list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ip-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ip list ipsec { key "event"; description "Enter the ipsec list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ipsec-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ipsec list isis { key "event"; description "Enter the isis list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:isis-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list isis list l2tp { key "event"; description "Enter the l2tp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:l2tp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list l2tp list lag { key "event"; description "Enter the lag list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:lag-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list lag list ldap { key "event"; description "Enter the ldap list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ldap-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ldap list ldp { key "event"; description "Enter the ldp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ldp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ldp list li { key "event"; description "Enter the li list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:li-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list li list lldp { key "event"; description "Enter the lldp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:lldp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list lldp list lmp { key "event"; description "Enter the lmp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:lmp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list lmp list logger { key "event"; description "Enter the logger list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:logger-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list logger list macsec { key "event"; description "Enter the macsec list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:macsec-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list macsec list mcpath { key "event"; description "Enter the mcpath list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mcpath-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mcpath list mc-redundancy { key "event"; description "Enter the mc-redundancy list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mc-redundancy-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mc-redundancy list mgmt-core { key "event"; description "Enter the mgmt-core list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mgmt-core-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mgmt-core list mirror { key "event"; description "Enter the mirror list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mirror-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mirror list mld { key "event"; description "Enter the mld list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mld-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mld list mld-snooping { key "event"; description "Enter the mld-snooping list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mld-snooping-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mld-snooping list mpls { key "event"; description "Enter the mpls list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mpls-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mpls list mpls-tp { key "event"; description "Enter the mpls-tp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:mpls-tp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mpls-tp list msdp { key "event"; description "Enter the msdp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:msdp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list msdp list nat { key "event"; description "Enter the nat list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:nat-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list nat list ntp { key "event"; description "Enter the ntp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ntp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ntp list oam { key "event"; description "Enter the oam list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:oam-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list oam list openflow { key "event"; description "Enter the openflow list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:openflow-events; } description "Events for openflow module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list openflow list ospf { key "event"; description "Enter the ospf list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ospf-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ospf list pcap { key "event"; description "Enter the pcap list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:pcap-events; } description "Events for PCAP module"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list pcap list pim { key "event"; description "Enter the pim list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:pim-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list pim list pim-snooping { key "event"; description "Enter the pim-snooping list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:pim-snooping-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list pim-snooping list port { key "event"; description "Enter the port list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:port-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list port list ppp { key "event"; description "Enter the ppp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ppp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ppp list pppoe { key "event"; description "Enter the pppoe list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:pppoe-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list pppoe list pppoe-clnt { key "event"; description "Enter the pppoe-clnt list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:pppoe-clnt-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list pppoe-clnt list ptp { key "event"; description "Enter the ptp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ptp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ptp list radius { key "event"; description "Enter the radius list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:radius-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list radius list rip { key "event"; description "Enter the rip list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:rip-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list rip list ripng { key "event"; description "Enter the ripng list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:ripng-events; } description "Events for RIPng module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ripng list route-policy { key "event"; description "Enter the route-policy list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:route-policy-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list route-policy list rpki { key "event"; description "Enter the rpki list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:rpki-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list rpki list rsvp { key "event"; description "Enter the rsvp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:rsvp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list rsvp list satellite { key "event"; description "Enter the satellite list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:satellite-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list satellite list security { key "event"; description "Enter the security list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:security-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list security list sflow { key "event"; description "Enter the sflow list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:sflow-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list sflow list snmp { key "event"; description "Enter the snmp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:snmp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list snmp list stp { key "event"; description "Enter the stp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:stp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list stp list svcmgr { key "event"; description "Enter the svcmgr list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:svcmgr-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list svcmgr list system { key "event"; description "Enter the system list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:system-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list system list tls { key "event"; description "Enter the tls list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:tls-events; } description "Events for tls module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list tls list tree-sid { key "event"; description "Enter the tree-sid list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:treesid-events; } description "Events for tree_sid module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list tree-sid list user { key "event"; description "Enter the user list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:user-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list user list video { key "event"; description "Enter the video list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:video-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list video list vrrp { key "event"; description "Enter the vrrp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:vrrp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list vrrp list vrtr { key "event"; description "Enter the vrtr list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:vrtr-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list vrtr list wlan-gw { key "event"; description "Enter the wlan-gw list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:wlan-gw-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list wlan-gw list wpp { key "event"; description "Enter the wpp list instance"; leaf event { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:wpp-events; } description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1500"; } } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type types-log:log-filter-name; description "Log filter for EHS event trigger entry"; } leaf handler { type types-sros:named-item; description "Event handler for EHS event trigger entry"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list wpp } // container event-trigger list file { key "file-id"; description "Enter the file list instance"; leaf file-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..99"; } } description "File ID when creating a log or accounting file"; } leaf description { type types-sros:description; description "Text description"; } leaf rollover { type int32 { range "5..10080"; } units "minutes"; default "1440"; description "Frequency at which a new log or accounting file is created"; } leaf retention { type int32 { range "1..500"; } units "hours"; default "12"; description "Minimum time that a file is retained on the media"; } container compact-flash-location { description "Enter the compact-flash-location context"; leaf primary { type types-log:compact-flash-drive; sros-ext:immutable; default "cf-unspecified"; description "Log file location"; } leaf backup { type types-log:compact-flash-drive; sros-ext:immutable; default "cf-unspecified"; description "Log file location"; } } // container compact-flash-location } // list file list filter { key "filter-name"; max-elements 1500; description "Enter the filter list instance"; leaf filter-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:log-filter-name; } description "The value of name uniquely identifies an event log filter"; } leaf description { type types-sros:description; description "Text description"; } leaf default-action { type types-log:filter-action; description "Default action for the event filter"; } list entry { status obsolete; key "entry-id"; description "Enter the entry list instance"; leaf entry-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..999"; } } description "Identification number for an event log filter parameter"; } leaf description { status obsolete; type types-sros:description; description "Text description"; } leaf action { status obsolete; type types-log:filter-action; description "Action for this event filter entry"; } container match { status obsolete; description "Enter the match context"; container application { status obsolete; description "Enter the application context"; choice application-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-log:application-obsolete; description "Application to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-log:application-obsolete; description "Application to be filtered out"; } } } } // container application container event { status obsolete; description "Enter the event context"; choice event-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type uint32 { range "1..max"; } description "Log event message to match"; } } case neq { status obsolete; leaf neq { status obsolete; type uint32 { range "1..max"; } description "Log event message to filter out"; } } case lt { status obsolete; leaf lt { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case lte { status obsolete; leaf lte { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gt { status obsolete; leaf gt { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gte { status obsolete; leaf gte { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } } } // container event container message { status obsolete; description "Enter the message context"; leaf regexp { status obsolete; type boolean; default "false"; description "String comparison to determine if the log event matches the value of pattern"; } choice message-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type string { length "1..400"; } description "Log event message to match"; } } case neq { status obsolete; leaf neq { status obsolete; type string { length "1..400"; } description "Log event message to be filtered out"; } } } } // container message container vrtr-name { status obsolete; description "Enter the vrtr-name context"; leaf regexp { status obsolete; type boolean; default "false"; description "String comparison to determine if the log event matches the value of router instance"; } choice vrtr-name-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-sros:named-item; description "Specifies the log event router context name to be matched."; } } case neq { status obsolete; leaf neq { status obsolete; type types-sros:named-item; description "Specifies the log event router context name to be filtered out."; } } } } // container vrtr-name container severity { status obsolete; description "Enter the severity context"; choice severity-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-log:severity-level; description "Log event severity level to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-log:severity-level; description "Log event severity level to filter out"; } } case lt { status obsolete; leaf lt { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case lte { status obsolete; leaf lte { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case gt { status obsolete; leaf gt { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case gte { status obsolete; leaf gte { status obsolete; type types-log:severity-level; description "Log event severity level"; } } } } // container severity container subject { status obsolete; description "Enter the subject context"; leaf regexp { status obsolete; type boolean; default "false"; description "String comparison to determine if the log event matches the value of subject"; } choice subject-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-sros:named-item; description "Log event subject string to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-sros:named-item; description "Log event subject string to filter out"; } } } } // container subject } // container match } // list entry list named-entry { key "entry-name"; max-elements 999; ordered-by user; description "Enter the named-entry list instance"; leaf entry-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:log-filter-entry-name; } description "The value of name uniquely identifies an event log filter entry"; } leaf description { type types-sros:description; description "Text description"; } leaf action { type types-log:filter-action; description "Action for this event filter entry"; } container match { description "Enter the match context"; container application { description "Enter the application context"; choice application-match { case eq { leaf eq { type types-log:application; description "Application to match"; } } case neq { leaf neq { type types-log:application; description "Application to be filtered out"; } } } } // container application container event { description "Enter the event context"; choice event-match { case eq { leaf eq { type uint32 { range "1..max"; } description "Log event message to match"; } } case neq { leaf neq { type uint32 { range "1..max"; } description "Log event message to filter out"; } } case lt { leaf lt { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case lte { leaf lte { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gt { leaf gt { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gte { leaf gte { type uint32 { range "1..max"; } description "Number of the log event to match"; } } } } // container event container message { description "Enter the message context"; leaf regexp { type boolean; default "false"; description "String comparison to determine if the log event matches the value of pattern"; } choice message-match { case eq { leaf eq { type string { length "1..400"; } description "Log event message to match"; } } case neq { leaf neq { type string { length "1..400"; } description "Log event message to be filtered out"; } } } } // container message container vrtr-name { description "Enter the vrtr-name context"; leaf regexp { type boolean; default "false"; description "String comparison to determine if the log event matches the value of router instance"; } choice vrtr-name-match { case eq { leaf eq { type types-sros:named-item; description "Specifies the log event router context name to be matched."; } } case neq { leaf neq { type types-sros:named-item; description "Specifies the log event router context name to be filtered out."; } } } } // container vrtr-name container severity { description "Enter the severity context"; choice severity-match { case eq { leaf eq { type types-log:severity-level; description "Log event severity level to match"; } } case neq { leaf neq { type types-log:severity-level; description "Log event severity level to filter out"; } } case lt { leaf lt { type types-log:severity-level; description "Log event severity level"; } } case lte { leaf lte { type types-log:severity-level; description "Log event severity level"; } } case gt { leaf gt { type types-log:severity-level; description "Log event severity level"; } } case gte { leaf gte { type types-log:severity-level; description "Log event severity level"; } } } } // container severity container subject { description "Enter the subject context"; leaf regexp { type boolean; default "false"; description "String comparison to determine if the log event matches the value of subject"; } choice subject-match { case eq { leaf eq { type types-sros:named-item; description "Log event subject string to match"; } } case neq { leaf neq { type types-sros:named-item; description "Log event subject string to filter out"; } } } } // container subject } // container match } // list named-entry } // list filter list log-id { key "name"; max-elements 30; description "Enter the log-id list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:log-name; } description "The value of name uniquely identifies an event stream log."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the log"; } leaf description { type types-sros:description; description "Text description"; } leaf netconf-stream { type types-sros:named-item; description "Destination NETCONF stream name"; } leaf time-format { type enumeration { enum "utc" { value 1; } enum "local" { value 2; } } default "utc"; description "Time zone displayed for log events"; } leaf python-policy { type types-sros:named-item; description "Python policy name"; } leaf filter { type types-log:log-filter-name; description "Filter for this log's source event stream to limit the event output in this log destination"; } container source { description "Enter the source context"; leaf main { type boolean; default "false"; description "Collect log events from the main event stream"; } leaf security { type boolean; default "false"; description "Collect log events from the security event stream"; } leaf change { type boolean; default "false"; description "Collect log events from change event stream"; } leaf debug { type boolean; default "false"; description "Collect log events from the debug event stream"; } } // container source container destination { description "Enter the destination context"; choice log-id-destination { case file { leaf file { type int32 { range "1..99"; } sros-ext:immutable; description "Log events to send to the specified file ID"; } } case syslog { leaf syslog { type types-log:log-syslog-name; sros-ext:immutable; description "Log events to send to the specified syslog ID"; } } case memory { container memory { presence "Enter the 'memory' context"; description "Enable the memory context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this memory log"; } } // container memory } case snmp { container snmp { presence "Enter the 'snmp' context"; description "Enable the snmp context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this SNMP log"; } } // container snmp } case console { leaf console { type empty; sros-ext:immutable; description "Log events to send to the system console port"; } } case netconf { container netconf { presence "Enter the 'netconf' context"; description "Enable the netconf context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this NETCONF log"; } } // container netconf } case cli { container cli { presence "Enter the 'cli' context"; description "Enable the cli context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this CLI log"; } } // container cli } } } // container destination } // list log-id container route-preference { description "Enter the route-preference context"; leaf primary { type enumeration { enum "inband" { value 1; } enum "outband" { value 2; } } default "outband"; description "Primary routing preference for traffic that is generated for SNMP notifications and syslog messages"; } leaf secondary { type enumeration { enum "inband" { value 1; } enum "outband" { value 2; } enum "none" { value 3; } } default "inband"; description "Secondary routing preference for traffic that is generated for SNMP notifications and syslog messages"; } } // container route-preference container services-all-events { description "Enter the services-all-events context"; list service { key "service-name"; description "Add a list entry for service"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } } // list service } // container services-all-events list snmp-trap-group { key "log-name"; max-elements 15; description "Enter the snmp-trap-group list instance"; leaf log-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:snmp-trap-group-name; } description "SNMP notification group to be associated with the event log."; } leaf description { type types-sros:description; description "Text description"; } leaf log-id { type int32 { range "1..100"; } sros-ext:immutable; description "SNMP notification group associated with the event log"; } list trap-target { key "name"; max-elements 25; description "Enter the trap-target list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..28"; } } description "Name for an SNMP notification destination within the SNMP notification group"; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; description "IP address of the trap receiver"; } leaf port { type types-qos:tcp-udp-match-port; default "162"; description "UDP port number to send messages to this remote SNMP notification collector"; } leaf version { type enumeration { enum "snmpv1" { value 0; } enum "snmpv2c" { value 1; } enum "snmpv3" { value 3; } } default "snmpv3"; description "SNMP version to format notification messages sent to this SNMP notification collector"; } leaf notify-community { type string { length "1..31"; } description "SNMPv1 or SNMPv2c community name string, or SNMPv3 security name, for sending a notification"; } leaf security-level { type enumeration { enum "no-auth-no-privacy" { value 1; } enum "auth-no-privacy" { value 2; } enum "privacy" { value 3; } } default "no-auth-no-privacy"; description "Security level at which SNMP notification messages are sent to SNMP notification collector"; } leaf replay { type boolean; default "false"; description "Retransmit missed notifications"; } } // list trap-target } // list snmp-trap-group list syslog { key "syslog-name"; max-elements 10; description "Enter the syslog list instance"; leaf syslog-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:log-syslog-name; } description "Unique arbitrary identifier for this syslog collector target."; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; description "Target syslog host address"; } leaf facility { type enumeration { enum "kernel" { value 0; } enum "user" { value 1; } enum "mail" { value 2; } enum "systemd" { value 3; } enum "auth" { value 4; } enum "syslogd" { value 5; } enum "printer" { value 6; } enum "netnews" { value 7; } enum "uucp" { value 8; } enum "cron" { value 9; } enum "authpriv" { value 10; } enum "ftp" { value 11; } enum "ntp" { value 12; } enum "logaudit" { value 13; } enum "logalert" { value 14; } enum "cron2" { value 15; } enum "local0" { value 16; } enum "local1" { value 17; } enum "local2" { value 18; } enum "local3" { value 19; } enum "local4" { value 20; } enum "local5" { value 21; } enum "local6" { value 22; } enum "local7" { value 23; } } default "local7"; description "Facility code for messages"; } leaf severity { type enumeration { enum "emergency" { value 0; } enum "alert" { value 1; } enum "critical" { value 2; } enum "error" { value 3; } enum "warning" { value 4; } enum "notice" { value 5; } enum "info" { value 6; } enum "debug" { value 7; } } default "info"; description "Severity level threshold for the syslog message"; } leaf log-prefix { type union { type enumeration { enum "no-prefix" { value -1; } } type string { length "1..32"; pattern "([!-9;<>-~])+" { error-message "String must contain only printable characters between 33 - 126 ASCII except ':' and '='"; } } } default "TMNX"; description "String that is prepended to every log message sent to this target syslog host"; } leaf port { type types-qos:tcp-udp-match-port; default "514"; description "UDP port to generate syslog messages"; } } // list syslog container throttle-rate { description "Enter the throttle-rate context"; leaf limit { type uint32 { range "1..20000"; } default "2000"; description "Number of log events within the throttle interval"; } leaf interval { type uint32 { range "1..1200"; } default "1"; description "Duration of an event throttling interval"; } } // container throttle-rate } // container log container macsec { description "Enter the macsec context"; list connectivity-association { key "ca-name"; description "Enter the connectivity-association list instance"; leaf ca-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "Connectivity association name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this CA"; } leaf description { type string { length "1..80"; } description "Text description"; } leaf replay-window-size { type uint32 { range "0..4294967294"; } default "0"; description "Size of the replay protection window"; } leaf replay-protection { type boolean; default "false"; description "Discard packet that is not within the replay window size"; } leaf macsec-encrypt { type boolean; default "true"; description "Encrypt all PDUs and authenticate (ICV payload)"; } leaf clear-tag-mode { type enumeration { enum "none" { value 0; } enum "single-tag" { value 1; } enum "dual-tag" { value 2; } } default "none"; description "Clear tag mode"; } leaf encryption-offset { type uint32 { range "0|30|50"; } default "0"; description "Offset of the encryption in MACsec packet"; } leaf cipher-suite { type enumeration { enum "gcm-aes-128" { value 1; } enum "gcm-aes-256" { value 2; } enum "gcm-aes-xpn-128" { value 3; } enum "gcm-aes-xpn-256" { value 4; } } default "gcm-aes-128"; description "Datapath encryption protocol"; } leaf delay-protection { type boolean; default "false"; description "Enable delay protection."; } container static-cak { description "Enter the static-cak context"; leaf active-psk { type uint32 { range "1..2"; } default "1"; description "Value of the pre-shared-key (PSK)"; } leaf mka-hello-interval { type enumeration { enum "1" { value 1; } enum "2" { value 2; } enum "3" { value 3; } enum "4" { value 4; } enum "5" { value 5; } enum "6" { value 6; } enum "500ms" { value 500; } } default "2"; description "MKA hello interval"; } leaf mka-key-server-priority { type uint32 { range "0..255"; } default "16"; description "Key server priority used by the MKA protocol"; } list pre-shared-key { key "psk-id"; max-elements 2; description "Enter the pre-shared-key list instance"; leaf psk-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2"; } } description "Value of the pre-shared-key (PSK)"; } leaf encryption-type { type enumeration { enum "aes-128-cmac" { value 1; } enum "aes-256-cmac" { value 2; } } description "Encryption for authentication of the MKA packet"; } leaf cak { type types-sros:encrypted-leaf-hex-without-prefix { length "1..71"; } description "Connectivity association key (CAK) for a pre-shared key"; } leaf cak-name { type string { length "1..64"; pattern "(([0-9a-fA-F])([0-9a-fA-F])){1,32}" { error-message "cak-name must be an even length hex string up to 64 characters."; } } description "Connectivity Association Key (CAK) name for the PSK"; } } // list pre-shared-key } // container static-cak } // list connectivity-association list mac-policy { key "mac-policy-id"; description "Enter the mac-policy list instance"; leaf mac-policy-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32; } description "The ID of the mac policy."; } list destination-mac-address { key "dest-mac-addr"; max-elements 5; description "Add a list entry for destination-mac-address"; leaf dest-mac-addr { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type yang:mac-address; } description "The destination mac address to be added to the policy."; } } // list destination-mac-address } // list mac-policy } // container macsec container mcac { description "Enter the mcac context"; list interface-policy { key "policy-name"; description "Enter the interface-policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "Policy name for multicast CAC interface"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the multicast CAC interface policy"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // list interface-policy list policy { key "policy-name"; description "Enter the policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "Multicast CAC policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf default-action { type types-mcast-cac:policy-action; default "discard"; description "Default action for this MCAC policy"; } list bundle { key "bundle-name"; max-elements 64; description "Enter the bundle list instance"; leaf bundle-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "Name for the Multicast CAC policy bundle"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the bundle"; } leaf description { type types-sros:description; description "Text description"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "1..4294967295"; } default "100"; description "Maximum bandwidth for this bundle"; } list channel { key "start end source"; description "Enter the channel list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "Beginning multicast IP address"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "Ending multicast IP address"; } leaf source { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "Source prefix"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "10..10000000"; } default "10"; description "Bandwidth required by this channel"; } leaf priority-class { type enumeration { enum "low" { value 1; } enum "high" { value 2; } } default "low"; description "Classification of channels used in the algorithm when LAG ports change state"; } leaf type { type types-mcast-cac:channel-type; default "optional"; description "Channel type to be either mandatory or optional"; } } // list channel container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-mcast-cac:constraints-level; } description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } description "Bandwidth available for this level"; } } // list level list lag-port-down { key "lag-name number-down"; description "Enter the lag-port-down list instance"; leaf lag-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:lag-interface; } description "LAG name"; } leaf number-down { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..64"; } } description "Number of lag ports that are down."; } leaf level { type types-mcast-cac:constraints-level; description "Level ID to associate with number of down LAG ports"; } } // list lag-port-down } // container mc-constraints } // list bundle } // list policy } // container mcac container mirror { description "Enter the mirror context"; list mirror-dest { key "service-name"; max-elements 255; description "Enter the mirror-dest list instance"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf type { type types-services:mirror-type; sros-ext:immutable; default "ether"; description "Mirror type information"; } leaf fc { type types-sros:fc-name; default "be"; description "Forwarding class for destination traffic"; } leaf slice-size { type uint32 { range "0|128..9216"; } default "0"; description "Maximum size of a mirrored frame that can be transmitted to the mirror destination"; } leaf include-port-id { type boolean; default "false"; description "Include port ID of the system in the packet"; } leaf sampling-rate { type uint32 { range "256..10000"; } description "Sampling rate"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } list endpoint { key "name"; max-elements 2; description "Enter the endpoint list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service endpoint name"; } leaf description { type types-sros:description; description "Text description"; } leaf revert-time { type types-services:revert-time; default "immediate"; description "Time before reverting back to primary spoke SDP defined after failing in backup spoke SDP"; } } // list endpoint list sap { key "sap-id"; max-elements 1; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier"; } leaf endpoint { type types-sros:named-item; description "Configure name of the service endpoint."; } container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Port redirect queue-group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Port queue-group instance"; } } // container port-redirect-group } // container sap-egress } // container qos container ip-mirror { description "Enter the ip-mirror context"; container mac { description "Enter the mac context"; leaf source { type types-sros:mac-unicast-address; description "Source MAC address."; } leaf destination { type yang:mac-address; description "Destination MAC address."; } } // container mac } // container ip-mirror } // container egress } // list sap container remote-source { presence "Enter the 'remote-source' context"; description "Enable the remote-source context"; list far-end { key "far-end-addr"; description "Enter the far-end list instance"; leaf far-end-addr { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Far end IP address"; } leaf vc-id { type uint32 { range "1..max"; } description "Virtual circuit identifier associated with the remote source"; } leaf icb { type boolean; default "false"; description "Remote source as an inter-chassis backup"; } choice ingress-label { default "label-signaling"; case label-signaling { leaf label-signaling { type enumeration { enum "tldp" { value 2; } } default "tldp"; description "Protocol to obtain the ingress labels"; } } case ing-vc-label { leaf ing-vc-label { type uint32 { range "32..18431"; } description "Ingress virtual circuit label"; } } } } // list far-end list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this Service SDP binding"; } leaf control-word { type boolean; default "false"; description "Enable the PW control word on spoke SDPs"; } container ingress { description "Enter the ingress context"; leaf vc-label { type uint32 { range "32..18431"; } description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container l2tpv3 { description "Enter the l2tpv3 context"; container cookie { description "Enter the cookie context"; leaf cookie1 { type types-services:cookie-value; description "Value of cookie-1 for the tunnel"; } leaf cookie2 { type types-services:cookie-value; description "Value of cookie-1 for the tunnel"; } } // container cookie } // container l2tpv3 } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } } // container egress container endpoint { description "Enter the endpoint context"; leaf name { type types-sros:named-item; description "Name of endpoint where this SDP bind is attached"; } leaf icb { type boolean; default "false"; description "Bind SDP as type Inter-Chassis Backup (ICB)"; } } // container endpoint } // list spoke-sdp } // container remote-source list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this Service SDP binding"; } leaf control-word { type boolean; default "false"; description "Enable the PW control word on spoke SDPs"; } container ingress { description "Enter the ingress context"; leaf vc-label { type uint32 { range "32..18431"; } description "Static MPLS VC label used by the far end device to send packets through this SDP"; } } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container l2tpv3 { description "Enter the l2tpv3 context"; leaf cookie { type types-services:cookie-value; description "Cookie parameters"; } } // container l2tpv3 } // container egress container endpoint { description "Enter the endpoint context"; leaf name { type types-sros:named-item; description "Name of endpoint where this SDP bind is attached"; } leaf precedence { type types-services:sdp-precedence; default "4"; description "Precedence of this SDP bind when there are multiple SDP binds attached to one service endpoint"; } leaf icb { type boolean; default "false"; description "Bind SDP as type Inter-Chassis Backup (ICB)"; } } // container endpoint } // list spoke-sdp container encap { description "Enter the encap context"; container layer-3-encap { presence "Enter the 'layer-3-encap' context"; description "Enable the layer-3-encap context"; leaf header-type { type enumeration { enum "ip-udp-shim" { value 1; } enum "ip-gre" { value 2; } enum "ip-udp-shim-sampled" { value 4; } } sros-ext:immutable; description "Header for the Layer 3 encapsulation"; } leaf direction-bit { type boolean; default "false"; description "Highest bit in Interception ID of shim header to show direction of mirrored traffic flow"; } leaf router-instance { type string; default "Base"; description "Router instance to use with routed encapsulation"; } container gateway { presence "Enter the 'gateway' context"; description "Enable the gateway context"; container ip-address { description "Enter the ip-address context"; leaf source { type types-sros:ipv4-unicast-address; description "IPv4 source address for the gateway"; } leaf destination { type types-sros:ipv4-unicast-address; description "IPv4 destination address for the gateway"; } } // container ip-address container udp-port { description "Enter the udp-port context"; leaf source { type types-sros:tcp-udp-port; default "0"; description "UDP source port with this gateway"; } leaf destination { type types-sros:tcp-udp-port; default "0"; description "UDP destination port to use with this gateway"; } } // container udp-port } // container gateway } // container layer-3-encap } // container encap list pcap { key "session-name"; max-elements 1; description "Enter the pcap list instance"; leaf session-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Packet Capture (PCAP) session name"; } leaf file-url { type types-sros:ts-url; description "URL and file name for packet capture transfer"; } } // list pcap } // list mirror-dest list mirror-source { key "service-name"; description "Enter the mirror-source list instance"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Enable/disable mirror service."; } list port { key "port-id"; description "Enter the port list instance"; leaf port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:mirror-source-port-lag-key; } description "Port identifier."; } leaf ingress { type boolean; default "false"; description "Whether ingress packets will be mirrored or not."; } leaf egress { type boolean; default "false"; description "Whether egress packets will be mirrored or not."; } } // list port list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier."; } leaf ingress { type boolean; default "false"; description "Whether ingress packets will be mirrored or not."; } leaf egress { type boolean; default "false"; description "Whether egress packets will be mirrored or not."; } } // list sap list ip-filter { key "filter-name"; description "Enter the ip-filter list instance"; leaf filter-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "IP Filter name"; } list entry { key "entry-id"; min-elements 1; description "Add a list entry for entry"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2097151"; } } description "IP Filter entry identifier"; } } // list entry } // list ip-filter list ipv6-filter { key "filter-name"; description "Enter the ipv6-filter list instance"; leaf filter-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "IPv6 Filter name"; } list entry { key "entry-id"; min-elements 1; description "Add a list entry for entry"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2097151"; } } description "IPv6 Filter entry identifier"; } } // list entry } // list ipv6-filter list mac-filter { key "filter-name"; description "Enter the mac-filter list instance"; leaf filter-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } } description "MAC Filter name"; } list entry { key "entry-id"; min-elements 1; description "Add a list entry for entry"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2097151"; } } description "MAC Filter entry identifier"; } } // list entry } // list mac-filter list subscriber { key "subscriber-id"; description "Enter the subscriber list instance"; leaf subscriber-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:subscriber-id; } description "Subscriber Identifier"; } leaf-list fc { type enumeration { enum "be" { value 0; } enum "l2" { value 1; } enum "af" { value 2; } enum "l1" { value 3; } enum "h2" { value 4; } enum "ef" { value 5; } enum "h1" { value 6; } enum "nc" { value 7; } } max-elements 8; description "The forwarding classes traffic which should be mirrored"; } leaf ingress { type boolean; default "false"; description "Whether ingress packets will be mirrored or not."; } leaf egress { type boolean; default "false"; description "Whether egress packets will be mirrored or not."; } leaf host-type { type enumeration { enum "ipoe" { value 2; } enum "ppp" { value 3; } } description "The host type to be mirrored."; } leaf ip-family { type enumeration { enum "ipv4" { value 2; } enum "ipv6" { value 3; } } description "The family of IP flows to be monitored for an IPoE type of host."; } choice host-identification { case sap-id { leaf sap-id { type types-sros:sap; description "Subscriber SAP identifier"; } leaf mac-address { type yang:mac-address; description "The MAC address to be used to match the packets for the subscriber on the mirror source."; } leaf ip-address { type types-sros:ipv4-address; description "The IP address of the remote source or the far-end ESR which is allowed to be a source of packets."; } } case sla-profile { leaf sla-profile { type types-sros:named-item; description "The SLA profile Name"; } } } } // list subscriber } // list mirror-source } // container mirror container multicast-management { description "Enter the multicast-management context"; list multicast-info-policy { key "policy-name"; max-elements 32; description "Enter the multicast-info-policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Multicast CAC policy name"; } leaf description { type types-sros:description; description "Text description"; } list bundle { key "bundle-name"; max-elements 32; description "Enter the bundle list instance"; leaf bundle-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Bundle name for the multicast info policy"; } leaf admin-bw { type uint32 { range "1..40000000"; } units "kilobps"; description "Administrative bandwidth"; } leaf cong-priority-threshold { type uint32 { range "0..7"; } default "4"; description "Preference level threshold where records change from low to high congestion priority"; } leaf description { type types-sros:description; description "Text description"; } leaf ecmp-opt-threshold { type uint32 { range "0..7"; } default "7"; description "ECMP threshold"; } leaf explicit-sf-path { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } description "Explicit ingress switch fabric multicast path that is assigned to a multicast channel"; } leaf keepalive-override { type uint32 { range "10..86000"; } units "seconds"; description "Keepalive timer override"; } leaf preference { type uint32 { range "1..7"; } description "Relative preference level for multicast channels"; } container bw-activity { description "Enter the bw-activity context"; leaf bw-activity-type { type enumeration { enum "use-admin-bw" { value 1; } enum "dynamic" { value 2; } } default "dynamic"; description "Bandwidth required by a multicast channel"; } leaf black-hole-rate { type uint32 { range "1..40000000"; } units "kilobps"; description "Rate at which a channel is placed in the black-hole state"; } leaf falling-delay { type uint32 { range "10..3600"; } units "seconds"; default "30"; description "Falling delay threshold to hold on to the previous highest bandwidth until the delay time expires"; } } // container bw-activity container primary-tunnel-interface { description "Enter the primary-tunnel-interface context"; leaf sender { type types-sros:ipv4-address; description "Bundle to assign in multicast info policy and channels to receive from primary tunnel interface"; } choice p2mp { case rsvp-p2mp { leaf rsvp-p2mp { type types-sros:named-item; description "Name of P2MP for LDP P2MP"; } } case ldp-p2mp { leaf ldp-p2mp { type uint32 { range "1..4294967295"; } description "Identifier for signaling mLDP P2MP LSP"; } } } } // container primary-tunnel-interface container video { description "Enter the video context"; leaf fcc-channel-type { type types-mcast-mgmt:channel-type; description "Channel type for the bundle or channel"; } leaf fcc-min-duration { type uint32 { range "300..8000"; } units "milliseconds"; default "300"; description "Minimum duration of the FCC burst"; } leaf fcc-server { type boolean; default "false"; description "Enable FCC server for a multicast bundle"; } leaf local-fcc-port { type uint32 { range "1024..5999|6251..65535"; } default "4098"; description "Local port for FCC requests"; } leaf local-rt-port { type uint32 { range "1024..5999|6251..65535"; } default "4096"; description "Local port for RT requests"; } leaf local-rt-server { type boolean; default "false"; description "Enable local retransmission server capability"; } leaf reorder-audio { type uint32 { range "100..1000"; } units "milliseconds"; description "Time by which the audio packets are reordered in the ad stream"; } leaf rt-buffer-size { type uint32 { range "300..8000"; } units "milliseconds"; default "300"; description "Buffer size to store channel packets"; } leaf video-group { type uint32 { range "1..4"; } description "Video group for this bundle"; } container rt-server { presence "Enter the 'rt-server' context"; description "Enable the rt-server context"; leaf ip-address { type types-sros:ipv4-unicast-address; description "RT server IP address"; } leaf port { type uint32 { range "1024..5999|6251..65535"; } description "RT server port number"; } } // container rt-server container stream-selection { description "Enter the stream-selection context"; leaf source1 { type types-sros:ipv4-address; description "Primary source IP address"; } leaf intf1 { type types-sros:named-item; description "Primary interface"; } leaf source2 { type types-sros:ipv4-address; description "Secondary source IP address"; } leaf intf2 { type types-sros:named-item; description "Secondary interface"; } } // container stream-selection container analyzer { presence "Enter the 'analyzer' context"; description "Enable the analyzer context"; leaf description { type types-sros:description; description "Text description"; } container alarms { description "Enter the alarms context"; leaf cc-error { type boolean; default "false"; description "Check the continuity counter (Cc)"; } leaf non-vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "PID that is checked within the specified interval"; } leaf pat-syntax { type boolean; default "false"; description "Check for PAT syntax errors"; } leaf pid-pmt-unref { type boolean; default "false"; description "Check for unreferenced PIDs in the PMT"; } leaf pmt-syntax { type boolean; default "false"; description "Check for PMT syntax errors"; } leaf tei-set { type boolean; default "false"; description "Check for TEI set errors"; } leaf ts-sync-loss { type boolean; default "false"; description "Check for synchronization loss errors"; } leaf vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "VID PID that is checked within the specified time interval"; } container pat-repetition { presence "Enter the 'pat-repetition' context"; description "Enable the pat-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PATs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PATs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PATs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pat-repetition container pcr-repetition { presence "Enter the 'pcr-repetition' context"; description "Enable the pcr-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PCRs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PCRs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PCRs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pcr-repetition container pmt-repetition { presence "Enter the 'pmt-repetition' context"; description "Enable the pmt-repetition context"; leaf tnc { type uint32 { range "100..4800"; } units "milliseconds"; default "400"; description "Time between two consecutive PMTs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..4900"; } units "milliseconds"; default "800"; description "Time between two consecutive PMTs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..5000"; } units "milliseconds"; default "2000"; description "Time between two consecutive PMTs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pmt-repetition container report-alarm { description "Enter the report-alarm context"; leaf severity { type enumeration { enum "tnc" { value 1; } enum "qos" { value 2; } enum "poa" { value 3; } } description "Keyword for the type of alarm"; } } // container report-alarm } // container alarms } // container analyzer } // container video list channel { key "start end"; description "Enter the channel list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-multicast-address; } description "Start IP address for a channel"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-multicast-address; } description "Ending IP address for a channel"; } leaf admin-bw { type uint32 { range "1..40000000"; } units "kilobps"; description "Administrative bandwidth"; } leaf explicit-sf-path { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } description "Explicit ingress switch fabric multicast path that is assigned to a multicast channel"; } leaf keepalive-override { type uint32 { range "10..86000"; } units "seconds"; description "Keepalive timer override"; } leaf preference { type uint32 { range "1..7"; } description "Relative preference level for multicast channels"; } container bw-activity { description "Enter the bw-activity context"; leaf bw-activity-type { type enumeration { enum "use-admin-bw" { value 1; } enum "dynamic" { value 2; } } description "Bandwidth required by a multicast channel"; } leaf black-hole-rate { type uint32 { range "0..40000000"; } units "kilobps"; default "0"; description "Rate at which a channel is placed in the black-hole state"; } leaf falling-delay { type uint32 { range "10..3600"; } units "seconds"; description "Falling delay threshold to hold on to the previous highest bandwidth until the delay time expires"; } } // container bw-activity container primary-tunnel-interface { description "Enter the primary-tunnel-interface context"; leaf sender { type types-sros:ipv4-address; description "Bundle to assign in multicast info policy and channels to receive from primary tunnel interface"; } choice p2mp { case rsvp-p2mp { leaf rsvp-p2mp { type types-sros:named-item; description "Name of P2MP for LDP P2MP"; } } case ldp-p2mp { leaf ldp-p2mp { type uint32 { range "1..4294967295"; } description "Identifier for signaling mLDP P2MP LSP"; } } } } // container primary-tunnel-interface container video { description "Enter the video context"; leaf fcc-channel-type { type types-mcast-mgmt:channel-type-with-inherit; description "Channel type for the bundle or channel"; } leaf fcc-min-duration { type uint32 { range "300..8000"; } units "milliseconds"; description "Minimum duration of the FCC burst"; } leaf fcc-server { type types-sros:bool-with-inherit; description "Value to override parent value of FCC server"; } leaf local-rt-server { type types-sros:bool-with-inherit; description "Value to override parent value of local RT server"; } leaf reorder-audio { type uint32 { range "100..1000"; } units "milliseconds"; description "Time by which the audio packets are reordered in the ad stream"; } leaf rt-buffer-size { type uint32 { range "300..8000"; } units "milliseconds"; default "300"; description "Buffer size to store channel packets"; } leaf video-group { type union { type uint32 { range "1..4"; } type enumeration { enum "none" { value 0; } } } description "Identifier for this video group"; } container rt-server { description "Enter the rt-server context"; leaf rt-state { type types-sros:bool-with-inherit; description "Specifies the value which will override parent value of RT server state."; } leaf ip-address { type types-sros:ipv4-unicast-address; description "RT server IP address."; } leaf port { type uint32 { range "1024..5999|6251..65535"; } description "RT server port number."; } } // container rt-server container stream-selection { description "Enter the stream-selection context"; leaf source1 { type types-sros:ipv4-address; description "Primary source IP address"; } leaf intf1 { type types-sros:named-item; description "Primary interface"; } leaf source2 { type types-sros:ipv4-address; description "Secondary source IP address"; } leaf intf2 { type types-sros:named-item; description "Secondary interface"; } } // container stream-selection container analyzer { presence "Enter the 'analyzer' context"; description "Enable the analyzer context"; leaf description { type types-sros:description; description "Text description"; } container alarms { description "Enter the alarms context"; leaf cc-error { type boolean; default "false"; description "Check the continuity counter (Cc)"; } leaf non-vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "PID that is checked within the specified interval"; } leaf pat-syntax { type boolean; default "false"; description "Check for PAT syntax errors"; } leaf pid-pmt-unref { type boolean; default "false"; description "Check for unreferenced PIDs in the PMT"; } leaf pmt-syntax { type boolean; default "false"; description "Check for PMT syntax errors"; } leaf tei-set { type boolean; default "false"; description "Check for TEI set errors"; } leaf ts-sync-loss { type boolean; default "false"; description "Check for synchronization loss errors"; } leaf vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "VID PID that is checked within the specified time interval"; } container pat-repetition { presence "Enter the 'pat-repetition' context"; description "Enable the pat-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PATs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PATs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PATs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pat-repetition container pcr-repetition { presence "Enter the 'pcr-repetition' context"; description "Enable the pcr-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PCRs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PCRs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PCRs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pcr-repetition container pmt-repetition { presence "Enter the 'pmt-repetition' context"; description "Enable the pmt-repetition context"; leaf tnc { type uint32 { range "100..4800"; } units "milliseconds"; default "400"; description "Time between two consecutive PMTs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..4900"; } units "milliseconds"; default "800"; description "Time between two consecutive PMTs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..5000"; } units "milliseconds"; default "2000"; description "Time between two consecutive PMTs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pmt-repetition container report-alarm { description "Enter the report-alarm context"; leaf severity { type enumeration { enum "tnc" { value 1; } enum "qos" { value 2; } enum "poa" { value 3; } } description "Keyword for the type of alarm"; } } // container report-alarm } // container alarms } // container analyzer } // container video list source-override { key "ip-address"; description "Enter the source-override list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address for source override"; } leaf admin-bw { type uint32 { range "1..40000000"; } units "kilobps"; description "Administrative bandwidth"; } leaf explicit-sf-path { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } description "Explicit ingress switch fabric multicast path that is assigned to a multicast channel"; } leaf keepalive-override { type uint32 { range "10..86000"; } units "seconds"; description "Keepalive timer override"; } leaf preference { type uint32 { range "1..7"; } description "Relative preference level for multicast channels"; } container bw-activity { description "Enter the bw-activity context"; leaf bw-activity-type { type enumeration { enum "use-admin-bw" { value 1; } enum "dynamic" { value 2; } } description "Bandwidth required by a multicast channel"; } leaf black-hole-rate { type uint32 { range "0..40000000"; } units "kilobps"; default "0"; description "Rate at which a channel is placed in the black-hole state"; } leaf falling-delay { type uint32 { range "10..3600"; } units "seconds"; description "Falling delay threshold to hold on to the previous highest bandwidth until the delay time expires"; } } // container bw-activity container primary-tunnel-interface { description "Enter the primary-tunnel-interface context"; leaf sender { type types-sros:ipv4-address; description "Bundle to assign in multicast info policy and channels to receive from primary tunnel interface"; } choice p2mp { case rsvp-p2mp { leaf rsvp-p2mp { type types-sros:named-item; description "Name of P2MP for LDP P2MP"; } } case ldp-p2mp { leaf ldp-p2mp { type uint32 { range "1..4294967295"; } description "Identifier for signaling mLDP P2MP LSP"; } } } } // container primary-tunnel-interface container video { description "Enter the video context"; leaf fcc-channel-type { type types-mcast-mgmt:channel-type-with-inherit; description "Channel type for the bundle or channel"; } leaf fcc-min-duration { type uint32 { range "300..8000"; } units "milliseconds"; description "Minimum duration of the FCC burst"; } leaf fcc-server { type types-sros:bool-with-inherit; description "Value to override parent value of FCC server"; } leaf local-rt-server { type types-sros:bool-with-inherit; description "Value to override parent value of local RT server"; } leaf reorder-audio { type uint32 { range "100..1000"; } units "milliseconds"; description "Time by which the audio packets are reordered in the ad stream"; } leaf rt-buffer-size { type uint32 { range "300..8000"; } units "milliseconds"; default "300"; description "Buffer size to store channel packets"; } leaf video-group { type union { type uint32 { range "1..4"; } type enumeration { enum "none" { value 0; } } } description "Identifier for this video group"; } container rt-server { description "Enter the rt-server context"; leaf rt-state { type types-sros:bool-with-inherit; description "Specifies the value which will override parent value of RT server state."; } leaf ip-address { type types-sros:ipv4-unicast-address; description "RT server IP address."; } leaf port { type uint32 { range "1024..5999|6251..65535"; } description "RT server port number."; } } // container rt-server container stream-selection { description "Enter the stream-selection context"; leaf source1 { type types-sros:ipv4-address; description "Primary source IP address"; } leaf intf1 { type types-sros:named-item; description "Primary interface"; } leaf source2 { type types-sros:ipv4-address; description "Secondary source IP address"; } leaf intf2 { type types-sros:named-item; description "Secondary interface"; } } // container stream-selection container analyzer { presence "Enter the 'analyzer' context"; description "Enable the analyzer context"; leaf description { type types-sros:description; description "Text description"; } container alarms { description "Enter the alarms context"; leaf cc-error { type boolean; default "false"; description "Check the continuity counter (Cc)"; } leaf non-vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "PID that is checked within the specified interval"; } leaf pat-syntax { type boolean; default "false"; description "Check for PAT syntax errors"; } leaf pid-pmt-unref { type boolean; default "false"; description "Check for unreferenced PIDs in the PMT"; } leaf pmt-syntax { type boolean; default "false"; description "Check for PMT syntax errors"; } leaf tei-set { type boolean; default "false"; description "Check for TEI set errors"; } leaf ts-sync-loss { type boolean; default "false"; description "Check for synchronization loss errors"; } leaf vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "VID PID that is checked within the specified time interval"; } container pat-repetition { presence "Enter the 'pat-repetition' context"; description "Enable the pat-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PATs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PATs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PATs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pat-repetition container pcr-repetition { presence "Enter the 'pcr-repetition' context"; description "Enable the pcr-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PCRs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PCRs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PCRs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pcr-repetition container pmt-repetition { presence "Enter the 'pmt-repetition' context"; description "Enable the pmt-repetition context"; leaf tnc { type uint32 { range "100..4800"; } units "milliseconds"; default "400"; description "Time between two consecutive PMTs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..4900"; } units "milliseconds"; default "800"; description "Time between two consecutive PMTs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..5000"; } units "milliseconds"; default "2000"; description "Time between two consecutive PMTs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pmt-repetition container report-alarm { description "Enter the report-alarm context"; leaf severity { type enumeration { enum "tnc" { value 1; } enum "qos" { value 2; } enum "poa" { value 3; } } description "Keyword for the type of alarm"; } } // container report-alarm } // container alarms } // container analyzer } // container video } // list source-override } // list channel } // list bundle container video-policy { description "Enter the video-policy context"; list video-interface { key "ip-address"; description "Enter the video-interface list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IP address of the video interface"; } leaf subscriber-bw-limit { type uint32 { range "1..4294967295"; } units "kilobps"; default "4294967295"; description "Egress bandwidth limit per subscriber for retransmission"; } leaf rt-payload-type { type uint32 { range "33|96..127"; } default "99"; description "Format expected for received retransmission packets"; } leaf max-sessions { type uint32 { range "1..65536"; } default "256"; description "Maximum number of sessions per client"; } leaf max-igmp-latency { type uint32 { range "10..1000"; } units "milliseconds"; default "100"; description "Maximum IGMP latency per client"; } leaf fcc-session-timeout { type uint32 { range "5..300"; } units "seconds"; default "300"; description "FCC session timeout"; } leaf ret-session-timeout { type uint32 { range "5..300"; } units "seconds"; default "300"; description "RET session timeout"; } leaf rt-rate { type types-mcast-mgmt:percent-without-zero; default "5"; description "Rate at which RT packets are sent to client"; } container hd { description "Enter the hd context"; leaf dent-threshold { type uint32 { range "1..31"; } default "16"; description "Threshold below which the FCC server dents unicast data sent to FCC client"; } leaf fcc-burst { type uint32 { range "0..600"; } units "percent"; default "25"; description "Burst rate at which the Fast Channel Change (FCC) server sends unicast data to FCC client"; } leaf local-rt-server { type boolean; default "false"; description "Enable local retransmission server capability"; } leaf rt-rate { type types-mcast-mgmt:percent-without-zero; default "5"; description "Rate at which RT packets are sent to client"; } leaf mc-handover { type types-sros:percent; default "25"; description "FCC server rate during handover."; } container fcc-server { description "Enter the fcc-server context"; leaf mode { type types-mcast-mgmt:mode; description "Mode by which FCC server sends information to the client"; } } // container fcc-server } // container hd container pip { description "Enter the pip context"; leaf dent-threshold { type uint32 { range "1..31"; } default "16"; description "Threshold below which the FCC server dents unicast data sent to FCC client"; } leaf fcc-burst { type uint32 { range "0..600"; } units "percent"; default "25"; description "Burst rate at which the Fast Channel Change (FCC) server sends unicast data to FCC client"; } leaf local-rt-server { type boolean; default "false"; description "Enable local retransmission server capability"; } leaf rt-rate { type types-mcast-mgmt:percent-without-zero; default "5"; description "Rate at which RT packets are sent to client"; } leaf mc-handover { type uint32 { range "0..600"; } units "percent"; default "25"; description "Rate at which FCC server sends unicast data to FCC client during handover to multicast stream"; } container fcc-server { description "Enter the fcc-server context"; leaf mode { type types-mcast-mgmt:mode; description "Mode by which FCC server sends information to the client"; } } // container fcc-server } // container pip container sd { description "Enter the sd context"; leaf dent-threshold { type uint32 { range "1..31"; } default "16"; description "Threshold below which the FCC server dents unicast data sent to FCC client"; } leaf fcc-burst { type uint32 { range "0..600"; } units "percent"; default "25"; description "Burst rate at which the Fast Channel Change (FCC) server sends unicast data to FCC client"; } leaf local-rt-server { type boolean; default "false"; description "Enable local retransmission server capability"; } leaf rt-rate { type types-mcast-mgmt:percent-without-zero; default "5"; description "Rate at which RT packets are sent to client"; } leaf mc-handover { type uint32 { range "0..600"; } units "percent"; default "25"; description "Rate at which FCC server sends unicast data to FCC client during handover to multicast stream"; } container fcc-server { description "Enter the fcc-server context"; leaf mode { type types-mcast-mgmt:mode; description "Mode by which FCC server sends information to the client"; } } // container fcc-server } // container sd } // list video-interface } // container video-policy } // list multicast-info-policy list multicast-reporting-destination { key "name"; description "Enter the multicast-reporting-destination list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Destination name for multicast reporting"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the multicast reporting destination"; } leaf address { type types-sros:ipv4-address; default "0.0.0.0"; description "IP address of the multicast reporting destination"; } leaf udp-port { type types-sros:tcp-udp-port { range "1..65535"; } default "1037"; description "UDP port to which multicast reports are sent"; } leaf maximum-transmission-delay { type uint32 { range "0..100"; } units "deciseconds"; default "1"; description "Maximum delay after which any cached reports are flushed to the reporting destination"; } } // list multicast-reporting-destination list bandwidth-policy { key "policy-name"; max-elements 32; description "Enter the bandwidth-policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Multicast bandwidth policy name"; } leaf admin-bw-threshold { type uint32 { range "1..40000000"; } units "kilobps"; default "10"; description "Administrative bandwidth threshold"; } leaf description { type types-sros:description; description "Text description"; } leaf falling-percent-reset { type types-mcast-mgmt:percent-without-zero; default "50"; description "Percentage of bandwidth decrease that occurs before resetting"; } container mcast-pool { description "Enter the mcast-pool context"; leaf percent-of-total { type uint32 { range "1..50"; } units "percent"; default "10"; description "Percentage of the total ingress buffer pool assigned for the bandwidth policy"; } leaf resv-cbs { type types-mcast-mgmt:percent-without-zero; default "50"; description "Percentage of the pool reserved for multicast path queues within their Committed Buffer Size (CBS) threshold."; } leaf slope-policy { type types-sros:named-item; description "Slope policy name"; } } // container mcast-pool container impm-paths { description "Enter the impm-paths context"; container primary-path { description "Enter the primary-path context"; container queue-parameters { description "Enter the queue-parameters context"; leaf cbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } units "percent"; default "5.00"; description "Committed buffer size (CBS)"; } leaf mbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } units "percent"; default "7.00"; description "Maximum buffer size (MBS)"; } container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-sros:percent; default "10"; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail } // container queue-parameters } // container primary-path container secondary-path { description "Enter the secondary-path context"; container number-paths { description "Enter the number-paths context"; leaf number-of-paths { type uint32 { range "1..15"; } default "1"; description "Number of paths for the secondary path"; } leaf redundant-sfm { type uint32 { range "1..15"; } default "1"; description "Number of paths for the secondary path in dual-sfm mode."; } } // container number-paths container queue-parameters { description "Enter the queue-parameters context"; leaf cbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } units "percent"; default "30.00"; description "Committed buffer size (CBS)"; } leaf mbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } units "percent"; default "40.00"; description "Maximum buffer size (MBS)"; } container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-sros:percent; default "10"; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail } // container queue-parameters } // container secondary-path } // container impm-paths } // list bandwidth-policy container chassis-level { description "Enter the chassis-level context"; leaf mmrp-impm-override { type boolean; default "false"; description "Manage MMRP traffic by IMPM"; } leaf round-robin-inactive-records { type boolean; default "false"; description "Redistribute initially inactive records among all available IOM multicast paths and switch fabric planes"; } container per-mcast-plane-capacity { description "Enter the per-mcast-plane-capacity context"; leaf total-capacity { type enumeration { enum "dynamic" { value 0; } enum "2000" { value 2000; } enum "4000" { value 4000; } enum "5250" { value 5250; } enum "8250" { value 8250; } enum "15000" { value 15000; } enum "17000" { value 17000; } enum "19000" { value 19000; } enum "16500" { status obsolete; } } units "megabps"; description "Total multicast plane bandwidth"; } container mcast-capacity { description "Enter the mcast-capacity context"; leaf primary-percentage { type decimal64 { range "0.01..100.00"; fraction-digits 2; } units "percent"; description "Percentage of the total multicast plane capacity to use for primary multicast planes"; } leaf secondary-percentage { type decimal64 { range "0.01..100.00"; fraction-digits 2; } units "percent"; description "Percentage of the total multicast plane capacity to use for secondary multicast planes"; } } // container mcast-capacity container redundant-mcast-capacity { description "Enter the redundant-mcast-capacity context"; leaf primary-percentage { type decimal64 { range "0.01..100.00"; fraction-digits 2; } units "percent"; description "Percentage of the total multicast plane capacity to use for primary multicast planes"; } leaf secondary-percentage { type decimal64 { range "0.01..100.00"; fraction-digits 2; } units "percent"; description "Percentage of the total multicast plane capacity to use for secondary multicast planes"; } } // container redundant-mcast-capacity } // container per-mcast-plane-capacity } // container chassis-level } // container multicast-management list multilink-bundle { key "bundle-id"; description "Enter the multilink-bundle list instance"; leaf bundle-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port; } description "The identifier which uniquely identifies the multilink bundle."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the desired administrative state of this bundle."; } leaf description { type types-sros:long-description; description "Text description"; } leaf fragment-threshold { type union { type uint32 { range "128..512"; } type enumeration { enum "unlimited" { value 0; } } } units "bytes"; default "128"; description "Configure the maximum bytes of a fragment transmitted across the multilink bundle."; } leaf interleave-fragment { type boolean; default "false"; description "Enable/disable the LFI function on the given multilink bundle."; } leaf minimum-links { type uint32 { range "1..8"; } default "1"; description "Configure the minimum links that must be active for the bundle to be active."; } leaf mrru { type uint32 { range "1500..9206"; } units "bytes"; description "Configure the Maximum Received Reconstructed Unit."; } leaf protect-bundle { type types-sros:port; sros-ext:immutable; description "Configure the protection bundle that is part of this BPG."; } leaf short-sequence { type boolean; default "false"; description "Enable/disable the use of short sequence by MLPPP bundles."; } leaf working-bundle { type types-sros:port; sros-ext:immutable; description "Configure the working bundle that is part of this BPG."; } leaf yellow-differential-delay { type uint32 { range "1..25"; } units "milliseconds"; description "Configure the yellow warning threshold (in milliseconds) of differential delay for members."; } container red-differential { description "Enter the red-differential context"; leaf delay { type uint32 { range "1..50"; } units "milliseconds"; description "Configure the maximum acceptable differential delay for members."; } leaf action { type enumeration { enum "down" { value 1; } } description "Configure the action to be taken when the differential delay exceeds the threshold configured in red-differential/delay."; } } // container red-differential list member { key "channel-id"; description "Add a list entry for member"; leaf channel-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port; } description "Uniquely identifies the multilink bundle member."; } } // list member container mlppp { description "Enter the mlppp context"; leaf magic-number { type boolean; default "false"; description "Enable/disable magic-number loopback detection."; } leaf multiclass { type uint32 { range "2..4"; } description "Configure MLPPP Multiclass attributes."; } leaf stateless-aps-switchover { type boolean; default "false"; description "Enable/disable stateless APS switchover."; } container endpoint-discriminator { description "Enter the endpoint-discriminator context"; leaf class { type enumeration { enum "null" { value 0; } enum "ip-address" { value 2; } enum "global-mac-address" { value 3; } } description "Configure the endpoint discriminator class type."; } leaf discriminator-id { type types-sros:ipv4-address; description "Configure the endpoint descriminator identifier."; } } // container endpoint-discriminator container egress { description "Enter the egress context"; leaf qos-profile { type uint32 { range "1..65535"; } description "Configure egress mlppp qos-profile."; } } // container egress container ingress { description "Enter the ingress context"; leaf qos-profile { type uint32 { range "1..65535"; } description "Configure ingress mlppp qos-profile."; } } // container ingress } // container mlppp } // list multilink-bundle container oam-pm { description "Enter the oam-pm context"; list bin-group { key "bin-group-id"; description "Enter the bin-group list instance"; leaf bin-group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "Bin group identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the bin group"; } leaf description { type types-sros:description; description "Text description"; } list bin-type { key "bin-metric"; description "Enter the bin-type list instance"; leaf bin-metric { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "fd" { value 1; } enum "fdr" { value 2; } enum "ifdv" { value 3; } } } description "Frame Delay, Frame Delay Range, Inter-Frame Delay Variation"; } list delay-event { key "direction"; description "Enter the delay-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-oam:direction; } description "Traffic flow direction of the OAM-PM test or metric"; } leaf lowest-bin { type uint32 { range "0..9"; } description "The lowest OAM-PM delay bin to be used when applying a configured Raise or Clear delay threshold"; } leaf raise-threshold { type int32 { range "1..864000"; } description "The OAM-PM raise threshold for excessive delay"; } leaf clear-threshold { type int32 { range "0..863999"; } description "The OAM-PM clear threshold for excessive delay"; } leaf exclude-lowest-bin { type int32 { range "1..9"; } description "The lowest bin number of the set of bins to be excluded from Threshold Crossing Alert (TCA) calculations"; } } // list delay-event list exclude-from-avg { key "direction"; description "Enter the exclude-from-avg list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-oam:direction; } description "Traffic flow direction of the OAM-PM test or metric"; } leaf bins { type string { length "1..39"; pattern "(all|(([0-9]|([0-9]-[0-9]))(,([0-9]|([0-9]-[0-9])))*))"; } description "A set of bin numbers, each in the range 0..9 Three example values: 0 0,8,9 0,7-9"; } } // list exclude-from-avg list bin { key "bin-number"; description "Enter the bin list instance"; leaf bin-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..9"; } } description "The number of the bin"; } leaf lower-bound { type int64 { range "0|1..4294967295"; } units "microseconds"; description "The lower bound for the bin"; } } // list bin } // list bin-type } // list bin-group list session { key "session-name"; description "Enter the session list instance"; leaf session-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "OAM-PM session name"; } leaf session-type { type enumeration { enum "proactive" { value 1; } enum "on-demand" { value 2; } } sros-ext:immutable; default "proactive"; description "The type of the specified session"; } leaf bin-group { type uint32 { range "1..255"; } description "The bin group for the session"; } leaf description { type types-sros:description; description "Text description"; } choice test-family-choice { case ethernet-case { container ethernet { presence "Enter the 'ethernet' context"; description "Enable the ethernet context"; leaf dest-mac { type types-sros:mac-unicast-address; description "The destination MAC address for the session"; } leaf remote-mep { type uint32 { range "1..8191"; } description "The remote Maintenance association End Point (MEP) for the session"; } leaf priority { type uint32 { range "0..7"; } default "0"; description "The priority and forwarding class for the session"; } container source { presence "Enter the 'source' context"; description "Enable the source context"; leaf mep { type uint32 { range "1..8191"; } description "The source Ethernet Maintenance association End Point (MEP) identifier"; } leaf md-admin-name { type types-eth-cfm:admin-name; description "The source Ethernet Maintenance Domain (MD) name"; } leaf ma-admin-name { type types-eth-cfm:admin-name; description "The source Ethernet Maintenance Association (MA) name"; } } // container source container dmm { presence "Enter the 'dmm' context"; description "Enable the dmm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the test"; } leaf test-id { type uint32 { range "0..2147483647"; } description "The test identifier"; } leaf test-duration { type uint32 { range "1..86400"; } units "seconds"; description "The duration of an on-demand test"; } leaf interval { type uint32 { range "100|1000|10000"; } units "milliseconds"; default "1000"; description "The elapsed time between transmission PDUs for the specified session's test"; } leaf data-tlv-size { type uint32 { range "0|3..2000"; } units "octets"; default "0"; description "The size of the pad TLV in the frames sent for the test"; } leaf delay-template { type types-sros:named-item-64; description "Reference to a streaming delay template for the test"; } } // container dmm container lmm { presence "Enter the 'lmm' context"; description "Enable the lmm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the test"; } leaf test-id { type uint32 { range "0..2147483647"; } description "The test identifier"; } leaf test-duration { type uint32 { range "1..86400"; } units "seconds"; description "The duration of an on-demand test"; } leaf interval { type uint32 { range "100|1000|10000"; } units "milliseconds"; default "1000"; description "The elapsed time between transmission PDUs for the specified session's test"; } leaf fc-collection { type boolean; default "false"; description "Enable or disable the collection of per forwarding class statistics for the LMM test"; } container availability { description "Enter the availability context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of availability statistics"; } leaf flr-threshold { type types-sros:percent; default "50"; description "The Frame Loss Ratio threshold for the test"; } leaf hli-force-count { type boolean; default "false"; description "Force High Loss Intervals (HLIs) and Consecutive High Loss Intervals (CHLIs) to be counted, regardless of the Availability state"; } container timing { description "Enter the timing context"; leaf frames-per-delta-t { type uint32 { range "1..50"; } default "10"; description "The number of frames to send in one MEF-35 'delta_t' also known as 'Small Time Interval'"; } leaf consec-delta-t { type uint32 { range "2..10"; } default "10"; description "The number of consecutive MEF-35 'delta_t's which constitute a MEF-35 'Availability Window'"; } leaf chli-threshold { type uint32 { range "1..9"; } default "5"; description "The MEF-35 Consecutive High Loss Interval (CHLI) threshold"; } } // container timing } // container availability container loss-events { description "Enter the loss-events context"; list avg-flr-event { key "direction"; description "Enter the avg-flr-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } } } description "Traffic flow direction"; } leaf raise-threshold { type decimal64 { range "0.000..100.000"; fraction-digits 3; } units "percent"; description "The raise threshold for the average Frame Loss Ratio (FLR)"; } leaf clear-threshold { type decimal64 { range "0.000..99.999"; fraction-digits 3; } units "percent"; description "The clear threshold for the average Frame Loss Ratio (FLR)"; } } // list avg-flr-event list chli-event { key "direction"; description "Enter the chli-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list chli-event list hli-event { key "direction"; description "Enter the hli-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list hli-event list unavailability-event { key "direction"; description "Enter the unavailability-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list unavailability-event list undet-availability-event { key "direction"; description "Enter the undet-availability-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list undet-availability-event list undet-unavailability-event { key "direction"; description "Enter the undet-unavailability-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list undet-unavailability-event } // container loss-events } // container lmm container slm { presence "Enter the 'slm' context"; description "Enable the slm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the test"; } leaf test-id { type uint32 { range "0..2147483647"; } description "The test identifier"; } leaf test-duration { type uint32 { range "1..86400"; } units "seconds"; description "The duration of an on-demand test"; } leaf interval { type uint32 { range "100|1000"; } units "milliseconds"; default "100"; description "The elapsed time between transmission PDUs for the specified session's test"; } leaf data-tlv-size { type uint32 { range "0|3..2000"; } units "octets"; default "0"; description "The size of the pad TLV in the frames sent for the test"; } leaf flr-threshold { type types-sros:percent; default "50"; description "The Frame Loss Ratio threshold for the test"; } leaf hli-force-count { type boolean; default "false"; description "Force High Loss Intervals (HLIs) and Consecutive High Loss Intervals (CHLIs) to be counted, regardless of the Availability state"; } container timing { description "Enter the timing context"; leaf frames-per-delta-t { type uint32 { range "1..50"; } default "10"; description "The number of frames to send in one MEF-35 'delta_t' also known as 'Small Time Interval'"; } leaf consec-delta-t { type uint32 { range "2..10"; } default "10"; description "The number of consecutive MEF-35 'delta_t's which constitute a MEF-35 'Availability Window'"; } leaf chli-threshold { type uint32 { range "1..9"; } default "5"; description "The MEF-35 Consecutive High Loss Interval (CHLI) threshold"; } } // container timing container loss-events { description "Enter the loss-events context"; list avg-flr-event { key "direction"; description "Enter the avg-flr-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } } } description "Traffic flow direction"; } leaf raise-threshold { type decimal64 { range "0.000..100.000"; fraction-digits 3; } units "percent"; description "The raise threshold for the average Frame Loss Ratio (FLR)"; } leaf clear-threshold { type decimal64 { range "0.000..99.999"; fraction-digits 3; } units "percent"; description "The clear threshold for the average Frame Loss Ratio (FLR)"; } } // list avg-flr-event list chli-event { key "direction"; description "Enter the chli-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list chli-event list hli-event { key "direction"; description "Enter the hli-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list hli-event list unavailability-event { key "direction"; description "Enter the unavailability-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list unavailability-event list undet-availability-event { key "direction"; description "Enter the undet-availability-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list undet-availability-event list undet-unavailability-event { key "direction"; description "Enter the undet-unavailability-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list undet-unavailability-event } // container loss-events } // container slm } // container ethernet } case ip-case { container ip { presence "Enter the 'ip' context"; description "Enable the ip context"; leaf allow-egress-remark-dscp { type boolean; default "false"; description "Whether or not to allow the session's configured DSCP value to be overwritten by the applicable egress Quality of Service (QoS) policy"; } leaf destination { type types-sros:ip-unicast-address; description "The destination IP address for the session"; } leaf destination-udp-port { type types-sros:tcp-udp-port-non-zero; description "The destination UDP port for the session"; } leaf do-not-fragment { type boolean; default "false"; description "The IPv4 packet header Don't Fragment (DF) field for the session"; } leaf dscp { type union { type types-qos:dscp-name; type types-oam:dscp-resolve; } default "resolve"; description "The Differentiated Services Code Point (DSCP) for the session. resolve = use the fc and profile configuration values to derive the DSCP"; } leaf fc { type types-oam:forwarding-class; default "be"; description "The forwarding class for the session"; } leaf pattern { type types-oam:padding-pattern; default "0"; description "The pattern used to fill the packet padding field for the session"; } leaf profile { type enumeration { enum "in" { value 1; } enum "out" { value 2; } } default "out"; description "The profile for the session"; } leaf router-instance { type string; default "Base"; description "The router for the session"; } leaf source { type types-sros:ip-unicast-address; description "The source IP address for the session"; } leaf source-udp-port { type types-sros:tcp-udp-port-non-zero { range "64374..64383"; } description "The source UDP port for the session"; } leaf ttl { type uint32 { range "1..255"; } default "255"; description "The Time-To-Live value for the session"; } container forwarding { presence "Enter the 'forwarding' context"; description "Enable the forwarding context"; choice forwarding-choice { case next-hop-case { leaf next-hop { type types-sros:ip-unicast-address; description "IP-address for forwarding"; } } case interface-case { leaf interface { type types-sros:interface-name; description "The name of the interface to be used"; } } case bypass-routing-case { leaf bypass-routing { type empty; description "Bypass the routing table when sending test packets"; } } } } // container forwarding container twamp-light { presence "Enter the 'twamp-light' context"; description "Enable the twamp-light context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the test"; } leaf test-id { type uint32 { range "0..2147483647"; } description "The test identifier"; } leaf test-duration { type uint32 { range "1..86400"; } units "seconds"; description "The duration of an on-demand test"; } leaf interval { type uint32 { range "100|1000|10000"; } units "milliseconds"; default "1000"; description "The elapsed time between transmission PDUs for the specified session's test"; } leaf pad-size { type uint32 { range "0..2000"; } units "octets"; default "0"; description "The amount of padding in each packet sent for the TWAMP-Light test"; } leaf record-stats { type enumeration { enum "delay" { value 1; } enum "loss" { value 2; } enum "delay-and-loss" { value 3; } } default "delay"; description "The type of statistics recorded for the TWAMP-Light test"; } leaf delay-template { type types-sros:named-item-64; description "Reference to a streaming delay template for the test"; } container loss { description "Enter the loss context"; leaf flr-threshold { type types-sros:percent; default "50"; description "The Frame Loss Ratio threshold for the test"; } leaf hli-force-count { type boolean; default "false"; description "Force High Loss Intervals (HLIs) and Consecutive High Loss Intervals (CHLIs) to be counted, regardless of the Availability state"; } container timing { description "Enter the timing context"; leaf frames-per-delta-t { type uint32 { range "1..50"; } default "1"; description "The number of frames to send in one MEF-35 'delta_t' also known as 'Small Time Interval'"; } leaf consec-delta-t { type uint32 { range "2..10"; } default "10"; description "The number of consecutive MEF-35 'delta_t's which constitute a MEF-35 'Availability Window'"; } leaf chli-threshold { type uint32 { range "1..9"; } default "5"; description "The MEF-35 Consecutive High Loss Interval (CHLI) threshold"; } } // container timing } // container loss container loss-events { description "Enter the loss-events context"; list avg-flr-event { key "direction"; description "Enter the avg-flr-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } } } description "Traffic flow direction"; } leaf raise-threshold { type decimal64 { range "0.000..100.000"; fraction-digits 3; } units "percent"; description "The raise threshold for the average Frame Loss Ratio (FLR)"; } leaf clear-threshold { type decimal64 { range "0.000..99.999"; fraction-digits 3; } units "percent"; description "The clear threshold for the average Frame Loss Ratio (FLR)"; } } // list avg-flr-event list chli-event { key "direction"; description "Enter the chli-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list chli-event list hli-event { key "direction"; description "Enter the hli-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list hli-event list unavailability-event { key "direction"; description "Enter the unavailability-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list unavailability-event list undet-availability-event { key "direction"; description "Enter the undet-availability-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list undet-availability-event list undet-unavailability-event { key "direction"; description "Enter the undet-unavailability-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } } // list undet-unavailability-event } // container loss-events } // container twamp-light } // container ip } case mpls-case { container mpls { presence "Enter the 'mpls' context"; description "Enable the mpls context"; leaf dscp { type types-qos:dscp-name; default "be"; description "The Differentiated Services Code Point (DSCP) for the session"; } leaf fc { type types-oam:forwarding-class; default "be"; description "The forwarding class for the session"; } leaf pattern { type types-oam:padding-pattern; default "0"; description "The pattern used to fill the query message's pad TLV for the session ('sequential' specifies 00, 01, 02, 03, .. (hexadecimal))"; } leaf profile { type enumeration { enum "in" { value 1; } enum "out" { value 2; } } default "out"; description "The Quality of Service profile for the session"; } leaf ttl { type uint32 { range "1..255"; } default "255"; description "The MPLS Time-To-Live value for the session"; } container lsp { description "Enter the lsp context"; choice lsp-choice { case mpls-tp-static-case { container mpls-tp-static { presence "Enter the 'mpls-tp-static' context"; description "Enable the mpls-tp-static context"; leaf lsp { type types-sros:named-item-64; description "The LSP to be tested"; } } // container mpls-tp-static } case rsvp-case { container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf lsp { type types-sros:named-item-64; description "The LSP to be tested"; } leaf udp-return-object { type types-sros:ip-unicast-address; description "The destination IP address used by the far end of the test to send a response"; } } // container rsvp } case rsvp-auto-case { container rsvp-auto { presence "Enter the 'rsvp-auto' context"; description "Enable the rsvp-auto context"; leaf lsp-template { type types-sros:named-item; description "The LSP template used to identify the LSP to be tested"; } leaf from { type types-sros:ipv4-unicast-address; description "An IPv4 address used (with the LSP template) to identify the LSP to be tested"; } leaf to { type types-sros:ipv4-unicast-address; description "An IPv4 address used (with the LSP template) to identify the LSP to be tested"; } leaf udp-return-object { type types-sros:ip-unicast-address; description "The destination IP address used by the far end of the test to send a response"; } } // container rsvp-auto } } } // container lsp container dm { presence "Enter the 'dm' context"; description "Enable the dm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MPLS DM test"; } leaf test-id { type uint32 { range "0..67108863"; } description "Used to identify query and response messages belonging to the test"; } leaf interval { type uint32 { range "1000|2000|3000|4000|5000|6000|7000|8000|9000|10000"; } units "milliseconds"; default "1000"; description "The elapsed time between query messages sent for the test"; } leaf pad-tlv-size { type uint32 { range "0|2..257"; } units "octets"; default "0"; description "The size of the pad TLV in the query messages sent for the test"; } leaf reflect-pad { type boolean; default "false"; description "Whether or not to copy the pad TLV in each query to the response"; } leaf test-duration { type uint32 { range "1..86400"; } units "seconds"; description "The duration of an on-demand test"; } leaf delay-template { type types-sros:named-item-64; description "Reference to a streaming delay template for the test"; } } // container dm } // container mpls } } list measurement-interval { key "duration"; description "Enter the measurement-interval list instance"; leaf duration { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-oam:measurement-interval-duration; } description "The duration of the measurement interval"; } leaf accounting-policy { type types-log:log-policy-id; description "The accounting policy for the measurement interval"; } leaf boundary-type { type enumeration { enum "clock-aligned" { value 1; } enum "test-relative" { value 2; } } default "clock-aligned"; description "The start condition for the measurement interval (start when the test starts, or wall clock aligned)"; } leaf clock-offset { type uint32 { range "0..86399"; } units "seconds"; default "0"; description "The offset for a clock-aligned measurement interval (must be less than the selected duration)"; } leaf intervals-stored { type uint32 { range "1..96"; } description "The maximum number of intervals stored for the measurement interval"; } container threshold-cross-alerts { description "Enter the threshold-cross-alerts context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of TCAs for measurement interval"; } leaf delay-events { type boolean; default "false"; description "Enable or disable delay TCAs for the measurement interval"; } leaf loss-events { type boolean; default "false"; description "Enable or disable loss TCAs for the measurement interval"; } } // container threshold-cross-alerts } // list measurement-interval } // list session container streaming { description "Enter the streaming context"; list delay-template { key "delay-template-name"; description "Enter the delay-template list instance"; leaf delay-template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Streaming delay template name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the delay template"; } leaf description { type types-sros:description; description "Text description"; } leaf sample-window { type uint32 { range "10..60"; } units "seconds"; default "60"; description "Sample window duration for the template"; } leaf window-integrity { type uint32 { range "1..100"; } units "percent"; default "50"; description "Measurements for the sample window validity"; } list fd-avg { key "direction"; description "Add a list entry for fd-avg"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-oam:direction; } description "Traffic flow direction of the OAM-PM test or metric"; } } // list fd-avg list ifdv-avg { key "direction"; description "Add a list entry for ifdv-avg"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-oam:direction; } description "Traffic flow direction of the OAM-PM test or metric"; } } // list ifdv-avg } // list delay-template } // container streaming } // container oam-pm container openflow { description "Enter the openflow context"; list of-controller { key "controller-id"; max-elements 1; description "Enter the of-controller list instance"; leaf controller-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32; } default "1"; description "OpenFlow controller id. Currently is supported only value of 1."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of an OpenFlow controller instance."; } leaf description { type types-sros:description; description "Text description"; } leaf version { type enumeration { enum "version-1-3-1" { value 4; } } default "version-1-3-1"; description "OpenFlow version negotiated between an OpenFlow controller and the switch."; } leaf address { type types-sros:ipv4-address; description "Local IPv4 address for OpenFlow controller to be used for packets on both main and aux channels. By default, this is the management IP address of the system. It may also correspond to the system IP address or another loopback address configured on the system. The OpenFlow controller must be shutdown to change its address."; } leaf echo-interval { type uint32 { range "10..3600"; } units "seconds"; default "10"; description "Time interval between two consecutive OpenFlow echo request transmissions for a given OpenFlow session."; } leaf echo-multiple { type uint32 { range "3..100"; } default "3"; description "Multiplier for OpenFlow control channel echo packets. The OpenFlow control channel is considered operationally down if no reply is heard from the switch after the specified multiplier."; } leaf tls-server-profile { type types-sros:named-item; description "Specifies the profile name used by the controller."; } leaf role { type enumeration { enum "equal" { value 0; } } default "equal"; description "The role that the controller will request to OpenFlow switches when multiple controllers are connected to a switch."; } leaf ipv6-address { type types-sros:ipv6-unicast-address; description "Local IPv6 address for OpenFlow controller to be used for packets on both main and aux channels. The OpenFlow controller must be shutdown to change its address."; } } // list of-controller list of-switch { key "name"; max-elements 8; description "Enter the of-switch list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "The name of this OpenFlow switch."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of an OpenFlow switch instance."; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf ofs-id { type uint32 { range "1..8"; } sros-ext:immutable; description "Unique identifier of an OpenFlow switch instance."; } leaf echo-interval { type uint32 { range "1..3600"; } units "seconds"; default "10"; description "Time interval between two consecutive OpenFlow echo request transmissions for a given OpenFlow session."; } leaf echo-multiple { type uint32 { range "3..100"; } default "3"; description "Multiplier for OpenFlow control channel echo packets. The OpenFlow control channel is considered operationally down if no reply is heard from the switch after the specified multiplier."; } leaf aux-channel { type boolean; default "false"; description "The operational status of the auxiliary channel established between an OpenFlow controller and switch."; } leaf-list logical-port-status { type enumeration { enum "rsvp-te" { value 1; } enum "mpls-tp" { value 2; } enum "sr-te" { value 3; } } max-elements 3; description "Logical port type for status change reporting"; } list flowtable { key "table-id"; max-elements 1; description "Enter the flowtable list instance"; leaf table-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32; } description "OpenFlow table ID."; } leaf max-size { type uint32 { range "1..524288"; } default "1000"; description "Maximum number of entries that the flowtable can have. The maximum size cannot be changed if any entries are present in the flowtable."; } leaf mismatch-action { type enumeration { enum "drop" { value 1; } enum "fall-through" { value 2; } enum "packet-in" { value 3; } } default "fall-through"; description "Action to be performed when no match is found in the flowtable. When the value is set to 'drop', packets are dropped if no match is found in flowtable. When the value is set to 'fall-through, evaluating is continued based on filter policy."; } leaf switch-defined-cookie { type boolean; default "false"; description "Enable switch-defined cookie encoding"; } } // list flowtable list controller { key "address port"; max-elements 2; description "Enter the controller list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address of the OpenFlow channel to the controller"; } leaf port { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "Controller port."; } leaf tls-client-profile { type types-sros:named-item; description "Specifies the profile name used by the controller."; } leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf ofc-loopback { type types-sros:ip-unicast-address; description "The controller loop back IPv4 address."; } } // list controller } // list of-switch } // container openflow container policy-options { description "Enter the policy-options context"; list as-path { key "name"; description "Enter the as-path list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "AS Path name"; } leaf expression { type types-sros:policy-as-path-regexp; description "Regular expression string"; } } // list as-path list as-path-group { key "name"; description "Enter the as-path-group list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "AS Path Group name"; } list entry { key "entry"; description "Enter the entry list instance"; leaf entry { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..128"; } } description "ID to uniquely identify this AS Path entry"; } leaf expression { type types-sros:policy-as-path-regexp; description "Regular expression string"; } } // list entry } // list as-path-group list damping { key "name"; description "Enter the damping list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Damping profile name"; } leaf half-life { type uint32 { range "1..45"; } units "minutes"; description "Time after which the Figure of Merit value is halved"; } leaf max-suppress { type uint32 { range "1..720"; } units "minutes"; description "Maximum time for a route to remain suppressed"; } leaf reuse { type uint32 { range "1..20000"; } description "Value below which a suppressed route can be used again"; } leaf suppress { type uint32 { range "1..20000"; } description "Value above which a route is suppressed"; } } // list damping container global-variables { description "Enter the global-variables context"; list name { key "variable-name"; max-elements 1000; description "Enter the name list instance"; leaf variable-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-policy:policy-var-name; } description "Map a variable name to a value, a number, or address"; } choice variable-type { case value { leaf value { type types-sros:named-item; description "Variable name that is resolved to assigned value"; } } case number { leaf number { type uint64 { range "0..4294967295"; } description "Variable name that is resolved to assigned value"; } } case address { leaf address { type types-sros:ip-address; description "Variable name that is resolved to IP address"; } } case decimal { leaf decimal { type decimal64 { range "0.000..4294967295.000"; fraction-digits 3; } description "Attribute decimal to which variable-name is resolved"; } } } } // list name } // container global-variables list community { key "name"; description "Enter the community list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:policy-community-name; } description "Name of a community"; } list member { key "member"; description "Add a list entry for member"; leaf member { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:member-community; } description "Community member value"; } } // list member container expression { presence "Enter the 'expression' context"; description "Enable the expression context"; leaf expr { type types-sros:expression-community; description "Community expression value"; } leaf exact { type boolean; default "false"; description "Match exactly for the specified expression"; } } // container expression } // list community list prefix-list { key "name"; description "Enter the prefix-list list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Prefix list name"; } list prefix { key "ip-prefix type"; description "Enter the prefix list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "IP prefix associated with prefix length"; } leaf type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "exact" { value 1; } enum "longer" { value 2; } enum "through" { value 3; } enum "range" { value 4; } enum "to" { value 5; } enum "address-mask" { value 6; } } } description "Prefix list match type"; } choice length { case range { leaf start-length { type uint32 { range "0..128"; } description "Start in the prefix range length"; } leaf end-length { type uint32 { range "0..128"; } description "End in the prefix range length"; } } case through { leaf through-length { type uint32 { range "0..128"; } description "Prefix through length"; } } case to { list to-prefix { key "ip-prefix"; description "Add a list entry for to-prefix"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "IP prefix for \"to\" match type"; } } // list to-prefix } case address-mask { list mask-pattern { key "address"; description "Add a list entry for mask-pattern"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "Address mask for matching routes to the prefix entry"; } } // list mask-pattern } } } // list prefix } // list prefix-list list policy-statement { key "name"; max-elements 65535; description "Enter the policy-statement list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Name of a policy statement"; } leaf description { type types-sros:description; description "Text description"; } leaf entry-type { type enumeration { enum "numbered" { value 1; } enum "named" { value 2; } } default "numbered"; description "The entry-type of a route policy entry"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4294967295"; } } description "Entry ID of a route policy entry"; } leaf description { type types-sros:description; description "Text description"; } container conditional-expression { presence "Enter the 'conditional-expression' context"; description "Enable the conditional-expression context"; leaf route-exists { type string { length "1..255"; pattern "\\s*\\[.+\\]\\s*(all|none)?" { error-message " enter valid prefix between [ ] and optionally add all or none"; } } description "Conditional expression to test route existence"; } } // container conditional-expression container from { presence "Enter the 'from' context"; description "Enable the from context"; leaf level { type int32 { range "1..2"; } description "ISIS route level as match criterion"; } leaf-list prefix-list { type union { type types-policy:param-midstring; type string; } max-elements 28; ordered-by user; description "Prefix list as match criterion"; } leaf area { type types-sros:ipv4-address; description "OSPF area as match criterion"; } leaf aggregate-contributor { type boolean; default "false"; description "Configure an aggregate contributor route as a match criterion for the entry."; } leaf evpn-type { type enumeration { enum "ethernet-auto-discovery" { value 1; } enum "mac-ip-advertisement" { value 2; } enum "inclusive-multicast" { value 3; } enum "ethernet-segment" { value 4; } enum "ip-prefix" { value 5; } enum "selective-multicast" { value 6; } enum "multicast-join-sync" { value 7; } enum "multicast-leave-sync" { value 8; } } description "EVPN type as a match criterion for the entry"; } leaf external { type boolean; default "false"; description "Specify external ISIS route as match criterion"; } leaf-list family { type types-bgp:ip-family-identifier; max-elements 20; description "Address family as the match condition"; } leaf group-address { type union { type types-policy:param-midstring; type string; } description "Prefix list of multicast group addresses to use as match criterion"; } leaf host-ip { type union { type types-policy:param-midstring; type string; } description "Prefix list of IGMP host IP addresses for matching"; } leaf-list interface { type union { type types-sros:named-item; type types-sros:interface-name; type types-sros:interface-name; type types-sros:interface-name; } max-elements 1; ordered-by user; description "Interface name as match criterion"; } leaf mvpn-type { type enumeration { enum "intra-as-ipmsi-auto-discovery" { value 1; } enum "inter-as-ipmsi-auto-discovery" { value 2; } enum "s-pmsi-auto-discovery" { value 3; } enum "intra-as-segment-leaf-auto-discovery" { value 4; } enum "source-active-auto-discovery" { value 5; } enum "shared-tree-join" { value 6; } enum "source-tree-join" { value 7; } } description "MVPN type as match criterion for the entry"; } leaf origin { type enumeration { enum "igp" { value 2; } enum "egp" { value 3; } enum "incomplete" { value 4; } enum "any" { value 5; } enum "aaa" { value 6; } enum "dynamic" { value 7; } enum "static" { value 8; } enum "bonding" { value 9; } } description "Origin attribute as a match criterion"; } leaf origin-validation-state { type enumeration { enum "valid" { value 1; } enum "not-found" { value 2; } enum "invalid" { value 3; } } description "Origin attribute as a match criterion"; } leaf ospf-type { type int32 { range "1..2"; } description "OSPF type metric applied to un-matching route entries"; } leaf path-type { type enumeration { enum "ibgp" { value 2; } enum "ebgp" { value 3; } } description "Path type as a match criterion"; } leaf policy { type union { type string { length "1..255"; pattern ".*[\\[].*" { error-message "expression not valid."; } } type string; } description "Policy statement as a match criterion"; } leaf state { type enumeration { enum "srrp-master" { value 2; } enum "srrp-non-master" { value 3; } enum "ipsec-master-with-peer" { value 6; } enum "ipsec-master-without-peer" { value 7; } enum "ipsec-non-master" { value 8; } } description "State that is used as match criterion"; } leaf tag { type union { type int64 { range "1..4294967295"; } type enumeration { enum "no-tag" { value 0; } } } description "Route tag as match criterion"; } leaf color { type int64 { range "0..4294967295"; } description "Color ID as a match criterion"; } leaf distinguisher { type int64 { range "0..4294967295"; } description "SR policy distinguisher as a match criterion"; } leaf endpoint { type types-sros:ip-address; description "SR policy endpoint address as a match criterion"; } container neighbor { description "Enter the neighbor context"; choice neighbor { case ip-address { leaf ip-address { type union { type types-sros:ip-address; type types-sros:ip-address-with-zone; } description "IP address to match the neighbor"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name to match the neighbor prefix list"; } } } } // container neighbor container interface-subnets { description "Enter the interface-subnets context"; leaf service { type string; default "Base"; description "Service-id of the interface subnets"; } leaf-list ip-int-name { type types-sros:interface-name; max-elements 10; ordered-by user; description "Interface name as match criterion"; } } // container interface-subnets container as-path { description "Enter the as-path context"; choice as-path { case name { leaf name { type union { type types-policy:param-midstring; type string; } description "AS Path regular expression statement as match criterion"; } } case group { leaf group { type union { type types-policy:param-midstring; type string; } description "AS Path Group as match criterion"; } } } container length { description "Enter the length context"; leaf value { type types-policy:value-255-param-name; description "AS numbers in the AS Path that match on the BGP route"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } leaf unique { type boolean; default "false"; description "Use unique AS numbers as matching criteria"; } } // container length } // container as-path container cluster-id { description "Enter the cluster-id context"; choice cluster-id { case ip-address { leaf-list ip-address { type types-sros:ipv4-prefix-with-host-bits; max-elements 5; ordered-by user; description "Cluster list attribute IP addresses for route matching"; } } case none-cluster-list { leaf none-cluster-list { type boolean; default "false"; description "Specify matching BGP routes without a cluster ID"; } } } } // container cluster-id container community { description "Enter the community context"; choice community { case name { leaf name { type union { type types-policy:param-midstring-64 { pattern "[^\\]\\[]+" { error-message "String must not contain square brackets ([])."; } } type string; } description "Community name to match"; } } case expression { leaf expression { type string { length "1..900"; } description "Community expression name as match criterion"; } } } container count { description "Enter the count context"; leaf value { type types-policy:value-param-1024-name; description "Number of BGP communities to match the BGP route"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } leaf type { type enumeration { enum "standard" { value 2; } enum "extended" { value 3; } enum "large" { value 4; } } description "Communities count to match the community count criteria"; } } // container count } // container community container flowspec { description "Enter the flowspec context"; leaf dest { type union { type types-policy:param-midstring; type string; } description "Match BGP flowspec routes per the destination IP prefix"; } leaf source { type union { type types-policy:param-midstring; type string; } description "Match BGP flowspec routes per the source IP prefix"; } } // container flowspec container local-preference { description "Enter the local-preference context"; leaf value { type types-policy:value-param-name-metric; description "BGP routes per local preference value or variable name"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } } // container local-preference container metric { description "Enter the metric context"; leaf value { type types-policy:value-param-name-metric; description "Local preference value, or variable name"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } } // container metric container next-hop { description "Enter the next-hop context"; choice next-hop { case ip-address { leaf ip-address { type types-sros:ip-unicast-address; description "IP address of next hop to match"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name of a next hop prefix list to match"; } } } } // container next-hop container protocol { description "Enter the protocol context"; leaf-list name { type enumeration { enum "direct" { value 2; } enum "static" { value 3; } enum "bgp" { value 4; } enum "isis" { value 5; } enum "ospf" { value 6; } enum "rip" { value 7; } enum "aggregate" { value 8; } enum "bgp-vpn" { value 9; } enum "igmp" { value 10; } enum "pim" { value 11; } enum "ospf3" { value 12; } enum "ldp" { value 13; } enum "sub-mgmt" { value 14; } enum "mld" { value 15; } enum "managed" { value 16; } enum "vpn-leak" { value 18; } enum "nat" { value 21; } enum "periodic" { value 22; } enum "ipsec" { value 23; } enum "dhcpv6-pd" { value 25; } enum "dhcpv6-na" { value 26; } enum "dhcpv6-ta" { value 27; } enum "dhcpv6-pd-excl" { value 28; } enum "ripng" { value 29; } enum "bgp-label" { value 31; } enum "direct-interface" { value 32; } enum "arp-nd" { value 33; } enum "rib-api" { value 34; } enum "evpn-ifl" { value 37; } } max-elements 5; description "List of protocol names as the match criterion"; } leaf instance { type union { type enumeration { enum "all" { value -1; } } type uint32 { range "0..31|64..95"; } } default "0"; description "Instance for protocol IS-IS, OSPF, or OSPFv3 to match"; } } // container protocol container source-address { description "Enter the source-address context"; choice source-address { case ip-address { leaf ip-address { type types-sros:ip-address; description "Source IP address to match"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name of a source address prefix list to match"; } } } } // container source-address container policy-variables { description "Enter the policy-variables context"; list name { key "variable-name"; max-elements 10; description "Enter the name list instance"; leaf variable-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-policy:policy-var-name; } description "Map a variable name to a value, a number, or address"; } choice variable-type { case value { leaf value { type types-sros:named-item; description "Variable name that is resolved to assigned value"; } } case number { leaf number { type uint64 { range "0..4294967295"; } description "Variable name that is resolved to assigned value"; } } case address { leaf address { type types-sros:ip-address; description "Variable name that is resolved to IP address"; } } case decimal { leaf decimal { type decimal64 { range "0.000..4294967295.000"; fraction-digits 3; } description "Attribute decimal to which variable-name is resolved"; } } } } // list name } // container policy-variables } // container from container to { presence "Enter the 'to' context"; description "Enable the to context"; leaf level { type int32 { range "1..2"; } description "ISIS route level as match criterion"; } leaf-list prefix-list { type union { type types-policy:param-midstring; type string; } max-elements 28; ordered-by user; description "Prefix list as match criterion"; } container neighbor { description "Enter the neighbor context"; choice neighbor { case ip-address { leaf ip-address { type union { type types-sros:ip-address; type types-sros:ip-address-with-zone; } description "IP address to match the neighbor"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name to match the neighbor prefix list"; } } } } // container neighbor container protocol { description "Enter the protocol context"; leaf-list name { type enumeration { enum "bgp" { value 4; } enum "isis" { value 5; } enum "ospf" { value 6; } enum "rip" { value 7; } enum "bgp-vpn" { value 9; } enum "ospf3" { value 12; } enum "ldp" { value 13; } enum "vpn-leak" { value 18; } enum "ripng" { value 29; } enum "bgp-label" { value 31; } enum "evpn-ifl" { value 37; } } max-elements 2; description "Protocol name to match"; } leaf instance { type union { type enumeration { enum "all" { value -1; } } type uint32 { range "0..31|64..95"; } } default "0"; description "Instance for protocol ISIS, OSPF, or OSPF3"; } } // container protocol } // container to container action { presence "Enter the 'action' context"; description "Enable the action context"; leaf action-type { type enumeration { enum "accept" { value 1; } enum "reject" { value 2; } enum "next-entry" { value 3; } enum "next-policy" { value 4; } } description "Type of action for routes matching route policy entry"; } leaf add-paths-send-limit { type union { type int32 { range "1..16"; } type enumeration { enum "multipaths" { value -1; } } } description "BGP Add-Paths send limit that is applied for routes"; } leaf admin-tag-policy { type union { type types-policy:param-midstring-64; type string; } description "Administrative tag policy name"; } leaf advertise-label { type enumeration { enum "per-prefix" { value 1; } enum "pop" { value 2; } } description "Label allocation for matched BGP routes"; } leaf bgp-high-priority { type boolean; default "false"; description "Tag routes as high priority for faster table updates"; } leaf bgp-leak { type boolean; default "false"; description "Allow leaking for BGP routes"; } leaf create-udp-tunnel { type boolean; default "false"; description "Create an MPLS-over-UDP tunnel"; } leaf damping { type union { type enumeration { enum "none" { value 0; } } type types-policy:param-midstring; type string; } description "Damping profile for routes"; } leaf dest-class { type types-sros:class-index; description "Default destination class for the policy statement"; } leaf egress-statistics { type boolean; default "false"; description "Enable egress statistics for BGP-LU routes"; } leaf ingress-statistics { type boolean; default "false"; description "Enable ingress statistics for BGP-LU routes"; } leaf flex-algo { type types-policy:value-param-name-flex-algo; description "Flexible algorithm for BGP next-hop autobind operation"; } leaf install-backup-path { type boolean; default "false"; description "Install a preprogrammed backup path for the prefix"; } leaf local-preference { type types-policy:value-param-name-metric; description "BGP local preference for routes not matching any entry"; } leaf next-hop { type union { type enumeration { enum "peer-address" { value -2; } enum "self" { value -1; } } type types-sros:ip-address; type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Next-hop IP address applied to routes"; } leaf origin { type union { type enumeration { enum "igp" { value 2; } enum "egp" { value 3; } enum "incomplete" { value 4; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "BGP origin for routes that are exported into BGP"; } leaf origin-validation-state { type union { type enumeration { enum "valid" { value 1; } enum "not-found" { value 2; } enum "invalid" { value 3; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Origin validation state for routes"; } leaf preference { type union { type uint32 { range "1..255"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Route preference applied to routes"; } leaf resolve-static { type boolean; default "false"; description "Resolve next hop of static route for BGP next hop"; } leaf source-class { type types-sros:class-index; description "Default source class for the policy statement"; } leaf sticky-ecmp { type boolean; default "false"; description "Specify sticky ECMP flag for BGP ECMP routes"; } leaf tag { type union { type uint32 { range "1..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF RIP or ISIS tag applied to routes"; } leaf type { type union { type int32 { range "1..2"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF type metric applied to routes"; } leaf route-table-install { type boolean; default "true"; description "Allow installation in route table"; } leaf sr-maintenance-policy { type union { type types-policy:param-midstring; type string; } description "SR maintenance policy as an action"; } container aigp-metric { description "Enter the aigp-metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "AIGP metric to add"; } } case set { leaf set { type types-policy:value-param-name-metric-igp; description "AIGP metric"; } } } } // container aigp-metric container as-path { description "Enter the as-path context"; choice action { case add { leaf add { type union { type types-policy:param-midstring; type string; } description "AS path to add"; } } case replace { leaf replace { type union { type types-policy:param-midstring; type string; } description "AS path to replace"; } } } } // container as-path container as-path-prepend { description "Enter the as-path-prepend context"; leaf as-path { type types-policy:value-param-name-range; description "AS number to prepend to AS path attribute"; } leaf repeat { type types-policy:repeat-value-param-name; default "1"; description "Number of times to prepend the specified AS number"; } } // container as-path-prepend container bgp-tunnel-metric { description "Enter the bgp-tunnel-metric context"; leaf value { type types-policy:value-param-name; description "BGP tunnel table metric value"; } leaf prefer-aigp { type boolean; default "false"; description "Use the AIGP attribute as tunnel metric when present"; } } // container bgp-tunnel-metric container metric { description "Enter the metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "Metric to add"; } } case subtract { leaf subtract { type types-policy:value-param-name-metric; description "Metric to subtract"; } } case set { leaf set { type union { type enumeration { enum "igp" { status obsolete; } } type int64 { range "0..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Metric to assign"; } } } } // container metric container multicast-redirection { description "Enter the multicast-redirection context"; leaf fwd-service { type string; default "Base"; description "Service ID for multicast redirection"; } leaf ip-int-name { type types-sros:interface-name; description "Interface index to redirect IGMP multicast traffic"; } } // container multicast-redirection container sr-label-index { description "Enter the sr-label-index context"; leaf value { type types-policy:value-524287-param-name; description "BGP SR label index associated with routes"; } leaf prefer-igp { type boolean; default "false"; description "Use the SR label index from the IGP route when present"; } } // container sr-label-index container bgp-med { description "Enter the bgp-med context"; choice action { case set { leaf set { type types-policy:value-param-name-bgp-med-igp; description "Assign BGP-MED"; } } case adjust { leaf adjust { type string { length "1..64"; pattern "(.*@.+@.*)|(.*_med_.*)|(.*_igp_.*)" { error-message "Expression must contain variable _igp_ or _med_ or @parameter@"; } pattern ".*[+\\-*].*" { error-message "Expression must contain one valid operator. Supported operators are +, - and *"; } } description "Adjust BGP-MED"; } } } } // container bgp-med container forwarding-class { description "Enter the forwarding-class context"; leaf fc { type enumeration { enum "be" { value 0; } enum "l2" { value 1; } enum "af" { value 2; } enum "l1" { value 3; } enum "h2" { value 4; } enum "ef" { value 5; } enum "h1" { value 6; } enum "nc" { value 7; } } description "Forwarding class associated with the route"; } leaf priority { type enumeration { enum "low" { value 1; } enum "high" { value 2; } } description "Route priority"; } } // container forwarding-class container community { description "Enter the community context"; choice action { case action1 { leaf-list add { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to add"; } leaf-list remove { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to remove"; } } case action2 { leaf-list replace { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to replace"; } } } } // container community } // container action } // list entry list named-entry { key "entry-name"; max-elements 16384; ordered-by user; description "Enter the named-entry list instance"; leaf entry-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-255; } description "The name of a route policy entry"; } leaf description { type types-sros:description; description "Text description"; } container conditional-expression { presence "Enter the 'conditional-expression' context"; description "Enable the conditional-expression context"; leaf route-exists { type string { length "1..255"; pattern "\\s*\\[.+\\]\\s*(all|none)?" { error-message " enter valid prefix between [ ] and optionally add all or none"; } } description "Conditional expression to test route existence"; } } // container conditional-expression container from { presence "Enter the 'from' context"; description "Enable the from context"; leaf level { type int32 { range "1..2"; } description "ISIS route level as match criterion"; } leaf-list prefix-list { type union { type types-policy:param-midstring; type string; } max-elements 28; ordered-by user; description "Prefix list as match criterion"; } leaf area { type types-sros:ipv4-address; description "OSPF area as match criterion"; } leaf aggregate-contributor { type boolean; default "false"; description "Configure an aggregate contributor route as a match criterion for the entry."; } leaf evpn-type { type enumeration { enum "ethernet-auto-discovery" { value 1; } enum "mac-ip-advertisement" { value 2; } enum "inclusive-multicast" { value 3; } enum "ethernet-segment" { value 4; } enum "ip-prefix" { value 5; } enum "selective-multicast" { value 6; } enum "multicast-join-sync" { value 7; } enum "multicast-leave-sync" { value 8; } } description "EVPN type as a match criterion for the entry"; } leaf external { type boolean; default "false"; description "Specify external ISIS route as match criterion"; } leaf-list family { type types-bgp:ip-family-identifier; max-elements 20; description "Address family as the match condition"; } leaf group-address { type union { type types-policy:param-midstring; type string; } description "Prefix list of multicast group addresses to use as match criterion"; } leaf host-ip { type union { type types-policy:param-midstring; type string; } description "Prefix list of IGMP host IP addresses for matching"; } leaf-list interface { type union { type types-sros:named-item; type types-sros:interface-name; type types-sros:interface-name; type types-sros:interface-name; } max-elements 1; ordered-by user; description "Interface name as match criterion"; } leaf mvpn-type { type enumeration { enum "intra-as-ipmsi-auto-discovery" { value 1; } enum "inter-as-ipmsi-auto-discovery" { value 2; } enum "s-pmsi-auto-discovery" { value 3; } enum "intra-as-segment-leaf-auto-discovery" { value 4; } enum "source-active-auto-discovery" { value 5; } enum "shared-tree-join" { value 6; } enum "source-tree-join" { value 7; } } description "MVPN type as match criterion for the entry"; } leaf origin { type enumeration { enum "igp" { value 2; } enum "egp" { value 3; } enum "incomplete" { value 4; } enum "any" { value 5; } enum "aaa" { value 6; } enum "dynamic" { value 7; } enum "static" { value 8; } enum "bonding" { value 9; } } description "Origin attribute as a match criterion"; } leaf origin-validation-state { type enumeration { enum "valid" { value 1; } enum "not-found" { value 2; } enum "invalid" { value 3; } } description "Origin attribute as a match criterion"; } leaf ospf-type { type int32 { range "1..2"; } description "OSPF type metric applied to un-matching route entries"; } leaf path-type { type enumeration { enum "ibgp" { value 2; } enum "ebgp" { value 3; } } description "Path type as a match criterion"; } leaf policy { type union { type string { length "1..255"; pattern ".*[\\[].*" { error-message "expression not valid."; } } type string; } description "Policy statement as a match criterion"; } leaf state { type enumeration { enum "srrp-master" { value 2; } enum "srrp-non-master" { value 3; } enum "ipsec-master-with-peer" { value 6; } enum "ipsec-master-without-peer" { value 7; } enum "ipsec-non-master" { value 8; } } description "State that is used as match criterion"; } leaf tag { type union { type int64 { range "1..4294967295"; } type enumeration { enum "no-tag" { value 0; } } } description "Route tag as match criterion"; } leaf color { type int64 { range "0..4294967295"; } description "Color ID as a match criterion"; } leaf distinguisher { type int64 { range "0..4294967295"; } description "SR policy distinguisher as a match criterion"; } leaf endpoint { type types-sros:ip-address; description "SR policy endpoint address as a match criterion"; } container neighbor { description "Enter the neighbor context"; choice neighbor { case ip-address { leaf ip-address { type union { type types-sros:ip-address; type types-sros:ip-address-with-zone; } description "IP address to match the neighbor"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name to match the neighbor prefix list"; } } } } // container neighbor container interface-subnets { description "Enter the interface-subnets context"; leaf service { type string; default "Base"; description "Service-id of the interface subnets"; } leaf-list ip-int-name { type types-sros:interface-name; max-elements 10; ordered-by user; description "Interface name as match criterion"; } } // container interface-subnets container as-path { description "Enter the as-path context"; choice as-path { case name { leaf name { type union { type types-policy:param-midstring; type string; } description "AS Path regular expression statement as match criterion"; } } case group { leaf group { type union { type types-policy:param-midstring; type string; } description "AS Path Group as match criterion"; } } } container length { description "Enter the length context"; leaf value { type types-policy:value-255-param-name; description "AS numbers in the AS Path that match on the BGP route"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } leaf unique { type boolean; default "false"; description "Use unique AS numbers as matching criteria"; } } // container length } // container as-path container cluster-id { description "Enter the cluster-id context"; choice cluster-id { case ip-address { leaf-list ip-address { type types-sros:ipv4-prefix-with-host-bits; max-elements 5; ordered-by user; description "Cluster list attribute IP addresses for route matching"; } } case none-cluster-list { leaf none-cluster-list { type boolean; default "false"; description "Specify matching BGP routes without a cluster ID"; } } } } // container cluster-id container community { description "Enter the community context"; choice community { case name { leaf name { type union { type types-policy:param-midstring-64 { pattern "[^\\]\\[]+" { error-message "String must not contain square brackets ([])."; } } type string; } description "Community name to match"; } } case expression { leaf expression { type string { length "1..900"; } description "Community expression name as match criterion"; } } } container count { description "Enter the count context"; leaf value { type types-policy:value-param-1024-name; description "Number of BGP communities to match the BGP route"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } leaf type { type enumeration { enum "standard" { value 2; } enum "extended" { value 3; } enum "large" { value 4; } } description "Communities count to match the community count criteria"; } } // container count } // container community container flowspec { description "Enter the flowspec context"; leaf dest { type union { type types-policy:param-midstring; type string; } description "Match BGP flowspec routes per the destination IP prefix"; } leaf source { type union { type types-policy:param-midstring; type string; } description "Match BGP flowspec routes per the source IP prefix"; } } // container flowspec container local-preference { description "Enter the local-preference context"; leaf value { type types-policy:value-param-name-metric; description "BGP routes per local preference value or variable name"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } } // container local-preference container metric { description "Enter the metric context"; leaf value { type types-policy:value-param-name-metric; description "Local preference value, or variable name"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } } // container metric container next-hop { description "Enter the next-hop context"; choice next-hop { case ip-address { leaf ip-address { type types-sros:ip-unicast-address; description "IP address of next hop to match"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name of a next hop prefix list to match"; } } } } // container next-hop container protocol { description "Enter the protocol context"; leaf-list name { type enumeration { enum "direct" { value 2; } enum "static" { value 3; } enum "bgp" { value 4; } enum "isis" { value 5; } enum "ospf" { value 6; } enum "rip" { value 7; } enum "aggregate" { value 8; } enum "bgp-vpn" { value 9; } enum "igmp" { value 10; } enum "pim" { value 11; } enum "ospf3" { value 12; } enum "ldp" { value 13; } enum "sub-mgmt" { value 14; } enum "mld" { value 15; } enum "managed" { value 16; } enum "vpn-leak" { value 18; } enum "nat" { value 21; } enum "periodic" { value 22; } enum "ipsec" { value 23; } enum "dhcpv6-pd" { value 25; } enum "dhcpv6-na" { value 26; } enum "dhcpv6-ta" { value 27; } enum "dhcpv6-pd-excl" { value 28; } enum "ripng" { value 29; } enum "bgp-label" { value 31; } enum "direct-interface" { value 32; } enum "arp-nd" { value 33; } enum "rib-api" { value 34; } enum "evpn-ifl" { value 37; } } max-elements 5; description "List of protocol names as the match criterion"; } leaf instance { type union { type enumeration { enum "all" { value -1; } } type uint32 { range "0..31|64..95"; } } default "0"; description "Instance for protocol IS-IS, OSPF, or OSPFv3 to match"; } } // container protocol container source-address { description "Enter the source-address context"; choice source-address { case ip-address { leaf ip-address { type types-sros:ip-address; description "Source IP address to match"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name of a source address prefix list to match"; } } } } // container source-address container policy-variables { description "Enter the policy-variables context"; list name { key "variable-name"; max-elements 10; description "Enter the name list instance"; leaf variable-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-policy:policy-var-name; } description "Map a variable name to a value, a number, or address"; } choice variable-type { case value { leaf value { type types-sros:named-item; description "Variable name that is resolved to assigned value"; } } case number { leaf number { type uint64 { range "0..4294967295"; } description "Variable name that is resolved to assigned value"; } } case address { leaf address { type types-sros:ip-address; description "Variable name that is resolved to IP address"; } } case decimal { leaf decimal { type decimal64 { range "0.000..4294967295.000"; fraction-digits 3; } description "Attribute decimal to which variable-name is resolved"; } } } } // list name } // container policy-variables } // container from container to { presence "Enter the 'to' context"; description "Enable the to context"; leaf level { type int32 { range "1..2"; } description "ISIS route level as match criterion"; } leaf-list prefix-list { type union { type types-policy:param-midstring; type string; } max-elements 28; ordered-by user; description "Prefix list as match criterion"; } container neighbor { description "Enter the neighbor context"; choice neighbor { case ip-address { leaf ip-address { type union { type types-sros:ip-address; type types-sros:ip-address-with-zone; } description "IP address to match the neighbor"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name to match the neighbor prefix list"; } } } } // container neighbor container protocol { description "Enter the protocol context"; leaf-list name { type enumeration { enum "bgp" { value 4; } enum "isis" { value 5; } enum "ospf" { value 6; } enum "rip" { value 7; } enum "bgp-vpn" { value 9; } enum "ospf3" { value 12; } enum "ldp" { value 13; } enum "vpn-leak" { value 18; } enum "ripng" { value 29; } enum "bgp-label" { value 31; } enum "evpn-ifl" { value 37; } } max-elements 2; description "Protocol name to match"; } leaf instance { type union { type enumeration { enum "all" { value -1; } } type uint32 { range "0..31|64..95"; } } default "0"; description "Instance for protocol ISIS, OSPF, or OSPF3"; } } // container protocol } // container to container action { presence "Enter the 'action' context"; description "Enable the action context"; leaf action-type { type enumeration { enum "accept" { value 1; } enum "reject" { value 2; } enum "next-entry" { value 3; } enum "next-policy" { value 4; } } description "Type of action for routes matching route policy entry"; } leaf add-paths-send-limit { type union { type int32 { range "1..16"; } type enumeration { enum "multipaths" { value -1; } } } description "BGP Add-Paths send limit that is applied for routes"; } leaf admin-tag-policy { type union { type types-policy:param-midstring-64; type string; } description "Administrative tag policy name"; } leaf advertise-label { type enumeration { enum "per-prefix" { value 1; } enum "pop" { value 2; } } description "Label allocation for matched BGP routes"; } leaf bgp-high-priority { type boolean; default "false"; description "Tag routes as high priority for faster table updates"; } leaf bgp-leak { type boolean; default "false"; description "Allow leaking for BGP routes"; } leaf create-udp-tunnel { type boolean; default "false"; description "Create an MPLS-over-UDP tunnel"; } leaf damping { type union { type enumeration { enum "none" { value 0; } } type types-policy:param-midstring; type string; } description "Damping profile for routes"; } leaf dest-class { type types-sros:class-index; description "Default destination class for the policy statement"; } leaf egress-statistics { type boolean; default "false"; description "Enable egress statistics for BGP-LU routes"; } leaf ingress-statistics { type boolean; default "false"; description "Enable ingress statistics for BGP-LU routes"; } leaf flex-algo { type types-policy:value-param-name-flex-algo; description "Flexible algorithm for BGP next-hop autobind operation"; } leaf install-backup-path { type boolean; default "false"; description "Install a preprogrammed backup path for the prefix"; } leaf local-preference { type types-policy:value-param-name-metric; description "BGP local preference for routes not matching any entry"; } leaf next-hop { type union { type enumeration { enum "peer-address" { value -2; } enum "self" { value -1; } } type types-sros:ip-address; type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Next-hop IP address applied to routes"; } leaf origin { type union { type enumeration { enum "igp" { value 2; } enum "egp" { value 3; } enum "incomplete" { value 4; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "BGP origin for routes that are exported into BGP"; } leaf origin-validation-state { type union { type enumeration { enum "valid" { value 1; } enum "not-found" { value 2; } enum "invalid" { value 3; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Origin validation state for routes"; } leaf preference { type union { type uint32 { range "1..255"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Route preference applied to routes"; } leaf resolve-static { type boolean; default "false"; description "Resolve next hop of static route for BGP next hop"; } leaf source-class { type types-sros:class-index; description "Default source class for the policy statement"; } leaf sticky-ecmp { type boolean; default "false"; description "Specify sticky ECMP flag for BGP ECMP routes"; } leaf tag { type union { type uint32 { range "1..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF RIP or ISIS tag applied to routes"; } leaf type { type union { type int32 { range "1..2"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF type metric applied to routes"; } leaf route-table-install { type boolean; default "true"; description "Allow installation in route table"; } leaf sr-maintenance-policy { type union { type types-policy:param-midstring; type string; } description "SR maintenance policy as an action"; } container aigp-metric { description "Enter the aigp-metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "AIGP metric to add"; } } case set { leaf set { type types-policy:value-param-name-metric-igp; description "AIGP metric"; } } } } // container aigp-metric container as-path { description "Enter the as-path context"; choice action { case add { leaf add { type union { type types-policy:param-midstring; type string; } description "AS path to add"; } } case replace { leaf replace { type union { type types-policy:param-midstring; type string; } description "AS path to replace"; } } } } // container as-path container as-path-prepend { description "Enter the as-path-prepend context"; leaf as-path { type types-policy:value-param-name-range; description "AS number to prepend to AS path attribute"; } leaf repeat { type types-policy:repeat-value-param-name; default "1"; description "Number of times to prepend the specified AS number"; } } // container as-path-prepend container bgp-tunnel-metric { description "Enter the bgp-tunnel-metric context"; leaf value { type types-policy:value-param-name; description "BGP tunnel table metric value"; } leaf prefer-aigp { type boolean; default "false"; description "Use the AIGP attribute as tunnel metric when present"; } } // container bgp-tunnel-metric container metric { description "Enter the metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "Metric to add"; } } case subtract { leaf subtract { type types-policy:value-param-name-metric; description "Metric to subtract"; } } case set { leaf set { type union { type enumeration { enum "igp" { status obsolete; } } type int64 { range "0..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Metric to assign"; } } } } // container metric container multicast-redirection { description "Enter the multicast-redirection context"; leaf fwd-service { type string; default "Base"; description "Service ID for multicast redirection"; } leaf ip-int-name { type types-sros:interface-name; description "Interface index to redirect IGMP multicast traffic"; } } // container multicast-redirection container sr-label-index { description "Enter the sr-label-index context"; leaf value { type types-policy:value-524287-param-name; description "BGP SR label index associated with routes"; } leaf prefer-igp { type boolean; default "false"; description "Use the SR label index from the IGP route when present"; } } // container sr-label-index container bgp-med { description "Enter the bgp-med context"; choice action { case set { leaf set { type types-policy:value-param-name-bgp-med-igp; description "Assign BGP-MED"; } } case adjust { leaf adjust { type string { length "1..64"; pattern "(.*@.+@.*)|(.*_med_.*)|(.*_igp_.*)" { error-message "Expression must contain variable _igp_ or _med_ or @parameter@"; } pattern ".*[+\\-*].*" { error-message "Expression must contain one valid operator. Supported operators are +, - and *"; } } description "Adjust BGP-MED"; } } } } // container bgp-med container forwarding-class { description "Enter the forwarding-class context"; leaf fc { type enumeration { enum "be" { value 0; } enum "l2" { value 1; } enum "af" { value 2; } enum "l1" { value 3; } enum "h2" { value 4; } enum "ef" { value 5; } enum "h1" { value 6; } enum "nc" { value 7; } } description "Forwarding class associated with the route"; } leaf priority { type enumeration { enum "low" { value 1; } enum "high" { value 2; } } description "Route priority"; } } // container forwarding-class container community { description "Enter the community context"; choice action { case action1 { leaf-list add { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to add"; } leaf-list remove { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to remove"; } } case action2 { leaf-list replace { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to replace"; } } } } // container community } // container action } // list named-entry container default-action { presence "Enter the 'default-action' context"; description "Enable the default-action context"; leaf action-type { type enumeration { enum "accept" { value 1; } enum "reject" { value 2; } enum "next-entry" { value 3; } enum "next-policy" { value 4; } } description "Type of action for routes matching route policy entry"; } leaf add-paths-send-limit { type union { type int32 { range "1..16"; } type enumeration { enum "multipaths" { value -1; } } } description "BGP Add-Paths send limit that is applied for routes"; } leaf admin-tag-policy { type union { type types-policy:param-midstring-64; type string; } description "Administrative tag policy name"; } leaf advertise-label { type enumeration { enum "per-prefix" { value 1; } enum "pop" { value 2; } } description "Label allocation for matched BGP routes"; } leaf bgp-high-priority { type boolean; default "false"; description "Tag routes as high priority for faster table updates"; } leaf bgp-leak { type boolean; default "false"; description "Allow leaking for BGP routes"; } leaf create-udp-tunnel { type boolean; default "false"; description "Create an MPLS-over-UDP tunnel"; } leaf damping { type union { type enumeration { enum "none" { value 0; } } type types-policy:param-midstring; type string; } description "Damping profile for routes"; } leaf dest-class { type types-sros:class-index; description "Default destination class for the policy statement"; } leaf egress-statistics { type boolean; default "false"; description "Enable egress statistics for BGP-LU routes"; } leaf ingress-statistics { type boolean; default "false"; description "Enable ingress statistics for BGP-LU routes"; } leaf flex-algo { type types-policy:value-param-name-flex-algo; description "Flexible algorithm for BGP next-hop autobind operation"; } leaf install-backup-path { type boolean; default "false"; description "Install a preprogrammed backup path for the prefix"; } leaf local-preference { type types-policy:value-param-name-metric; description "BGP local preference for routes not matching any entry"; } leaf next-hop { type union { type enumeration { enum "peer-address" { value -2; } enum "self" { value -1; } } type types-sros:ip-address; type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Next-hop IP address applied to routes"; } leaf origin { type union { type enumeration { enum "igp" { value 2; } enum "egp" { value 3; } enum "incomplete" { value 4; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "BGP origin for routes that are exported into BGP"; } leaf origin-validation-state { type union { type enumeration { enum "valid" { value 1; } enum "not-found" { value 2; } enum "invalid" { value 3; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Origin validation state for routes"; } leaf preference { type union { type uint32 { range "1..255"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Route preference applied to routes"; } leaf resolve-static { type boolean; default "false"; description "Resolve next hop of static route for BGP next hop"; } leaf source-class { type types-sros:class-index; description "Default source class for the policy statement"; } leaf sticky-ecmp { type boolean; default "false"; description "Specify sticky ECMP flag for BGP ECMP routes"; } leaf tag { type union { type uint32 { range "1..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF RIP or ISIS tag applied to routes"; } leaf type { type union { type int32 { range "1..2"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF type metric applied to routes"; } leaf route-table-install { type boolean; default "true"; description "Allow installation in route table"; } leaf sr-maintenance-policy { type union { type types-policy:param-midstring; type string; } description "SR maintenance policy as an action"; } container aigp-metric { description "Enter the aigp-metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "AIGP metric to add"; } } case set { leaf set { type types-policy:value-param-name-metric-igp; description "AIGP metric"; } } } } // container aigp-metric container as-path { description "Enter the as-path context"; choice action { case add { leaf add { type union { type types-policy:param-midstring; type string; } description "AS path to add"; } } case replace { leaf replace { type union { type types-policy:param-midstring; type string; } description "AS path to replace"; } } } } // container as-path container as-path-prepend { description "Enter the as-path-prepend context"; leaf as-path { type types-policy:value-param-name-range; description "AS number to prepend to AS path attribute"; } leaf repeat { type types-policy:repeat-value-param-name; default "1"; description "Number of times to prepend the specified AS number"; } } // container as-path-prepend container bgp-tunnel-metric { description "Enter the bgp-tunnel-metric context"; leaf value { type types-policy:value-param-name; description "BGP tunnel table metric value"; } leaf prefer-aigp { type boolean; default "false"; description "Use the AIGP attribute as tunnel metric when present"; } } // container bgp-tunnel-metric container metric { description "Enter the metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "Metric to add"; } } case subtract { leaf subtract { type types-policy:value-param-name-metric; description "Metric to subtract"; } } case set { leaf set { type union { type enumeration { enum "igp" { status obsolete; } } type int64 { range "0..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Metric to assign"; } } } } // container metric container multicast-redirection { description "Enter the multicast-redirection context"; leaf fwd-service { type string; default "Base"; description "Service ID for multicast redirection"; } leaf ip-int-name { type types-sros:interface-name; description "Interface index to redirect IGMP multicast traffic"; } } // container multicast-redirection container sr-label-index { description "Enter the sr-label-index context"; leaf value { type types-policy:value-524287-param-name; description "BGP SR label index associated with routes"; } leaf prefer-igp { type boolean; default "false"; description "Use the SR label index from the IGP route when present"; } } // container sr-label-index container bgp-med { description "Enter the bgp-med context"; choice action { case set { leaf set { type types-policy:value-param-name-bgp-med-igp; description "Assign BGP-MED"; } } case adjust { leaf adjust { type string { length "1..64"; pattern "(.*@.+@.*)|(.*_med_.*)|(.*_igp_.*)" { error-message "Expression must contain variable _igp_ or _med_ or @parameter@"; } pattern ".*[+\\-*].*" { error-message "Expression must contain one valid operator. Supported operators are +, - and *"; } } description "Adjust BGP-MED"; } } } } // container bgp-med container community { description "Enter the community context"; choice action { case action1 { leaf-list add { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to add"; } leaf-list remove { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to remove"; } } case action2 { leaf-list replace { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to replace"; } } } } // container community } // container default-action } // list policy-statement } // container policy-options list port { key "port-id"; description "Enter the port list instance"; leaf port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port; } description "Unique port ID"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of this port"; } leaf description { type types-sros:long-description; description "Text description"; } leaf ddm-events { type boolean; default "true"; description "Enable Digital Diagnostic Monitoring (DDM) events"; } leaf monitor-agg-egress-queue-stats { type boolean; default "false"; description "Monitor aggregate queue statistics"; } container hybrid-buffer-allocation { description "Enter the hybrid-buffer-allocation context"; container egress-weight { description "Enter the egress-weight context"; leaf access { type uint32 { range "0..100"; } default "50"; description "Access weight for hybrid port"; } leaf network { type uint32 { range "0..100"; } default "50"; description "Access weight for hybrid port"; } } // container egress-weight container ingress-weight { description "Enter the ingress-weight context"; leaf access { type uint32 { range "0..100"; } default "50"; description "Access weight for hybrid port"; } leaf network { type uint32 { range "0..100"; } default "50"; description "Access weight for hybrid port"; } } // container ingress-weight } // container hybrid-buffer-allocation container modify-buffer-allocation { description "Enter the modify-buffer-allocation context"; container percentage-of-rate { description "Enter the percentage-of-rate context"; leaf egress { type uint32 { range "1..1000"; } description "Egress rate percentage"; } leaf ingress { type uint32 { range "1..1000"; } default "100"; description "Ingress rate percentage"; } } // container percentage-of-rate } // container modify-buffer-allocation container transceiver { description "Enter the transceiver context"; leaf digital-coherent-optics { type boolean; default "false"; description "Enable/disable digital coherent optics on the transceiver."; } } // container transceiver container access { description "Enter the access context"; container egress { description "Enter the egress context"; list pool { key "name"; description "Enter the pool list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Pool name for access port"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for amber alarm on oversubscription"; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for red alarm on oversubscription"; } leaf slope-policy { type types-sros:named-item; description "Slope policy for high and low priority RED slope parameters and time average factor"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type union { type int32 { range "0..100"; } type enumeration { enum "auto" { value -1; } } } units "percent"; default "auto"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container egress container ingress { description "Enter the ingress context"; list pool { key "name"; description "Enter the pool list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Pool name for access port"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for amber alarm on oversubscription"; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for red alarm on oversubscription"; } leaf slope-policy { type types-sros:named-item; description "Slope policy for high and low priority RED slope parameters and time average factor"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type union { type int32 { range "0..100"; } type enumeration { enum "auto" { value -1; } } } units "percent"; default "auto"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container ingress } // container access container connector { description "Enter the connector context"; leaf breakout { type enumeration { enum "c1-40g" { value 2; } enum "c4-10g" { value 3; } enum "c1-100g" { value 4; } enum "c4-25g" { value 5; } enum "c10-10g" { value 6; } enum "c1-400g" { value 8; } enum "c2-100g" { value 9; } enum "c4-100g" { value 10; } enum "c1-10g" { value 11; } enum "c1-25g" { value 13; } enum "c1-50g" { value 14; } } sros-ext:immutable; description "Breakout for this connector port"; } leaf rs-fec-mode { type enumeration { enum "cl91-514-528" { value 1; } enum "cl91-514-544" { value 2; } } description "Configure the RS FEC mode for this connector."; } } // container connector container dwdm { description "Enter the dwdm context"; leaf channel { type types-port:optical-dwdm-channel; description "DWDM channel number"; } leaf rxdtv-adjust { type boolean; description "Adjust feedback for received decision threshold voltage"; } container wavetracker { description "Enter the wavetracker context"; container encode { presence "Enter the 'encode' context"; description "Enable the encode context"; leaf key1 { type uint32 { range "1..4095"; } description "Configure the first wavetracker key."; } leaf key2 { type uint32 { range "1..4095"; } description "Configure the second wavetracker key."; } } // container encode container power-control { presence "Enter the 'power-control' context"; description "Enable the power-control context"; leaf target-power { type decimal64 { range "-22..3"; fraction-digits 2; } units "decibel-milliwatts"; default "-20"; description "Configure desired average output power."; } } // container power-control container report-alarm { description "Enter the report-alarm context"; leaf encoder-failure { type boolean; default "true"; description "Enable/disable encoder-failure alarm."; } leaf encoder-degrade { type boolean; default "true"; description "Enable/disable encoder-degrade alarm."; } leaf power-control-failure { type boolean; default "true"; description "Enable/disable power-control-failure alarm."; } leaf power-control-degrade { type boolean; default "true"; description "Enable/disable power-control-degrade alarm."; } leaf power-control-high-limit { type boolean; default "true"; description "Enable/disable power-control-high-limit alarm."; } leaf power-control-low-limit { type boolean; default "true"; description "Enable/disable power-control-low-limit alarm."; } leaf missing-pluggable-voa { type boolean; default "true"; description "Enable/disable missing-pluggable-voa alarm."; } } // container report-alarm } // container wavetracker container coherent { description "Enter the coherent context"; leaf channel { type types-port:optical-dwdm-channel; description "Received channel number"; } leaf compatibility { type types-port:optical-compatibility-mode; default "long-haul"; description "Optical mode and rate of operation"; } leaf cpr-window-size { type uint32 { range "2|4|8|16|32|64"; } units "symbols"; default "32"; description "Window size for the carrier phase recovery"; } leaf dispersion { type int32 { range "-50000..50000"; } units "picoseconds per nanometer"; description "Dispersion compensation"; } leaf mode { type types-port:optical-dispersion-control-mode; default "automatic"; description "Dispersion algorithm mode"; } leaf rx-los-reaction { type types-port:los-reaction; default "squelch"; description "Reaction to RX LOS"; } leaf rx-los-thresh { type decimal64 { range "-30..-13"; fraction-digits 2; } units "decibel-milliwatts"; default "-23"; description "LOS threshold of the average input power"; } leaf target-power { type decimal64 { range "-20..3"; fraction-digits 2; } units "decibel-milliwatts"; default "1"; description "Target for average of the output power"; } container report-alarm { description "Enter the report-alarm context"; leaf modflt { type boolean; default "true"; description "Report module fault alarm"; } leaf mod { type boolean; default "true"; description "Report module alarm"; } leaf netrx { type boolean; default "true"; description "Report network (optical side) receive alarm"; } leaf nettx { type boolean; default "true"; description "Report network (optical side) transmit alarm"; } leaf hosttx { type boolean; default "true"; description "Report host (electrical side) transmit alarm"; } } // container report-alarm container sweep { description "Enter the sweep context"; leaf start { type int32 { range "-50000..50000"; } units "picoseconds per nanometer"; default "-25500"; description "Start value of dispersion sweeping"; } leaf end { type int32 { range "-50000..50000"; } units "picoseconds per nanometer"; default "2000"; description "End value of dispersion sweeping"; } } // container sweep } // container coherent } // container dwdm container ethernet { description "Enter the ethernet context"; leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy that applies to the Ethernet port"; } leaf autonegotiate { type enumeration { enum "true" { value 1; } enum "false" { value 2; } enum "limited" { value 3; } } description "Speed and duplex autonegotiation on the Ethernet port"; } leaf collect-stats { type boolean; default "false"; description "Collect statistical data on the Ethernet port"; } leaf dot1q-etype { type types-port:etype; default "33024"; description "Dot1q Ethertype on the Ethernet port"; } leaf duplex { type types-port:duplex-mode; description "Duplex type for the Ethernet port"; } leaf lacp-tunnel { type boolean; default "false"; description "Allow LACP packet tunneling for the Ethernet port"; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Load balancing algorithm for the Ethernet port"; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "MAC address for the Ethernet port"; } leaf min-frame-length { type uint32 { range "64|68"; } units "bytes"; default "64"; description "Minimum transmitted frame length for the Ethernet port"; } leaf mode { type types-port:mode; description "Mode for the Ethernet port"; } leaf encap-type { type types-port:ethernet-encap-type; description "Encapsulation method for the Ethernet port"; } leaf mtu { type uint32 { range "512..9800"; } units "bytes"; description "Maximum payload MTU size for the Ethernet port"; } leaf pbb-etype { type types-port:etype; default "35047"; description "Ethertype for PBB encapsulation on the Ethernet port"; } leaf ptp-asymmetry { type int32; units "nanoseconds"; description "PTP asymmetry delay delta of the Ethernet port"; } leaf qinq-etype { type types-port:etype; default "33024"; description "Ethertype for QinQ encapsulation on the Ethernet port"; } leaf rs-fec-mode { type enumeration { enum "cl91-514-528" { value 1; } enum "cl74" { value 2; } enum "cl108" { value 3; } } description "RS-FEC mode on the Ethernet port"; } leaf single-fiber { type boolean; default "false"; description "Allow packet redirection of IP packets from single fiber on the Ethernet port"; } leaf speed { type uint32 { range "10|100|1000|10000|25000|40000|50000|100000"; } units "megabps"; description "Speed of the Ethernet port"; } leaf util-stats-interval { type uint32 { range "30..600"; } units "seconds"; default "300"; description "Interval to calculate the utilization statistics of the Ethernet port"; } leaf xgig { type enumeration { enum "lan" { value 1; } enum "wan" { value 2; if-feature nokia-features:sros-xgig-wan; } } description "LAN or WAN mode for the Ethernet port"; } leaf discard-rx-pause-frames { type boolean; default "false"; description "Discard received pause frames"; } container down-on-internal-error { presence "Enter the 'down-on-internal-error' context"; description "Enable the down-on-internal-error context"; leaf tx-laser { type enumeration { enum "off" { value 1; } enum "on" { value 2; } } default "on"; description "Remote laser on internal errors"; } } // container down-on-internal-error container hold-time { description "Enter the hold-time context"; leaf units { type enumeration { enum "seconds" { value 0; } enum "centiseconds" { value 1; } } default "seconds"; description "Units of hold timers"; } leaf up { type uint32 { range "1..3600000"; } description "Hold time for link-down event dampening"; } leaf down { type uint32 { range "1..3600000"; } description "Hold time for link-down event dampening"; } } // container hold-time container loopback { description "Enter the loopback context"; leaf direction { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } } description "Direction of loopback."; } leaf swap-src-dst-mac { type boolean; default "false"; description "Enable/disable swapping of source and destination MAC addresses."; } } // container loopback container report-alarm { description "Enter the report-alarm context"; leaf signal-fail { type boolean; description "Report an Ethernet signal lost alarm"; } leaf remote { type boolean; description "Report remote faults"; } leaf local { type boolean; description "Report local faults"; } leaf frame-not-locked { type boolean; description "Enable/disable frame-not-locked alarm."; } leaf high-ber { type boolean; description "Report High Bit Error Rate alarm"; } leaf block-not-locked { type boolean; description "Enable/disable block-not-locked alarm."; } leaf alignment-marker-not-locked { type boolean; description "Enable/disable alignment-marker-not-locked alarm."; } leaf duplicate-lane { type boolean; description "Report PCS Duplicate Lane Marker alarm"; } } // container report-alarm container crc-monitor { description "Enter the crc-monitor context"; leaf window-size { type uint32 { range "5..60"; } units "seconds"; default "10"; description "Window size of the monitor"; } container signal-degrade { description "Enter the signal-degrade context"; leaf threshold { type uint32 { range "1..9"; } description "SD threshold"; } leaf multiplier { type uint32 { range "1..9"; } default "1"; description "SD multiplier"; } } // container signal-degrade container signal-failure { description "Enter the signal-failure context"; leaf threshold { type uint32 { range "1..9"; } description "SF threshold"; } leaf multiplier { type uint32 { range "1..9"; } default "1"; description "SF multiplier"; } } // container signal-failure } // container crc-monitor container dampening { description "Enter the dampening context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of exponential port dampening on the port"; } leaf half-life { type uint32 { range "1..2000"; } units "seconds"; default "5"; description "Half-life decay time"; } leaf max-suppress-time { type uint32 { range "1..43200"; } units "seconds"; default "20"; description "Maximum time for which the port-up state is suppressed"; } leaf reuse-threshold { type uint32 { range "1..20000"; } units "penalties"; default "1000"; description "Port-up state no longer suppressed after penalties fall below reuse threshold"; } leaf suppress-threshold { type uint32 { range "1..20000"; } units "penalties"; default "2000"; description "Penalties threshold above which port-up state is suppressed"; } } // container dampening container down-when-looped { description "Enter the down-when-looped context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of physical loop detection"; } leaf keep-alive { type uint32 { range "1..120"; } units "seconds"; default "10"; description "Time interval between keep-alive PDUs"; } leaf retry-timeout { type uint32 { range "0|10..160"; } units "seconds"; default "120"; description "Minimum time before re-enabling the port after loop detection"; } leaf use-broadcast-address { type boolean; default "false"; description "Broadcast MAC address for destination MAC address"; } } // container down-when-looped container eth-cfm { description "Enter the eth-cfm context"; list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf vlan { type types-eth-cfm:vlan-id-or-none; sros-ext:immutable; default "none"; description "Unique VLAN ID for a specific VLAN"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf facility-fault { type boolean; default "false"; description "Allow the facility MEP to generate a network action"; } leaf-list ccm-tlv-ignore { type types-eth-cfm:ccm-tlv-ignore-type; max-elements 2; description "TLV to ignore on reception"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace container eth-bn { description "Enter the eth-bn context"; leaf receive { type boolean; default "false"; description "Accept and process ETH-BN messages"; } leaf rx-update-pacing { type uint32 { range "1..600"; } default "5"; description "Pacing of update messages to QoS"; } } // container eth-bn } // list mep } // container eth-cfm container hsmda-scheduler-overrides { status obsolete; presence "Enter the 'hsmda-scheduler-overrides' context"; description "Enable the hsmda-scheduler-overrides context"; leaf max-rate { status obsolete; type types-qos:hs-pir-rate-override; units "megabps"; description "Maximum rate to override the QoS scheduler policy"; } list group { status obsolete; key "group-id"; description "Enter the group list instance"; leaf group-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2"; } } description "Group ID"; } leaf rate { status obsolete; type types-qos:hs-pir-rate-override; units "megabps"; description "Ingress and egress HSMDA scheduler override"; } } // list group list scheduling-class { status obsolete; key "class-number"; description "Enter the scheduling-class list instance"; leaf class-number { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Unique value of the class"; } leaf rate { status obsolete; type types-qos:hs-pir-rate-override; units "megabps"; description "Maximum bandwidth limit for this HSMDA scheduler policy"; } leaf weight-in-group { status obsolete; type int32 { range "1..100"; } description "Weight that the HSMDA scheduler policy applies to this policy"; } } // list scheduling-class } // container hsmda-scheduler-overrides container ingress { description "Enter the ingress context"; leaf rate { type int32 { range "1..400000"; } units "megabps"; description "Maximum ingress bandwidth that this Ethernet port can receive"; } } // container ingress container elmi { description "Enter the elmi context"; leaf mode { type enumeration { enum "uni-n" { value 1; } } description "Configure the Ethernet LMI Mode."; } leaf n393 { type uint32 { range "2..10"; } default "4"; description "Configure the monitored count of consecutive errors."; } leaf t391 { type uint32 { range "5..30"; } units "seconds"; default "10"; description "Configure Polling Timer for UNI-C."; } leaf t392 { type uint32 { range "5..30"; } units "seconds"; default "15"; description "Configure the polling verification timer for UNI-N."; } } // container elmi container ssm { description "Enter the ssm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of SSM"; } leaf code-type { type enumeration { enum "sonet" { value 2; } enum "sdh" { value 3; } } default "sdh"; description "SSM channel to use either sonet or SDH"; } leaf esmc-tunnel { type boolean; default "false"; description "Tunnel ESMC frames in Epipe or VPLS services"; } leaf tx-dus { type boolean; description "Transmit value of QL-DUS/QL-DNU in SSM messaging channel"; } } // container ssm container symbol-monitor { description "Enter the symbol-monitor context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of symbol monitoring on the port"; } leaf window-size { type uint32 { range "5..60"; } units "seconds"; default "10"; description "Window size of the monitor"; } container signal-degrade { description "Enter the signal-degrade context"; leaf threshold { type uint32 { range "1..9"; } description "SD threshold"; } leaf multiplier { type uint32 { range "1..9"; } default "1"; description "SD multiplier"; } } // container signal-degrade container signal-failure { description "Enter the signal-failure context"; leaf threshold { type uint32 { range "1..9"; } description "SF threshold"; } leaf multiplier { type uint32 { range "1..9"; } default "1"; description "SF multiplier"; } } // container signal-failure } // container symbol-monitor container access { description "Enter the access context"; leaf bandwidth { type uint64 { range "1..6400000000"; } units "kilobps"; description "Bandwidth of the Ethernet port"; } leaf booking-factor { type uint32 { range "1..1000"; } default "100"; description "Booking factor of the Ethernet port"; } leaf accounting-policy { type types-log:log-policy-id; description "Configure accounting policy for the ethernet port access queue."; } leaf collect-stats { type boolean; default "false"; description "Enable/Disable collection of statistics on this queue."; } container egress { description "Enter the egress context"; list queue-group { key "queue-group-name instance-id"; description "Enter the queue-group list instance"; leaf queue-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Queue group name"; } leaf instance-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint16 { range "1..65535"; } } description "Instance ID"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy for the Ethernet port egress queue group"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics on this queue group"; } leaf description { type types-sros:description; description "Text description"; } leaf hs-turbo { type boolean; default "false"; description "Allow corresponding HSQ queue group queues to achieve a higher throughput"; } container aggregate-rate { description "Enter the aggregate-rate context"; leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf limit-unused-bandwidth { type boolean; default "false"; description "Specify whether to enable limit unused bandwidth."; } leaf rate { type union { type uint32 { range "1..3200000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specify aggregate rate limit."; } } // container aggregate-rate container host-match { description "Enter the host-match context"; list int-dest-id { key "destination-string"; description "Add a list entry for int-dest-id"; leaf destination-string { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:int-dest-id; } description "Specifies the destination string."; } } // list int-dest-id } // container host-match container hsmda-queue-overrides { status obsolete; description "Enter the hsmda-queue-overrides context"; leaf packet-byte-offset { status obsolete; type types-qos:egress-per-packet-offset-override; description "Packet offset for HSMDA queue accounting"; } leaf secondary-shaper { status obsolete; type types-sros:named-item; description "HSMDA egress secondary shaper"; } leaf wrr-policy { status obsolete; type types-sros:named-item; description "HSMDA egress WRR policy"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "HSMDA queue overrides queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Maximum buffer space override"; } leaf rate { status obsolete; type types-qos:pir-rate-override; units "kilobps"; description "PIR"; } leaf slope-policy { status obsolete; type types-sros:named-item; description "Slope policy"; } leaf wrr-weight { status obsolete; type int32 { range "1..32"; } description "Weighted round robin (WRR)"; } } // list queue } // container hsmda-queue-overrides container queue-overrides { description "Enter the queue-overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Queue overrides queue ID"; } leaf cbs { type types-qos:burst-size-override; description "CBS rate"; } leaf mbs { type types-qos:queue-burst-size-override; units "bytes"; description "MBS rate"; } leaf burst-limit { type types-qos:burst-limit-override; description "Burst limit"; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Enable queue depth monitoring"; } choice queue-override-rate { default "rate"; case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf cir { type types-qos:cir-percent-override; units "percent"; description "CIR percent rate"; } leaf pir { type types-qos:pir-percent-override; units "percent"; description "PIR percent rate"; } } // container percent-rate } case rate { container rate { description "Enter the rate context"; leaf cir { type types-qos:queue-cir-rate-override; units "kilobps"; description "CIR rate"; } leaf pir { type types-qos:queue-pir-rate-override; units "kilobps"; description "PIR rate"; } } // container rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth } // list queue } // container queue-overrides container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy for the QoS egress queue group"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler name"; } container parent { description "Enter the parent context"; leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent"; } leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent"; } } // container parent container rate { description "Enter the rate context"; leaf cir { type types-qos:sched-cir-rate-ovr; units "kilobps"; description "CIR rate"; } leaf pir { type types-qos:sched-pir-rate-ovr; units "kilobps"; description "PIR rate"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // list queue-group list virtual-port { key "vport-name"; description "Enter the virtual-port list instance"; leaf vport-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Specifies the name of the virtual port on the port."; } leaf description { type types-sros:description; description "Text description"; } leaf monitor-port-scheduler { type boolean; default "false"; description "Enable/Disable monitoring of port scheduler."; } leaf multicast-hqos-adjustment { type boolean; default "false"; description "Enable/disable the egress rate modification."; } leaf port-scheduler-policy { type types-sros:named-item; description "Configure port scheduler policy."; } leaf scheduler-policy { type types-sros:named-item; description "Apply an egress scheduler policy."; } container aggregate-rate { description "Enter the aggregate-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Specify whether to enable limit unused bandwidth."; } leaf rate { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specify aggregate rate limit."; } } // container aggregate-rate container host-match { description "Enter the host-match context"; list int-dest-id { key "destination-string"; description "Add a list entry for int-dest-id"; leaf destination-string { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:int-dest-id; } description "Specifies the destination string."; } } // list int-dest-id } // container host-match } // list virtual-port } // container egress container ingress { description "Enter the ingress context"; list queue-group { key "queue-group-name"; description "Enter the queue-group list instance"; leaf queue-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Queue group name"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy for the Ethernet port egress queue group"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics on this queue group"; } leaf description { type types-sros:description; description "Text description"; } container queue-overrides { description "Enter the queue-overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-queue-id; } description "Queue overrides queue ID"; } leaf cbs { type types-qos:burst-size-override; description "CBS rate"; } leaf mbs { type types-qos:queue-burst-size-override; units "bytes"; description "MBS rate"; } leaf monitor-depth { type boolean; default "false"; description "Enable queue depth monitoring"; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container rate { description "Enter the rate context"; leaf cir { type types-qos:queue-cir-rate-override; units "kilobps"; description "CIR rate"; } leaf pir { type types-qos:queue-pir-rate-override; units "kilobps"; description "PIR rate"; } } // container rate } // list queue } // container queue-overrides container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy for the Ethernet port ingress queue group"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler name"; } container parent { description "Enter the parent context"; leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent"; } leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent"; } } // container parent container rate { description "Enter the rate context"; leaf cir { type types-qos:sched-cir-rate-ovr; units "kilobps"; description "CIR rate"; } leaf pir { type types-qos:sched-pir-rate-ovr; units "kilobps"; description "PIR rate"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // list queue-group } // container ingress } // container access container dot1x { description "Enter the dot1x context"; leaf max-authentication-requests { type uint32 { range "1..10"; } default "2"; description "Maximum number of times the router sends access request RADIUS message to RADIUS server"; } leaf port-control { type types-port:pae-controlled-port-control; default "force-authorized"; description "802.1x authentication mode"; } leaf quiet-period { type uint32 { range "1..3600"; } units "seconds"; default "60"; description "Time between two authentication sessions during which no EAPOL frames are sent by router"; } leaf radius-policy { type types-sros:named-item; description "Authentication server policy"; } leaf server-timeout { type uint32 { range "1..300"; } units "seconds"; default "30"; description "Time during which router waits for RADIUS server to respond to its access request message"; } leaf supplicant-timeout { type uint32 { range "1..300"; } units "seconds"; default "30"; description "Time during which router waits for a client to respond to its EAPOL messages"; } leaf transmit-period { type uint32 { range "1..3600"; } units "seconds"; default "30"; description "Time after which router sends a new EAPOL request message"; } leaf tunneling { type boolean; default "false"; description "Allow tunneling of untagged 802.1x frames received on a port"; } leaf tunnel-dot1q { type boolean; default "true"; description "Enable/disable dot1x tunneling for IEEE 802.1Q tagged frames."; } leaf tunnel-qinq { type boolean; default "true"; description "Enable/disable dot1x tunneling for IEEE 802.1ad tagged frames."; } choice radius-server-policy-config { case common { leaf radius-server-policy { type types-sros:named-item; description "RADIUS server policy name"; } } case split { leaf radius-server-policy-auth { type types-sros:named-item; description "RADIUS server policy name for authentication"; } leaf radius-server-policy-acct { type types-sros:named-item; description "RADIUS server policy name for accounting"; } } } container macsec { description "Enter the macsec context"; leaf rx-must-be-encrypted { type boolean; default "false"; description "Drop all port traffic that is not MACsec-secured"; } leaf exclude-mac-policy { type uint32; description "Configure the policy of mac addresses to be excluded."; } container exclude-protocol { description "Enter the exclude-protocol context"; leaf cdp { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for CDP (protocol)"; } leaf eapol-start { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for EAPOL (protocol)"; } leaf lacp { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for LACP (protocol)"; } leaf lldp { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for LLDP (protocol)"; } leaf efm-oam { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for EFM OAM (protocol)"; } leaf eth-cfm { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for ETH CFM (protocol)"; } leaf ptp { type boolean; default "false"; description "Enable/disable PTP protocol."; } leaf ubfd { type boolean; default "false"; description "Enable/disable UBFD protocol."; } } // container exclude-protocol list sub-port { key "sub-port-id"; description "Enter the sub-port list instance"; leaf sub-port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1023"; } } description "Specifies the sub-port ID on the port."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MACsec on this port"; } leaf ca-name { type string { length "1..32"; } description "Configure the connectivity association to be used for this port."; } leaf eapol-destination-address { type yang:mac-address; description "Configure the eapol destination address."; } leaf max-peers { type uint32 { range "1..32"; } description "Configure the max number of peers supported on this port."; } container encap-match { description "Enter the encap-match context"; choice encap { default "all-match"; case all-match { leaf all-match { type boolean; default "true"; description "Configure encap match to all."; } } case untagged { leaf untagged { type boolean; description "Configure encap match to untagged."; } } case single-tag { leaf single-tag { type types-sros:single-vlan-encap; description "Configure encap match to single tag."; } } case double-tag { leaf double-tag { type types-sros:double-vlan-encap; description "Configure encap match to double-tag."; } } } } // container encap-match } // list sub-port } // container macsec container re-authentication { presence "Enter the 're-authentication' context"; description "Enable the re-authentication context"; leaf period { type uint32 { range "1..9000"; } units "seconds"; default "3600"; description "Re-authentication period"; } } // container re-authentication container per-host-authentication { description "Enter the per-host-authentication context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of per-host authentication"; } leaf authenticator-init { type boolean; default "true"; description "Initiate per-host authentication"; } container allowed-source-macs { description "Enter the allowed-source-macs context"; list mac-address { key "mac"; description "Add a list entry for mac-address"; leaf mac { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type yang:mac-address; } description "Source MAC address of a host selected for authentication"; } } // list mac-address } // container allowed-source-macs } // container per-host-authentication } // container dot1x container efm-oam { description "Enter the efm-oam context"; leaf accept-remote-loopback { type boolean; default "false"; description "Enable reactions to loopback control OAM PDUs from peers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EFM OAM operation"; } leaf dying-gasp-tx-on-reset { type boolean; default "true"; description "Allow generation of Information OAM PDU when EFM application receives soft reset notification"; } leaf grace-tx { type boolean; description "Allow sending of EFM OAM grace period messages"; } leaf grace-vendor-oui { type string; default "00:16:4D"; description "EFM OAM grace vendor unique ID"; } leaf hold-time { type uint32 { range "1..50"; } units "seconds"; description "Time EFM OAM protocol waits before returning to operational state after leaving operational state"; } leaf ignore-efm-state { type boolean; default "false"; description "Suppress port operational state changes due to any EFM OAM protocol fault condition"; } leaf mode { type enumeration { enum "passive" { value 1; } enum "active" { value 2; } } default "active"; description "EFM OAM DTE mode"; } leaf transmit-interval { type uint32 { range "1..600"; } units "deciseconds"; default "10"; description "Transmit interval of OAMPDUs"; } leaf multiplier { type uint32 { range "2..5"; } default "5"; description "Multiplier of OAMPDUs"; } leaf trigger-fault { type enumeration { enum "dying-gasp" { value 2; } enum "critical-event" { value 3; } } description "Flag field to be set in the Information OAM PDU"; } leaf tunneling { type boolean; default "false"; description "Allow EFM OAM PDU tunneling"; } container discovery { description "Enter the discovery context"; container advertise-capabilities { description "Enter the advertise-capabilities context"; leaf link-monitoring { type boolean; default "true"; description "Advertise link monitoring capabilities to peer"; } } // container advertise-capabilities } // container discovery container link-monitoring { description "Enter the link-monitoring context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of link monitoring on the port"; } container errored-frame { description "Enter the errored-frame context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of link monitoring on the port"; } leaf event-notification { type boolean; default "true"; description "Configure if event notification OAMPDUs are transmitted with the TLVs."; } leaf sd-threshold { type uint32 { range "1..1000000"; } description "Configure the signal degrade threshold."; } leaf sf-threshold { type uint32 { range "1..1000000"; } default "1"; description "Configure the signal failure threshold."; } leaf window { type uint32 { range "10..600"; } units "deciseconds"; default "10"; description "Configure the window."; } } // container errored-frame container errored-frame-period { description "Enter the errored-frame-period context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of link monitoring on the port"; } leaf event-notification { type boolean; default "true"; description "Configure if event notification OAMPDUs are transmitted with the TLVs."; } leaf sd-threshold { type uint32 { range "1..1000000"; } description "Configure the signal degrade threshold."; } leaf sf-threshold { type uint32 { range "1..1000000"; } default "1"; description "Configure the signal failure threshold."; } leaf window { type uint32 { range "1..4294967295"; } units "packets"; default "1488095"; description "Configure the window."; } } // container errored-frame-period container errored-frame-seconds { description "Enter the errored-frame-seconds context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of link monitoring on the port"; } leaf event-notification { type boolean; default "true"; description "Configure if event notification OAMPDUs are transmitted with the TLVs."; } leaf sd-threshold { type uint32 { range "1..900"; } description "Configure the signal degrade threshold."; } leaf sf-threshold { type uint32 { range "1..900"; } default "1"; description "Configure the signal failure threshold."; } leaf window { type uint32 { range "100..9000"; } units "deciseconds"; default "600"; description "Configure the window."; } } // container errored-frame-seconds container errored-symbols { description "Enter the errored-symbols context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of link monitoring on the port"; } leaf event-notification { type boolean; default "true"; description "Configure if event notification OAMPDUs are transmitted with the TLVs."; } leaf sd-threshold { type uint32 { range "1..1000000"; } description "Configure the signal degrade threshold."; } leaf sf-threshold { type uint32 { range "1..1000000"; } default "1"; description "Configure the signal failure threshold."; } leaf window { type uint32 { range "10..600"; } units "deciseconds"; default "10"; description "Configure the window."; } } // container errored-symbols container local-sf-action { description "Enter the local-sf-action context"; leaf event-notification-burst { type uint32 { range "1..5"; } units "packets"; default "1"; description "Configure the number of event notification OAMPDUs to burst."; } leaf local-port-action { type types-port:efm-oam-local-port-action; default "port-out-of-service"; description "Configure the local port action."; } container info-notification { description "Enter the info-notification context"; leaf critical-event { type boolean; default "false"; description "Set/clear the Critical Event flag."; } leaf dying-gasp { type boolean; default "false"; description "Set/clear the Dying Gasp flag."; } } // container info-notification } // container local-sf-action } // container link-monitoring container peer-rdi-rx { description "Enter the peer-rdi-rx context"; leaf critical-event { type types-port:efm-oam-local-port-action; default "port-out-of-service"; description "Action for local port when critical event is received from peer"; } leaf dying-gasp { type types-port:efm-oam-local-port-action; default "port-out-of-service"; description "Action for local port when dying gasp is received from the peer"; } leaf event-notification { type types-port:efm-oam-local-port-action; default "log-only"; description "Action for local port when event notification OAMPDU is received from peer"; } leaf link-fault { type types-port:efm-oam-local-port-action; default "port-out-of-service"; description "Action for local port when link fault is received from peer"; } } // container peer-rdi-rx } // container efm-oam container egress { description "Enter the egress context"; leaf hs-port-pool-policy { type types-sros:named-item; description "HS port pool policy"; } leaf monitor-port-scheduler { type boolean; default "false"; description "Enable/disable monitoring of egress scheduler on the Ethernet port."; } leaf rate { type int32 { range "1..400000000"; } units "kilobps"; description "Maximum egress bandwidth that this Ethernet port can receive"; } leaf eth-bn-rate-changes { type boolean; default "false"; description "Receive rate changes in Ethernet Bandwidth Notification (Eth-BN) messages to update egress rate"; } leaf hsmda-scheduler-policy { status obsolete; type types-sros:named-item; description "HSMDA scheduler policy"; } container port-qos-policy { description "Enter the port-qos-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Port qos policy name"; } } // container port-qos-policy list expanded-secondary-shaper { status obsolete; key "secondary-shaper-name"; description "Enter the expanded-secondary-shaper list instance"; leaf secondary-shaper-name { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for the expanded secondary shaper"; } leaf low-burst-max-class { status obsolete; type uint32 { range "1..8"; } default "8"; description "Class to associate with the Ethernet egress expanded secondary shaper"; } leaf monitor-threshold { status obsolete; type types-qos:secondary-shaper-class-threshold; description "Monitoring threshold for non-conformance burst"; } leaf rate { status obsolete; type types-qos:secondary-shaper-pir-rate; default "max"; description "Rate of the expanded secondary shaper"; } container aggregate-burst { status obsolete; description "Enter the aggregate-burst context"; leaf high-burst-increase { status obsolete; type int32 { range "0..65528"; } units "bytes"; description "High burst increase"; } leaf low-burst-limit { status obsolete; type types-qos:class-burst-limit; units "bytes"; description "Low burst limit"; } } // container aggregate-burst list class { status obsolete; key "class-number"; description "Enter the class list instance"; leaf class-number { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Unique value of the class"; } leaf rate { status obsolete; type types-qos:secondary-shaper-pir-rate; default "max"; description "Class rate"; } leaf monitor-threshold { status obsolete; type types-qos:secondary-shaper-class-threshold; description "Monitoring threshold for non-conformance burst of the class"; } leaf burst-limit { status obsolete; type types-qos:class-burst-limit; units "bytes"; description "Class identifier of the low burst maximum class"; } } // list class } // list expanded-secondary-shaper container hs-scheduler-policy { description "Enter the hs-scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "HS scheduler policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf max-rate { type types-qos:hs-pir-rate-override; units "megabps"; description "Configure the maximum rate."; } list group { key "group-id"; description "Enter the group list instance"; leaf group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1"; } } description "Specifies the group identifier."; } leaf rate { type types-qos:hs-pir-rate-override; units "megabps"; description "Configure a group rate."; } } // list group list scheduling-class { key "class-number"; description "Enter the scheduling-class list instance"; leaf class-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..6"; } } description "The unique value of the class."; } leaf rate { type types-qos:hs-pir-rate-override; units "megabps"; description "Configure the rate of the scheduling class."; } leaf weight { type types-qos:hs-wrr-weight-override; description "Configure the weight of the scheduling class."; } } // list scheduling-class } // container overrides } // container hs-scheduler-policy container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:sched-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Specifies the priority level of the port scheduler override."; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:sched-pir-rate-ovr; units "kilobps"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:sched-cir-rate-ovr; units "kilobps"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type types-qos:pir-percent-override; units "percent"; description "Configure the PIR rate as a percent."; } leaf cir { type types-qos:cir-percent-override; units "percent"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy list hs-secondary-shaper { key "secondary-shaper-name"; description "Enter the hs-secondary-shaper list instance"; leaf secondary-shaper-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Specifies the expanded secondary shaper name on the egress side."; } leaf description { type types-sros:description; description "Text description"; } container aggregate { description "Enter the aggregate context"; leaf low-burst-max-class { type uint32 { range "1..6"; } default "6"; description "Specify the low burst max class."; } leaf rate { type union { type int32 { range "1..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specify the aggregate rate."; } } // container aggregate list class { key "class-number"; description "Enter the class list instance"; leaf class-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..6"; } } description "The unique value of the class."; } leaf rate { type union { type int32 { range "1..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specify the aggregate rate"; } } // list class } // list hs-secondary-shaper } // container egress container lldp { description "Enter the lldp context"; list dest-mac { key "mac-type"; description "Enter the dest-mac list instance"; leaf mac-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-lldp:mac-addr-type; } description "MAC address type unique ID"; } leaf notification { type boolean; default "false"; description "Allow LLDP notifications"; } leaf port-id-subtype { type enumeration { enum "tx-if-alias" { value 1; } enum "tx-if-name" { value 5; } enum "tx-local" { value 7; } } default "tx-local"; description "Port identifier TLVs transmitted to peer which is encoded"; } leaf receive { type boolean; default "false"; description "Enable LLDP received frame handling"; } leaf transmit { type boolean; default "false"; description "Enable LLDP received frame handling"; } leaf tunnel-nearest-bridge { type boolean; default "false"; description "Allow LLDP packets received on port with destination address of nearest bridge to be tunneled"; } container tx-tlvs { description "Enter the tx-tlvs context"; leaf port-desc { type boolean; default "false"; description "Transmit port description TLVs"; } leaf sys-name { type boolean; default "false"; description "Transmit system name TLVs"; } leaf sys-desc { type boolean; default "false"; description "Transmit system description TLVs"; } leaf sys-cap { type boolean; default "false"; description "Transmit system capabilities TLVs"; } } // container tx-tlvs list tx-mgmt-address { key "mgmt-address-system-type"; description "Enter the tx-mgmt-address list instance"; leaf mgmt-address-system-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "oob" { value 0; } enum "system" { value 1; } enum "system-ipv6" { value 2; } enum "oob-ipv6" { value 3; } } } description "Management address to transmit"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of transmitting management address information"; } } // list tx-mgmt-address } // list dest-mac } // container lldp container network { description "Enter the network context"; leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy that applies to the Ethernet network port"; } leaf collect-stats { type boolean; default "false"; description "Collect statistical data on the Ethernet port"; } container egress { description "Enter the egress context"; leaf queue-policy { type types-sros:named-item; description "Configure the queue policy on the Ethernet network port."; } list queue-group { key "queue-group-name instance-id"; description "Enter the queue-group list instance"; leaf queue-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Queue group name"; } leaf instance-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint16 { range "1..65535"; } } description "Instance ID"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy for the Ethernet port egress queue group"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics on this queue group"; } leaf description { type types-sros:description; description "Text description"; } leaf hs-turbo { type boolean; default "false"; description "Allow corresponding HSQ queue group queues to achieve a higher throughput"; } leaf policer-control-policy { type types-sros:named-item; description "Policer control policy for the QoS egress queue group"; } leaf scheduler-policy { type types-sros:named-item; description "Scheduler policy for the QoS egress queue group"; } container aggregate-rate { description "Enter the aggregate-rate context"; leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf limit-unused-bandwidth { type boolean; default "false"; description "Specify whether to enable limit unused bandwidth."; } leaf rate { type union { type uint32 { range "1..3200000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specify aggregate rate limit."; } } // container aggregate-rate container queue-overrides { description "Enter the queue-overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Queue overrides queue ID"; } leaf cbs { type types-qos:burst-size-override; description "CBS rate"; } leaf mbs { type types-qos:queue-burst-size-override; units "bytes"; description "MBS rate"; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Enable queue depth monitoring"; } choice queue-override-rate { default "rate"; case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf cir { type types-qos:cir-percent-override; units "percent"; description "CIR percent rate"; } leaf pir { type types-qos:pir-percent-override; units "percent"; description "PIR percent rate"; } } // container percent-rate } case rate { container rate { description "Enter the rate context"; leaf cir { type types-qos:queue-cir-rate-override; units "kilobps"; description "CIR rate"; } leaf pir { type types-qos:queue-pir-rate-override; units "kilobps"; description "PIR rate"; } } // container rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth } // list queue } // container queue-overrides } // list queue-group container port-queues { description "Enter the port-queues context"; container overrides { description "Enter the overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:network-queue-queue-id; } description "Queue ID"; } container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth } // list queue } // container overrides } // container port-queues } // container egress } // container network } // container ethernet container gnss { description "Enter the gnss context"; leaf antenna-cable-delay { type uint32 { range "0..32767"; } units "nanoseconds"; default "0"; description "The expected signal delay resulting from the length of the antenna cable"; } leaf elevation-mask-angle { type uint32 { range "0..89"; } units "degrees angle"; default "10"; description "The minimum elevation angle below which the GNSS receiver will not use a satellite"; } container constellation { description "Enter the constellation context"; leaf gps { type boolean; default "true"; description "Configure the gnss receiver to process the 'gps' constellation type"; } leaf glonass { type boolean; default "false"; description "Configure the gnss receiver to process the 'glonass' constellation type"; } } // container constellation } // container gnss container network { description "Enter the network context"; container egress { description "Enter the egress context"; list pool { key "name"; description "Enter the pool list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Unique name of pool for access port"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for amber alarm on oversubscription"; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for red alarm on oversubscription"; } leaf slope-policy { type types-sros:named-item; description "Slope policy for high and low priority RED slope parameters and time average factor"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type union { type int32 { range "0..100"; } type enumeration { enum "auto" { value -1; } } } units "percent"; default "auto"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container egress } // container network container otu { presence "Enter the 'otu' context"; description "Enable the otu context"; leaf async-mapping { type boolean; description "Allow asynchoronous mapping of the payload inside the OTU"; } leaf fec { type types-port:otu-fec-mode; description "Forwarding Error Correction (FEC) encapsulation on the port"; } leaf otu2-lan-data-rate { type types-port:otu2-lan-data-rate; units "gigabps"; description "Data rate for 10GE LAN OTU2 on the port"; } leaf sd-threshold { type uint32 { range "5..9"; } default "7"; description "Error rate at which to declare the signal fail condition for the signal degrade (SD)"; } leaf sf-threshold { type uint32 { range "3..6"; } default "5"; description "Error rate at which to declare the signal fail condition for the signal fail (SF)"; } leaf sf-sd-method { type types-port:otu-sf-sd-method; default "fec"; description "Method used to determine the signal fail and signal degrade alarms"; } container report-alarm { description "Enter the report-alarm context"; leaf loc { type boolean; default "true"; description "Report alarm for a loss of clock that causes the port to shut down"; } leaf los { type boolean; default "true"; description "Report alarm for the loss of signal transitions on data"; } leaf lof { type boolean; default "true"; description "Report alarm for the loss of OTU framing"; } leaf lom { type boolean; default "true"; description "Report alarm for the loss of multi-frame"; } leaf otu-ais { type boolean; default "false"; description "Report OTU Alarm Indication Signal alarm"; } leaf otu-ber-sf { type boolean; default "true"; description "Report SM Signal Fail alarm"; } leaf otu-ber-sd { type boolean; default "false"; description "Report SM Signal Degrade alarm"; } leaf otu-bdi { type boolean; default "true"; description "Report SM Backward Defect Indication alarm"; } leaf otu-tim { type boolean; default "false"; description "Report SM Trace ID Mismatch alarm"; } leaf otu-iae { type boolean; default "false"; description "Report SM Incoming Alignment Error alarm"; } leaf otu-biae { type boolean; default "false"; description "Report SM Backward Incoming Alignment Error alarm"; } leaf fec-sf { type boolean; default "true"; description "Report Signal Fail alarm"; } leaf fec-sd { type boolean; default "false"; description "Report Signal Degrade alarm"; } leaf fec-fail { type boolean; default "false"; description "Report FEC mode mismatch alarm"; } leaf fec-uncorr { type boolean; default "false"; description "Report one or more Uncorrectable FEC errors alarm"; } leaf odu-ais { type boolean; default "false"; description "Report ODU Alarm Indication Signal alarm"; } leaf odu-oci { type boolean; default "false"; description "Report ODU Open Connection Indication alarm"; } leaf odu-lck { type boolean; default "false"; description "Report ODU Locked alarm"; } leaf odu-bdi { type boolean; default "false"; description "Report PM Backward Defect Indication alarm"; } leaf odu-tim { type boolean; default "false"; description "Report PM Trace ID Mismatch alarm"; } leaf opu-plm { type boolean; default "false"; description "Report PSI Payload Type Mismatch alarm"; } } // container report-alarm container fine-granularity-ber { description "Enter the fine-granularity-ber context"; container signal-degrade { description "Enter the signal-degrade context"; container raise { description "Enter the raise context"; leaf threshold { type uint32 { range "3..9"; } default "7"; description "SD raise threshold"; } leaf multiplier { type uint32 { range "10..99"; } default "10"; description "Multiplier of the SD raise threshold"; } } // container raise container clear { description "Enter the clear context"; leaf threshold { type uint32 { range "3..10"; } default "8"; description "SD clear threshold"; } leaf multiplier { type uint32 { range "10..99"; } default "10"; description "Multiplier of the SD clear threshold"; } } // container clear } // container signal-degrade container signal-failure { description "Enter the signal-failure context"; container raise { description "Enter the raise context"; leaf threshold { type uint32 { range "3..8"; } default "5"; description "SF raise threshold"; } leaf multiplier { type uint32 { range "10..99"; } default "10"; description "SF raise threshold"; } } // container raise container clear { description "Enter the clear context"; leaf threshold { type uint32 { range "3..9"; } default "6"; description "Threshold for the Multiplier of SD clear"; } leaf multiplier { type uint32 { range "10..99"; } default "10"; description "Threshold for the Multiplier of SD clear"; } } // container clear } // container signal-failure } // container fine-granularity-ber container path-monitoring { description "Enter the path-monitoring context"; container trail-trace-identifier { description "Enter the trail-trace-identifier context"; leaf mismatch-reaction { type types-port:otu-tim-reaction; description "Configure the reaction to a mismatched TTI."; } container expected { description "Enter the expected context"; choice expected { default "auto-generated"; case auto-generated { leaf auto-generated { type empty; description "Auto-generate the TTI by the system."; } } case string { leaf string { type string { length "0..64"; } description "Configure the TTI as a sequence of printable ASCII."; } } case bytes { leaf bytes { type string { length "0..192"; } description "Configure the TTI as a sequence of bytes."; } } } } // container expected container transmit { description "Enter the transmit context"; choice transmit { default "auto-generated"; case auto-generated { leaf auto-generated { type empty; description "Auto-generate the TTI by the system."; } } case string { leaf string { type string { length "0..64"; } description "Configure the TTI as a sequence of printable ASCII."; } } case bytes { leaf bytes { type string { length "0..192"; } description "Configure the TTI as a sequence of bytes."; } } } } // container transmit } // container trail-trace-identifier } // container path-monitoring container payload-structure-identifier { description "Enter the payload-structure-identifier context"; container payload { description "Enter the payload context"; leaf expected { type types-port:otu-psi-payload-type; default "auto"; description "Configure the port's PSI payload expected parameters."; } leaf mismatch-reaction { type types-port:otu-tim-reaction; description "Configure the reaction to a mismatched payload."; } leaf transmit { type types-port:otu-psi-payload-type; default "auto"; description "Configure the port's PSI payload transmit parameters."; } } // container payload } // container payload-structure-identifier container section-monitoring { description "Enter the section-monitoring context"; container trail-trace-identifier { description "Enter the trail-trace-identifier context"; leaf mismatch-reaction { type types-port:otu-tim-reaction; description "Configure the reaction to a mismatched TTI."; } container expected { description "Enter the expected context"; choice expected { default "auto-generated"; case auto-generated { leaf auto-generated { type empty; description "Auto-generate the TTI by the system."; } } case string { leaf string { type string { length "0..64"; } description "Configure the TTI as a sequence of printable ASCII."; } } case bytes { leaf bytes { type string { length "0..192"; } description "Configure the TTI as a sequence of bytes."; } } } } // container expected container transmit { description "Enter the transmit context"; choice transmit { default "auto-generated"; case auto-generated { leaf auto-generated { type empty; description "Auto-generate the TTI by the system."; } } case string { leaf string { type string { length "0..64"; } description "Configure the TTI as a sequence of printable ASCII."; } } case bytes { leaf bytes { type string { length "0..192"; } description "Configure the TTI as a sequence of bytes."; } } } } // container transmit } // container trail-trace-identifier } // container section-monitoring } // container otu container sonet-sdh { description "Enter the sonet-sdh context"; leaf clock-source { type enumeration { enum "loop-timed" { value 1; } enum "node-timed" { value 2; } } description "Configure the clock for transmitted data."; } leaf framing { type enumeration { enum "sonet" { value 2; } enum "sdh" { value 3; } } sros-ext:immutable; default "sonet"; description "SONET or SDH framing"; } leaf loopback { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } } description "Loopback to activate on SONET port"; } leaf sd-threshold { type uint32 { range "3..9"; } default "6"; description "Threshold for line signal failure BER"; } leaf sf-threshold { type uint32 { range "3..6"; } default "3"; description "Threshold for line signal failure BER"; } leaf single-fiber { type boolean; default "false"; description "Allow packet gathering and redirection of IP packets from a single fiber (RX) port"; } leaf speed { type enumeration { enum "oc3" { value 1; } enum "oc12" { value 2; } enum "oc48" { value 3; } enum "oc192" { value 4; } enum "oc768" { value 5; } enum "oc1" { value 6; } } sros-ext:immutable; description "Configure the speed of a SONET/SDH port to be either OC3 or OC12."; } leaf suppress-low-order-alarms { type boolean; default "false"; description "Suppress low order alarms"; } leaf tx-dus { type boolean; default "false"; description "Enable/disable the forced transmit 0xF (dus/dnu) in S1 overhead byte."; } leaf reset-port-on-path-down { status obsolete; type boolean; default "false"; description "Reset port when path goes operationally down"; } container hold-time { description "Enter the hold-time context"; leaf up { type uint32 { range "0..100"; } units "deciseconds"; default "5"; description "Configure the hold timer for link up event dampening."; } leaf down { type uint32 { range "0..100"; } units "deciseconds"; description "Configure the hold timer for link down event dampening."; } } // container hold-time container report-alarm { description "Enter the report-alarm context"; leaf loc { type boolean; default "true"; description "Report alarm for a loss of clock that causes the port to shut down"; } leaf lais { type boolean; default "false"; description "Report Line Indication Signal Errors alarm"; } leaf lrdi { type boolean; default "true"; description "Report Line Remote Defect Indication Errors alarm"; } leaf ss1f { type boolean; default "false"; description "Report alarm for section synchronization failure"; } leaf lb2er-sd { type boolean; default "false"; description "Report alarm for line signal degradation BER (bit interleaved parity) errors"; } leaf lb2er-sf { type boolean; default "true"; description "Report alarm line signal failure BER errors"; } leaf slof { type boolean; default "true"; description "Report alarm for section loss of frame errors"; } leaf slos { type boolean; default "true"; description "Report alarm for section loss of signal error on the transmit side"; } leaf lrei { type boolean; default "false"; description "Report alarm for a line error condition"; } } // container report-alarm container section-trace { description "Enter the section-trace context"; choice section-trace { default "byte"; case increment-z0 { leaf increment-z0 { type empty; description "Set the j0 byte to 0x01 and increment z0 byte."; } } case byte { leaf byte { type string { length "1..4"; } default "1"; description "Set j0 byte to the first octet of the j0 string and the z0 byte to 0xcc."; } } case string { leaf string { type string { length "0..16"; } description "Set j0 byte to the string and the z0 byte to 0xcc."; } } } } // container section-trace list group { key "group-index"; description "Enter the group list instance"; leaf group-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-port:sdh-group-index; } description "Specifies the SONET/SDH group index."; } leaf payload { type types-port:sonet-group-payload-type; default "tu3"; description "Configure the SONET/SDH group payload."; } } // list group list path { key "path-index"; description "Enter the path list instance"; leaf path-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-port:sonet-path-index; } description "Specifies the SONET/SDH path index."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the SONET/SDH path."; } leaf crc { type uint32 { range "16|32"; } description "Configure cyclic redundancy check."; } leaf description { type types-sros:long-description; description "Text description"; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Configure Load Balancing Algorithm."; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Assign a MAC address to a SONET/SDH path."; } leaf mode { type enumeration { enum "access" { value 1; } enum "network" { value 2; } } description "Configure access/network mode."; } leaf encap-type { type types-port:sonet-path-encap-type; description "Configure an encap method."; } leaf mtu { type uint32 { range "512..9208"; } units "bytes"; description "Configure the maximum payload MTU size for the path."; } leaf payload { type types-port:sonet-path-payload-type; sros-ext:immutable; description "Configure the SONET/SDH path payload."; } leaf scramble { type boolean; description "Configure SONET/SDH payload scrambling."; } leaf signal-label { type string { length "1..4"; } description "Configure C2 byte value."; } leaf trace-string { type union { type enumeration { enum "zeros" { value 0; } } type string { length "0..62"; } } description "Configure the J1 path-trace inserted continuously at source."; } container report-alarm { description "Enter the report-alarm context"; leaf pais { type boolean; default "false"; description "Enable/disable pais alarm."; } leaf plop { type boolean; default "true"; description "Enable/disable plop alarm."; } leaf prdi { type boolean; default "false"; description "Enable/disable prdi alarm."; } leaf pplm { type boolean; default "true"; description "Enable/disable pplm alarm."; } leaf prei { type boolean; default "false"; description "Enable/disable prei alarm."; } leaf puneq { type boolean; default "true"; description "Enable/disable puneq alarm."; } leaf plcd { type boolean; default "false"; description "Enable/disable plcd alarm."; } } // container report-alarm container egress { description "Enter the egress context"; container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Specifies the priority level of the port scheduler override."; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "max"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } leaf cir { type decimal64 { range "0..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy } // container egress container network { description "Enter the network context"; leaf accounting-policy { type types-log:log-policy-id; description "Configure the accounting policy."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data."; } leaf queue-policy { type types-sros:named-item; description "Configure the queue policy on the SONET/SDH network path."; } } // container network container ppp { description "Enter the ppp context"; container keepalive { description "Enter the keepalive context"; leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Configure the number of keepalive or LQR messages that can be missed before the line is brought down."; } leaf interval { type union { type uint32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "10"; description "Configure the time interval at which keepalive requests are issued."; } } // container keepalive } // container ppp } // list path } // container sonet-sdh container tdm { description "Enter the tdm context"; leaf buildout { type enumeration { enum "short" { value 1; } enum "long" { value 2; } } default "short"; description "Configure the line buildout for a physical DS1/DS3 port."; } leaf encoding { type enumeration { enum "b8zs" { value 1; } enum "ami" { value 2; } enum "hdb3" { value 3; } } description "Configure the encoding for the physical DS1/E1 port. b8zs (1) - Bipolar (or Binary) with 8-Zero Substitution. Only supported on a DS1 port. ami (2) - Alternate Mark Inversion. Only supported on a DS1 port. hdb3 (3) - High Density Bipolar (or Binary) 3. Only supported on an E1 port."; } leaf line-impedance { type uint32 { range "75 | 100 | 120"; } units "ohms"; description "Configure the line impedance for the physical DS1/E1 port. A DS1 port supports only 100 ohms. An E1 port supports 75 ohms and 120 ohms."; } container hold-time { description "Enter the hold-time context"; leaf up { type uint32 { range "1..100"; } description "Configure the hold timer for link up event dampening on the physical DS3 port."; } leaf down { type uint32 { range "0..100"; } default "5"; description "Configure the hold timer for link down event dampening on the physical DS3 port."; } } // container hold-time list ds1 { key "ds1-index"; description "Enter the ds1 list instance"; leaf ds1-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-port:tdm-ds1-index; } description "Specifies the TDM DS1 index."; } leaf clock-source { type enumeration { enum "loop-timed" { value 1; } enum "node-timed" { value 2; } enum "adaptive" { value 3; } enum "differential" { value 4; } } description "Configure the clock for transmitted data."; } leaf signal-mode { type enumeration { enum "channel-associated-signaling" { value 2; } } description "Activate the signal-mode on the channel."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the DS1 channel."; } leaf framing { type enumeration { enum "extended-super-frame" { value 1; } enum "super-frame" { value 2; } enum "ds1-unframed" { value 6; } } default "extended-super-frame"; description "Configure the framing on the DS1 channel."; } leaf loopback { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } enum "fdl-ansi" { value 3; } enum "fdl-bellcore" { value 4; } enum "payload-ansi" { value 5; } enum "inband-ansi" { value 6; } enum "inband-bellcore" { value 7; } } description "Activate a loopback on the DS1 channel."; } leaf remote-loop-respond { type boolean; default "false"; description "Enable/disable response to remote loop."; } container hold-time { description "Enter the hold-time context"; leaf up { type uint32 { range "0..100"; } units "deciseconds"; default "0"; description "Configure the hold timer for link up event dampening on the physical DS1/E1 channels."; } leaf down { type uint32 { range "0..100"; } units "deciseconds"; default "0"; description "Configure the hold timer for link down event dampening on the physical DS1/E1 channels."; } } // container hold-time list channel-group { key "ds0-index"; description "Enter the channel-group list instance"; leaf ds0-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..24"; } } description "Specifies the DS0 channel group."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the DS1 channel group."; } leaf crc { type uint32 { range "16|32"; } description "Configure the precision of the cyclic redundancy check (CRC)."; } leaf description { type types-sros:long-description; default "DS0GRP"; description "Text description"; } leaf idle-cycle-flag { type types-port:tdm-dsx-idle-cycle-flag; description "Configure the value that the channel group transmits during idle cycle."; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Configure Load Balancing Algorithm."; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Assign a MAC address to the port."; } leaf mode { type enumeration { enum "access" { value 1; } enum "network" { value 2; } } description "Configure a port for access or network mode."; } leaf encap-type { type types-port:sonet-path-encap-type; description "Configure an encap method."; } leaf mtu { type uint32 { range "512..9208"; } units "bytes"; description "Configure the maximum payload MTU size for the port."; } leaf speed { type uint32 { range "56|64"; } default "64"; description "Configure the speed of the DS0 channels in this channel group."; } leaf-list timeslot { type uint32 { range "1..24"; } max-elements 24; description "Configure timeslot for this channel group."; } container egress { description "Enter the egress context"; container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Specifies the priority level of the port scheduler override."; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "max"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } leaf cir { type decimal64 { range "0..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy } // container egress container idle-payload-fill { description "Enter the idle-payload-fill context"; choice idle-payload-fill-choice { case all-ones { leaf all-ones { type empty; description "Specify all 1's will be played out when the CEM channel group experiences an underrun."; } } case pattern { leaf pattern { type uint32 { range "0..255"; } description "Specify the fill pattern when the CEM channel group experiences an underrun."; } } } } // container idle-payload-fill container idle-signal-fill { description "Enter the idle-signal-fill context"; choice idle-signal-fill-choice { case all-ones { leaf all-ones { type empty; description "Specify all 1's will be played out when the CAS CEM channel group experiences an underrun."; } } case pattern { leaf pattern { type uint32 { range "0..15"; } description "Specify the fill pattern when the CAS CEM channel group experiences an underrun."; } } } } // container idle-signal-fill container network { description "Enter the network context"; leaf accounting-policy { type types-log:log-policy-id; description "Configure the accounting policy."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data."; } leaf queue-policy { type types-sros:named-item; description "Configure the queue policy on the TDM DS0 network channel group."; } } // container network container ppp { description "Enter the ppp context"; leaf ber-sf-link-down { type boolean; default "false"; description "Enable/disable port down on BER-SF alarm."; } container compress { description "Enter the compress context"; leaf acfc { type boolean; default "false"; description "Enable/disable Address Control Field Compression (ACFC)."; } leaf pfc { type boolean; default "false"; description "Enable/disable Protocol Field Compression (PFC)."; } } // container compress container keepalive { description "Enter the keepalive context"; leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Configure the number of keepalive or LQR messages that can be missed before the line is brought down."; } leaf interval { type union { type uint32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "10"; description "Configure the time interval at which keepalive requests are issued."; } } // container keepalive } // container ppp } // list channel-group container report-alarm { description "Enter the report-alarm context"; leaf ais { type boolean; default "true"; description "Enable/disable ais alarm."; } leaf los { type boolean; default "true"; description "Enable/disable los alarm."; } leaf looped { type boolean; default "false"; description "Enable/disable looped alarm."; } leaf oof { type boolean; default "false"; description "Enable/disable oof alarm."; } leaf rai { type boolean; default "false"; description "Enable/disable rai alarm."; } leaf ber-sd { type boolean; default "false"; description "Enable/disable ber-sd alarm."; } leaf ber-sf { type boolean; default "false"; description "Enable/disable ber-sf alarm."; } } // container report-alarm container ber-threshold { description "Enter the ber-threshold context"; leaf signal-degrade { type uint32 { range "1|5|10|50|100"; } default "5"; description "Configure BER signal degredation threshold."; } leaf signal-failure { type uint32 { range "1|5|10|50|100"; } default "50"; description "Configure BER signal failure threshold."; } } // container ber-threshold } // list ds1 list ds3 { key "ds3-index"; description "Enter the ds3 list instance"; leaf ds3-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-port:tdm-ds3-index; } description "Specifies the TDM DS3 index."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the DS3 port."; } leaf channelized { type enumeration { enum "ds1" { value 2; } enum "e1" { value 3; } } description "Specify if the DS3 port is channelized."; } leaf crc { type uint32 { range "16|32"; } description "Configure the precision of the cyclic redundancy check (CRC)."; } leaf description { type types-sros:long-description; default "DS3"; description "Text description"; } leaf feac-loop-respond { type boolean; default "false"; description "Enable/disable responding to remote loop signals."; } leaf framing { type enumeration { enum "c-bit" { value 1; } enum "m23" { value 2; } enum "ds3-unframed" { value 6; } } default "c-bit"; description "Configure the framing for the DS3 channel."; } leaf idle-cycle-flag { type types-port:tdm-dsx-idle-cycle-flag; description "Configure the value that the port transmits during idle cycle."; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Configure Load Balancing Algorithm."; } leaf loopback { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } enum "remote" { value 3; } } description "Activate a loopback on the DS3 channel."; } leaf mode { type enumeration { enum "access" { value 1; } enum "network" { value 2; } } description "Configure a port for access or network mode."; } leaf encap-type { type types-port:sonet-path-encap-type; description "Configure an encap method."; } leaf mtu { type uint32 { range "512..9208"; } units "bytes"; description "Configure the maximum payload MTU size for the port."; } leaf scramble { type boolean; description "Configure ATM payload scrambling."; } leaf clock-source { type enumeration { enum "loop-timed" { value 1; } enum "node-timed" { value 2; } } default "node-timed"; description "Configure the clock for transmitted data."; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Assign a MAC address to the port."; } container egress { description "Enter the egress context"; container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Specifies the priority level of the port scheduler override."; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "max"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } leaf cir { type decimal64 { range "0..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy } // container egress container maintenance-data-link { description "Enter the maintenance-data-link context"; leaf equipment-id-code { type string { length "0..10"; } description "Configure the Equipment ID Code (EIC) of the MDL."; } leaf facility-id-code { type string { length "0..38"; } description "Configure the Facility ID Code sent in the MDL Path message."; } leaf frame-id-code { type string { length "0..10"; } description "Configure the Frame ID Code (FIC) of the MDL."; } leaf generator-string { type string { length "0..38"; } description "Configure the generator number string sent in the MDL test signal message."; } leaf location-id-code { type string { length "0..11"; } description "Configure the Location ID Code (LIC) of the MDL."; } leaf port-string { type string { length "0..38"; } description "Configure the port number string sent in the MDL idle signal message."; } leaf unit-id-code { type string { length "0..6"; } description "Configure the Unit ID Code (UIC) of the MDL."; } container transmit-message-type { description "Enter the transmit-message-type context"; leaf path { type boolean; default "false"; description "Enable/disable transmission of MDL path messages."; } leaf idle-signal { type boolean; default "false"; description "Enable/disable transmission of MDL idle signal messages."; } leaf test-signal { type boolean; default "false"; description "Enable/disable transmission of MDL test signal messages."; } } // container transmit-message-type } // container maintenance-data-link container network { description "Enter the network context"; leaf accounting-policy { type types-log:log-policy-id; description "Configure the accounting policy."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data."; } leaf queue-policy { type types-sros:named-item; description "Configure the queue policy on the TDM DS3 network channel."; } } // container network container ppp { description "Enter the ppp context"; container keepalive { description "Enter the keepalive context"; leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Configure the number of keepalive or LQR messages that can be missed before the line is brought down."; } leaf interval { type union { type uint32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "10"; description "Configure the time interval at which keepalive requests are issued."; } } // container keepalive } // container ppp container report-alarm { description "Enter the report-alarm context"; leaf ais { type boolean; default "true"; description "Enable/disable ais alarm."; } leaf los { type boolean; default "true"; description "Enable/disable los alarm."; } leaf looped { type boolean; default "false"; description "Enable/disable looped alarm."; } leaf oof { type boolean; default "false"; description "Enable/disable oof alarm."; } leaf rai { type boolean; default "false"; description "Enable/disable rai alarm."; } } // container report-alarm container subrate { description "Enter the subrate context"; leaf csu-mode { type enumeration { enum "digital-link" { value 1; } enum "larscom" { value 3; } } description "Configure the subrate Channel Service Unit (CSU) mode."; } leaf rate-step { type uint32 { range "0..147"; } description "Configure the subrate step."; } } // container subrate } // list ds3 list e3 { key "e3-index"; description "Enter the e3 list instance"; leaf e3-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-port:tdm-e3-index; } description "Specifies the TDM E3 index."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the E3 channel."; } leaf crc { type uint32 { range "16|32"; } description "Configure the precision of the cyclic redundancy check (CRC)."; } leaf description { type types-sros:long-description; default "E3"; description "Text description"; } leaf framing { type enumeration { enum "g751" { value 3; } enum "g832" { value 4; } enum "e3-unframed" { value 5; } } default "g751"; description "Configure the framing for the E3 channel."; } leaf idle-cycle-flag { type types-port:tdm-dsx-idle-cycle-flag; description "Configure the value that the port transmits during idle cycle."; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Configure Load Balancing Algorithm."; } leaf loopback { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } } description "Activate a loopback on the E3 channel."; } leaf mode { type enumeration { enum "access" { value 1; } enum "network" { value 2; } } description "Configure a port for access or network mode."; } leaf encap-type { type types-port:sonet-path-encap-type; description "Configure an encap method."; } leaf mtu { type uint32 { range "512..9208"; } units "bytes"; description "Configure the maximum payload MTU size for the port."; } leaf scramble { type boolean; description "Configure ATM payload scrambling."; } leaf clock-source { type enumeration { enum "loop-timed" { value 1; } enum "node-timed" { value 2; } } default "node-timed"; description "Configure the clock for transmitted data."; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Assign a MAC address to the port."; } container egress { description "Enter the egress context"; container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Specifies the priority level of the port scheduler override."; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "max"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } leaf cir { type decimal64 { range "0..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy } // container egress container network { description "Enter the network context"; leaf accounting-policy { type types-log:log-policy-id; description "Configure the accounting policy."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data."; } leaf queue-policy { type types-sros:named-item; description "Configure the queue policy on the TDM E3 network channel."; } } // container network container ppp { description "Enter the ppp context"; container keepalive { description "Enter the keepalive context"; leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Configure the number of keepalive or LQR messages that can be missed before the line is brought down."; } leaf interval { type union { type uint32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "10"; description "Configure the time interval at which keepalive requests are issued."; } } // container keepalive } // container ppp container report-alarm { description "Enter the report-alarm context"; leaf ais { type boolean; default "true"; description "Enable/disable ais alarm."; } leaf los { type boolean; default "true"; description "Enable/disable los alarm."; } leaf looped { type boolean; default "false"; description "Enable/disable looped alarm."; } leaf oof { type boolean; default "false"; description "Enable/disable oof alarm."; } leaf rai { type boolean; default "false"; description "Enable/disable rai alarm."; } } // container report-alarm } // list e3 list e1 { key "e1-index"; description "Enter the e1 list instance"; leaf e1-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-port:tdm-e1-index; } description "Specifies the TDM E1 index."; } leaf clock-source { type enumeration { enum "loop-timed" { value 1; } enum "node-timed" { value 2; } enum "adaptive" { value 3; } enum "differential" { value 4; } } description "Configure the clock for transmitted data."; } leaf signal-mode { type enumeration { enum "channel-associated-signaling" { value 2; } } description "Activate the signal-mode on the channel."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the E1 channel."; } leaf framing { type enumeration { enum "no-crc-g704" { value 3; } enum "g704" { value 4; } enum "e1-unframed" { value 5; } } default "g704"; description "Configure the framing on the E1 channel."; } leaf loopback { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } } description "Activate a loopback on the E1 channel."; } container hold-time { description "Enter the hold-time context"; leaf up { type uint32 { range "0..100"; } units "deciseconds"; default "0"; description "Configure the hold timer for link up event dampening on the physical DS1/E1 channels."; } leaf down { type uint32 { range "0..100"; } units "deciseconds"; default "0"; description "Configure the hold timer for link down event dampening on the physical DS1/E1 channels."; } } // container hold-time list channel-group { key "ds0-index"; description "Enter the channel-group list instance"; leaf ds0-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32"; } } description "Specifies the DS0 channel group."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the E1 channel group."; } leaf crc { type uint32 { range "16|32"; } description "Configure the precision of the cyclic redundancy check (CRC)."; } leaf description { type types-sros:long-description; default "DS0GRP"; description "Text description"; } leaf idle-cycle-flag { type types-port:tdm-dsx-idle-cycle-flag; description "Configure the value that the channel group transmits during idle cycle."; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Configure Load Balancing Algorithm."; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Assign a MAC address to the port."; } leaf mode { type enumeration { enum "access" { value 1; } enum "network" { value 2; } } description "Configure a port for access or network mode."; } leaf encap-type { type types-port:sonet-path-encap-type; description "Configure an encap method."; } leaf mtu { type uint32 { range "512..9208"; } units "bytes"; description "Configure the maximum payload MTU size for the port."; } leaf speed { type uint32 { range "56|64"; } default "64"; description "Configure the speed of the E0 channels in this channel group."; } leaf-list timeslot { type uint32 { range "1..32"; } max-elements 32; description "Configure timeslot for this channel group."; } container egress { description "Enter the egress context"; container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Specifies the priority level of the port scheduler override."; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "max"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } leaf cir { type decimal64 { range "0..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy } // container egress container idle-payload-fill { description "Enter the idle-payload-fill context"; choice idle-payload-fill-choice { case all-ones { leaf all-ones { type empty; description "Specify all 1's will be played out when the CEM channel group experiences an underrun."; } } case pattern { leaf pattern { type uint32 { range "0..255"; } description "Specify the fill pattern when the CEM channel group experiences an underrun."; } } } } // container idle-payload-fill container idle-signal-fill { description "Enter the idle-signal-fill context"; choice idle-signal-fill-choice { case all-ones { leaf all-ones { type empty; description "Specify all 1's will be played out when the CAS CEM channel group experiences an underrun."; } } case pattern { leaf pattern { type uint32 { range "0..15"; } description "Specify the fill pattern when the CAS CEM channel group experiences an underrun."; } } } } // container idle-signal-fill container network { description "Enter the network context"; leaf accounting-policy { type types-log:log-policy-id; description "Configure the accounting policy."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data."; } leaf queue-policy { type types-sros:named-item; description "Configure the queue policy on the TDM E0 network channel group."; } } // container network container ppp { description "Enter the ppp context"; leaf ber-sf-link-down { type boolean; default "false"; description "Enable/disable port down on BER-SF alarm."; } container compress { description "Enter the compress context"; leaf acfc { type boolean; default "false"; description "Enable/disable Address Control Field Compression (ACFC)."; } leaf pfc { type boolean; default "false"; description "Enable/disable Protocol Field Compression (PFC)."; } } // container compress container keepalive { description "Enter the keepalive context"; leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Configure the number of keepalive or LQR messages that can be missed before the line is brought down."; } leaf interval { type union { type uint32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "10"; description "Configure the time interval at which keepalive requests are issued."; } } // container keepalive } // container ppp } // list channel-group container national-bits { description "Enter the national-bits context"; leaf sa4 { type boolean; default "false"; description "Enable/disable sa-bit 4."; } leaf sa5 { type boolean; default "false"; description "Enable/disable sa-bit 5."; } leaf sa6 { type boolean; default "false"; description "Enable/disable sa-bit 6."; } leaf sa7 { type boolean; default "false"; description "Enable/disable sa-bit 7."; } leaf sa8 { type boolean; default "false"; description "Enable/disable sa-bit 8."; } } // container national-bits container report-alarm { description "Enter the report-alarm context"; leaf ais { type boolean; default "true"; description "Enable/disable ais alarm."; } leaf los { type boolean; default "true"; description "Enable/disable los alarm."; } leaf looped { type boolean; default "false"; description "Enable/disable looped alarm."; } leaf oof { type boolean; default "false"; description "Enable/disable oof alarm."; } leaf rai { type boolean; default "false"; description "Enable/disable rai alarm."; } leaf ber-sd { type boolean; default "false"; description "Enable/disable ber-sd alarm."; } leaf ber-sf { type boolean; default "false"; description "Enable/disable ber-sf alarm."; } } // container report-alarm container ber-threshold { description "Enter the ber-threshold context"; leaf signal-degrade { type uint32 { range "1|5|10|50|100"; } default "5"; description "Configure BER signal degredation threshold."; } leaf signal-failure { type uint32 { range "1|5|10|50|100"; } default "50"; description "Configure BER signal failure threshold."; } } // container ber-threshold } // list e1 } // container tdm } // list port list port-policy { key "name"; max-elements 32; description "Enter the port-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Port policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf egress-port-scheduler-policy { type types-sros:named-item; description "Policy for egress port scheduler"; } } // list port-policy container port-xc { description "Enter the port-xc context"; list pxc { key "pxc-id"; description "Enter the pxc list instance"; leaf pxc-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..64"; } } description "Unique Identifier for the PXC"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PXC"; } leaf description { type types-sros:description; description "Text description"; } leaf port-id { type types-sros:port; sros-ext:immutable; description "PXC port ID"; } } // list pxc } // container port-xc list pw-port { key "pw-port-id"; description "Enter the pw-port list instance"; leaf pw-port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:pw-port; } description "The identifier which uniquely identifies the pw-port."; } leaf description { type types-sros:long-description; default "PW Port"; description "Text description"; } leaf encap-type { type enumeration { enum "dot1q" { value 2; } enum "qinq" { value 10; } } default "dot1q"; description "Encap type of the pseudo-wire port"; } leaf dot1q-etype { type types-port:etype; default "33024"; description "Dot1q eth-type encapsulation value as 0xXXYY with range 0x0600-0xFFFF."; } leaf qinq-etype { type types-port:etype; default "33024"; description "QinQ eth-type encapsulation value. as 0xXXYY with range 0x0600-0xFFFF."; } choice pw-port-object { case sdp { list sdp { key "sdp-id"; max-elements 1; description "Enter the sdp list instance"; leaf sdp-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-id; } description "Service Distribution Point (SDP) identifier."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the pseudowire port"; } leaf vc-id { type types-services:vc-id; sros-ext:immutable; description "Specifies the virtual-circuit identifier associated with this pseudo-wire port."; } leaf vc-type { type types-services:pw-port-sdp-bind-vc-type; default "ether"; description "Specifies the type of virtual circuit (VC)."; } leaf vlan-vc-tag { type types-services:vlan-vc-tag; description "Specifies the VLAN VC tag."; } leaf monitor-oper-group { type types-sros:named-item; description "Specifies the monitoring operational group name."; } leaf control-word { type boolean; default "false"; description "Whether using the control-word is preferred or not. This bit is exchanged with LDP peer during pseudowire negotiation time."; } container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Specifies the static MPLS VC label to send packets to the far-end device."; } container shaper { description "Enter the shaper context"; leaf intermediate-destination-id { type types-sros:named-item; description "Intermediate destination ID applicable to ESM PW SAPs"; } leaf pw-sap-secondary-shaper { type types-sros:named-item; description "Specifies the SAP secondary shaper associated on the egress side."; } leaf virtual-port { type types-sros:named-item; description "Specifies the virtual port name of the shaper on the egress side."; } } // container shaper } // container egress container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; description "Specifies the static MPLS VC label to receive packets from the far-end device."; } } // container ingress } // list sdp } case epipe { list epipe { key "service-name"; max-elements 1; description "Enter the epipe list instance"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the pseudowire port"; } leaf fpe-id { type uint32 { range "1..64"; } sros-ext:immutable; description "Forward path extension identifier."; } leaf monitor-oper-group { type types-sros:named-item; description "Specifies the monitoring operational group name."; } container egress { description "Enter the egress context"; container shaper { description "Enter the shaper context"; leaf intermediate-destination-id { type types-sros:named-item; description "Intermediate destination ID applicable to ESM PW SAPs"; } leaf virtual-port { type types-sros:named-item; description "Specifies the virtual port name of the shaper on the egress side."; } } // container shaper } // container egress } // list epipe } } } // list pw-port container python { description "Enter the python context"; list python-script { key "name"; max-elements 256; description "Enter the python-script list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Python script policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Python script"; } leaf description { type types-sros:description; description "Text description"; } leaf action-on-fail { type enumeration { enum "passthrough" { value 1; } enum "drop" { value 2; } } default "drop"; description "Action taken when Python fails to modify the given message"; } leaf-list urls { type types-sros:url; max-elements 3; ordered-by user; description "The script locations in URL format"; } leaf version { type enumeration { enum "python2" { value 2; } enum "python3" { value 3; } } sros-ext:immutable; default "python2"; description "the version of Python this script is written for."; } container protection { description "Enter the protection context"; leaf hmac-sha256 { type types-sros:encrypted-leaf { length "1..199"; } description "Python script to consist of the hash value as obtained by the hmac-sha256 hashing algorithm"; } } // container protection } // list python-script list python-policy { key "name"; max-elements 64; description "Enter the python-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Python policy name"; } leaf description { type types-sros:description; description "Text description"; } choice isa { case wlan-gw-group { leaf wlan-gw-group { type types-isa:wlan-gw-group-id; sros-ext:immutable; description "WLAN ISA group for this Python policy"; } } case nat-group { leaf nat-group { type uint32 { range "1..4"; } sros-ext:immutable; description "NAT ISA group for this Python policy"; } } } container cache { presence "Enter the 'cache' context"; description "Enable the cache context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Python cache"; } leaf entry-size { type int32 { range "32..2048"; } units "bytes"; default "256"; description "Maximum size of the data structure to be stored in a single Python cache entry"; } leaf max-entries { type int32 { range "1..1000000"; } default "128000"; description "Maximum number of Python cache entries to be stored in the cache of this Python policy"; } leaf max-entry-lifetime { type types-sros:time-duration { range "1..604800"; } units "seconds"; default "86400"; description "Maximum lifetime allowed for each entry of the Python cache of this Python policy"; } leaf persistence { type boolean; default "false"; description "Allow persistency support for the cached entries of the Python policy"; } container mcs-peer { presence "Enter the 'mcs-peer' context"; description "Enable the mcs-peer context"; leaf ip-address { type types-sros:ip-unicast-address; description "IP address of the Multi-Chassis Redundancy Synchronization (MCS) peer"; } leaf sync-tag { type types-sros:named-item; description "Python policy cache that is uniquely identified within the scope of MCS peer"; } } // container mcs-peer container minimum-lifetimes { description "Enter the minimum-lifetimes context"; leaf multi-chassis-redundancy { type uint32 { range "1..600"; } units "seconds"; description "Minimum value for the remaining lifetime of any cache entry to be synchronized with peer system"; } leaf high-availability { type uint32 { range "1..600"; } units "seconds"; description "Minimum value for the remaining lifetime of any cache entry to be synchronized with standby CPM"; } leaf persistence { type uint32 { range "1..1800"; } units "seconds"; description "Minimum value for the remaining lifetime of any cache entry to be written to system persistence"; } } // container minimum-lifetimes } // container cache list dhcp { key "message-type direction"; description "Enter the dhcp list instance"; leaf message-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "discover" { value 1001; } enum "offer" { value 1002; } enum "request" { value 1003; } enum "decline" { value 1004; } enum "ack" { value 1005; } enum "nak" { value 1006; } enum "release" { value 1007; } enum "inform" { value 1008; } enum "force-renew" { value 1009; } enum "lease-query" { value 1010; } enum "lease-unassigned" { value 1011; } enum "lease-unknown" { value 1012; } enum "lease-active" { value 1013; } } } description "DHCP message type"; } leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:direction; } description "Event that is either incoming or outgoing"; } leaf script { type types-sros:named-item; description "Python script name for the message specified by message-type"; } } // list dhcp list dhcp6 { key "message-type direction"; description "Enter the dhcp6 list instance"; leaf message-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "solicit" { value 2001; } enum "advertise" { value 2002; } enum "request" { value 2003; } enum "confirm" { value 2004; } enum "renew" { value 2005; } enum "rebind" { value 2006; } enum "reply" { value 2007; } enum "release" { value 2008; } enum "decline" { value 2009; } enum "reconfigure" { value 2010; } enum "info-request" { value 2011; } enum "relay-forward" { value 2012; } enum "relay-reply" { value 2013; } } } description "DHCPv6 message type"; } leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:direction; } description "Event that is either incoming or outgoing"; } leaf script { type types-sros:named-item; description "Python script name for the message specified by message-type"; } } // list dhcp6 list radius { key "message-type direction"; description "Enter the radius list instance"; leaf message-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "access-request" { value 1; } enum "access-accept" { value 2; } enum "access-reject" { value 3; } enum "accounting-request" { value 4; } enum "accounting-response" { value 5; } enum "access-challenge" { value 6; } enum "disconnect-request" { value 7; } enum "change-of-authorization-request" { value 8; } } } description "RADIUS message type"; } leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:direction; } description "Event that is either incoming or outgoing"; } leaf script { type types-sros:named-item; description "Python script name for the message specified by message-type"; } } // list radius list diameter { key "message-type direction"; description "Enter the diameter list instance"; leaf message-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "ccr" { value 3001; } enum "cca" { value 3002; } enum "rar" { value 3003; } enum "raa" { value 3004; } enum "cer" { value 3005; } enum "cea" { value 3006; } enum "dwr" { value 3007; } enum "dwa" { value 3008; } enum "dpr" { value 3009; } enum "dpa" { value 3010; } enum "asr" { value 3011; } enum "asa" { value 3012; } enum "aar" { value 3013; } enum "aaa" { value 3014; } } } description "Diameter message type"; } leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:direction; } description "Event that is either incoming or outgoing"; } leaf script { type types-sros:named-item; description "Python script name for the message specified by message-type"; } } // list diameter container vsd { presence "Enter the 'vsd' context"; description "Enable the vsd context"; leaf script { type types-sros:named-item; description "Python script name for the received XMPP Service-Config response messages"; } } // container vsd list gtpv1-c { key "message-type direction"; description "Enter the gtpv1-c list instance"; leaf message-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "echo-request" { value 5001; } enum "echo-response" { value 5002; } enum "version-not-supported" { value 5003; } enum "create-pdp-context-request" { value 5004; } enum "create-pdp-context-response" { value 5005; } enum "delete-pdp-context-request" { value 5008; } enum "delete-pdp-context-response" { value 5009; } enum "error-indication" { value 5010; } enum "end-marker" { value 5011; } } } description "GTPv1-C message type"; } leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:direction; } description "Event that is either incoming or outgoing"; } leaf script { type types-sros:named-item; description "Python script name for the message specified by message-type"; } } // list gtpv1-c list gtpv2-c { key "message-type direction"; description "Enter the gtpv2-c list instance"; leaf message-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "echo-request" { value 6001; } enum "echo-response" { value 6002; } enum "version-not-supported" { value 6003; } enum "create-session-request" { value 6004; } enum "create-session-response" { value 6005; } enum "modify-bearer-request" { value 6006; } enum "modify-bearer-response" { value 6007; } enum "delete-session-request" { value 6008; } enum "delete-session-response" { value 6009; } enum "delete-bearer-request" { value 6010; } enum "delete-bearer-response" { value 6011; } enum "release-access-bearers-request" { value 6012; } enum "release-access-bearers-response" { value 6013; } enum "downlink-data-notification" { value 6014; } enum "downlink-data-notification-ack" { value 6015; } enum "change-notification-request" { value 6016; } enum "change-notification-response" { value 6017; } enum "stop-paging-indication" { value 6018; } } } description "GTPv2-C message type"; } leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:direction; } description "Event that is either incoming or outgoing"; } leaf script { type types-sros:named-item; description "Python script name for the message specified by message-type"; } } // list gtpv2-c list pppoe { key "message-type direction"; description "Enter the pppoe list instance"; leaf message-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "session-lcp" { value 7001; } enum "session-pap" { value 7002; } enum "session-chap" { value 7003; } enum "session-ipcp" { value 7004; } enum "session-ip6cp" { value 7005; } enum "pado" { value 7006; } enum "padi" { value 7007; } enum "padr" { value 7008; } enum "pads" { value 7009; } enum "padt" { value 7010; } } } description "PPPoE message type"; } leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:direction; } description "Event that is either incoming or outgoing"; } leaf script { type types-sros:named-item; description "Python script name for the message specified by message-type"; } } // list pppoe container syslog { presence "Enter the 'syslog' context"; description "Enable the syslog context"; leaf script { type types-sros:named-item; description "Python script name for outgoing syslog messages"; } } // container syslog } // list python-policy } // container python container qos { description "Enter the qos context"; container md-auto-id { description "Enter the md-auto-id context"; container qos-policy-id-range { presence "Enter the 'qos-policy-id-range' context"; description "Enable the qos-policy-id-range context"; leaf start { type types-qos:qos-policy-id { range "2..65535"; } sros-ext:immutable; description "Lower value of the ID range, must be less than or equal to end value"; } leaf end { type types-qos:qos-policy-id { range "2..65535"; } sros-ext:immutable; description "Upper value of the ID range, must be greater than or equal to start value"; } } // container qos-policy-id-range } // container md-auto-id list sap-ingress { key "sap-ingress-policy-name"; description "Enter the sap-ingress list instance"; leaf sap-ingress-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:qos-policy-name; } description "Name of this SAP-ingress QoS policy"; } leaf policy-id { type types-qos:qos-policy-id; sros-ext:immutable; description "The sap-ingress QoS policy identifier."; } leaf policer-allocation { type types-qos:sap-ingress-policer-alloc; sros-ext:immutable; default "none"; description "Specifies the fc-policer mapping for sap-ingress policy (allowed values : none / per-fc / per-fc-unicast-multipoint / per-fc-unicast-multicast / per-fc-unicast-broadcast-unknown-multicast)"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf default-fc { type types-qos:sap-ingress-fc-name; description "Default forwarding class or sub forwarding class for traffic not matching specific classification"; } leaf default-priority { type types-qos:default-priority; default "low"; description "Priority to assign to traffic ingressing as the default action queue"; } leaf ingress-classification-policy { type types-qos:qos-policy-name; description "Attach ingress classification policy."; } container subscriber-mgmt { description "Enter the subscriber-mgmt context"; container pcc-rule-entry { description "Enter the pcc-rule-entry context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-qos:entry-id; description "Starting entry at which the PCC-rule IP criteria entries are shared across several hosts"; } leaf end { type types-qos:entry-id; description "Ending entry at which the PCC-rule IP criteria entries are shared across several hosts"; } } // container range } // container pcc-rule-entry container dynamic-policer { description "Enter the dynamic-policer context"; leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority violate threshold of PIR leaky bucket of this policer"; } leaf packet-byte-offset { type types-qos:per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; default "minimal"; description "Mode of statistics collected by the policer"; } container policer-id-range { presence "Enter the 'policer-id-range' context"; description "Enable the policer-id-range context"; leaf start { type types-qos:ingress-policer-id; description "Starting place at which dynamic policers, required for PCC-rule IP criteria entries, will be inserted"; } leaf end { type types-qos:ingress-policer-id; description "Ending place at which dynamic policers, required for PCC-rule IP criteria entries, will be inserted"; } } // container policer-id-range container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // container dynamic-policer } // container subscriber-mgmt container mac-criteria { description "Enter the mac-criteria context"; leaf type { type types-qos:mac-criteria-type; sros-ext:immutable; default "normal"; description "MAC criteria filter type"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:entry-id; } description "Identifier for MAC match criteria and the corresponding action for a SAP-ingress policy"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf frame-type { type types-qos:mac-frame-type; description "Match MAC criteria for ingress SAP QoS policy"; } leaf etype { type types-services:etype-value; description "Ethernet type"; } leaf snap-pid { type int32 { range "0..65535"; } description "Parameter snap-pid as MAC filter match criteria"; } leaf snap-oui { type enumeration { enum "zero" { value 2; } enum "non-zero" { value 3; } } description "Parameter snap-oui as MAC filter match criteria"; } leaf atm-vci { type types-qos:atm-vc-indentifier; description "ATM VC Identifier to match as part of the MAC match criteria"; } container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; description "Source MAC address as QoS policy match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "Mask for source MAC address"; } } // container src-mac container dst-mac { presence "Enter the 'dst-mac' context"; description "Enable the dst-mac context"; leaf address { type yang:mac-address; description "Destination MAC address as QoS policy match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "Mask for destination MAC address"; } } // container dst-mac container dot1p { presence "Enter the 'dot1p' context"; description "Enable the dot1p context"; leaf priority { type types-qos:dot1p-priority; description "Value of 802.1P priority to use as a MAC filter match criterion"; } leaf mask { type types-qos:dot1p-priority; default "7"; description "Value of 802.1P mask to use as a MAC filter match criterion"; } } // container dot1p container llc-dsap { presence "Enter the 'llc-dsap' context"; description "Enable the llc-dsap context"; leaf dsap { type types-qos:service-access-point; description "DSAP value"; } leaf mask { type types-qos:service-access-point; default "255"; description "DSAP mask"; } } // container llc-dsap container llc-ssap { presence "Enter the 'llc-ssap' context"; description "Enable the llc-ssap context"; leaf ssap { type types-qos:service-access-point; description "SSAP value"; } leaf mask { type types-qos:service-access-point; default "255"; description "Source SAP mask"; } } // container llc-ssap container inner-tag { presence "Enter the 'inner-tag' context"; description "Enable the inner-tag context"; leaf vlan { type int32 { range "0..4095"; } description "Match against VID of the second or first VLAN tag in the packet carried transparently through service"; } leaf mask { type uint32 { range "1..4095"; } default "4095"; description "Mask to VID of the inner VLAN tag before comparing it with the inner-tag or outer-tag value"; } } // container inner-tag container outer-tag { presence "Enter the 'outer-tag' context"; description "Enable the outer-tag context"; leaf vlan { type int32 { range "0..4095"; } description "Match against VID of the first VLAN tag in the packet carried transparently through service"; } leaf mask { type uint32 { range "1..4095"; } default "4095"; description "First tag carried transparently through the service"; } } // container outer-tag } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the criteria"; } leaf priority { type types-qos:priority; description "Priority for the packet"; } leaf policer { type types-qos:ingress-policer-id; description "Policer identifier for the traffic matching MAC Criteria"; } } // container action } // list entry } // container mac-criteria container ip-criteria { description "Enter the ip-criteria context"; leaf type { type types-qos:ip-filter-type; sros-ext:immutable; default "normal"; description "IPv4 criteria entry type"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:entry-id; } description "IP criteria entry to create or edit for the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf tag { type uint32 { range "0..255"; } default "0"; description "Tag ID associated with the criteria entry"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Match performed when the packet is either a fragment or not, or matches all packets"; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Destination IPv4 address for SAP QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type types-sros:named-item; description "IP-prefix list as match criterion"; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Source IPv4 address for SAP QoS policy match criterion"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type types-sros:named-item; description "IP-prefix list as match criterion"; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port container vxlan-vni { description "Enter the vxlan-vni context"; choice vxlan-vni-mapping { case eq { leaf eq { type uint32 { range "1..16777215"; } description "Value 'equal to' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type uint32 { range "1..16777215"; } description "Start value of range"; } leaf end { type uint32 { range "1..16777215"; } description "End value for range"; } } // container range } } } // container vxlan-vni } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the criteria"; } leaf priority { type types-qos:priority; description "Priority for the packet"; } leaf policer { type types-qos:ingress-policer-id; description "Policer identifier for the traffic matching MAC Criteria"; } } // container action } // list entry } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf type { type types-qos:ip-filter-type; sros-ext:immutable; default "normal"; description "IPv6 criteria entry type"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:entry-id; } description "IPv6 criteria entry to create or edit for the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf tag { type uint32 { range "0..255"; } default "0"; description "Tag ID associated with the criteria entry"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "Next Header to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } enum "first-only" { value 4; } enum "non-first-only" { value 5; } } description "Match performed when the packet is either a fragment or not, or matches all packets"; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IP address to match with destination IP of the packet"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "IPv6 prefix list as match criterion for IPv6 addresses"; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IP address to match with source IP of the packet"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "IPv6 prefix list as match criterion for IPv6 addresses"; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port container vxlan-vni { description "Enter the vxlan-vni context"; choice vxlan-vni-mapping { case eq { leaf eq { type uint32 { range "1..16777215"; } description "Value 'equal to' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type uint32 { range "1..16777215"; } description "Start value of range"; } leaf end { type uint32 { range "1..16777215"; } description "End value for range"; } } // container range } } } // container vxlan-vni } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the criteria"; } leaf priority { type types-qos:priority; description "Priority for the packet"; } leaf policer { type types-qos:ingress-policer-id; description "Policer identifier for the traffic matching MAC Criteria"; } } // container action } // list entry } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-queue-id; } description "SAP-ingress policer identifier"; } leaf multipoint { type boolean; sros-ext:immutable; default "false"; description "Apply as a multicast queue"; } leaf queue-type { type types-qos:queue-type; sros-ext:immutable; default "auto-expedited"; description "Priority that this queue receives from the hardware level schedulers"; } leaf queue-mode { type enumeration { enum "priority" { value 1; } enum "profile" { value 2; } } sros-ext:immutable; default "priority"; description "Operating mode for this queue"; } leaf cbs { type union { type int32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; default "auto"; description "Reserved buffer space for the queue"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Maximum buffer space that is allowed for queue"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf adv-config-policy { type types-sros:named-item; description "Name of the advanced configuration policy to apply with this queue"; } leaf packet-byte-offset { type types-qos:per-packet-offset { range "-32..30"; } default "0"; description "Value of the adjustment on the size of each packet for queue accounting"; } leaf cir-non-profiling { type boolean; default "false"; description "Prevents the CIR to be used for re-profiling a packet's state."; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } choice rate-cir-fir-or-police { default "cir-fir"; case cir-fir { leaf cir { type types-qos:queue-cir-rate-maximum; units "kilobps"; default "0"; description "Administrative CIR"; } leaf fir { type types-qos:queue-fir-rate-maximum; units "kilobps"; default "0"; description "Administrative FIR"; } } case police { leaf police { type empty; description "Drop the traffic feeding into queue above the PIR rate"; } } } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf reference-rate { type enumeration { enum "port-limit" { value 2; } enum "local-limit" { value 3; } enum "reference-port-limit" { value 4; } } default "port-limit"; description "Reference rate"; } choice percent-rate-cir-fir-or-police { default "cir-fir"; case cir-fir { leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } leaf fir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative FIR percent."; } } case police { leaf police { type empty; description "Specifies that the out of profile traffic feeding into the physical queue instance should be dropped"; } } } } // container percent-rate } } container scheduler-parent { description "Enter the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; description "Scheduler to which this queue feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight; default "1"; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Level of priority while feeding to the parent"; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container scheduler-parent container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } leaf fir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational FIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail } // list queue list dscp { key "dscp-name"; description "Enter the dscp list instance"; leaf dscp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:dscp-name; } description "Name for the Differentiated Services Code Point (DSCP)"; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the specific DSCP"; } leaf priority { type types-qos:priority; description "Priority for the packet"; } } // list dscp list dot1p { key "dot1p-value"; description "Enter the dot1p list instance"; leaf dot1p-value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:dot1p-priority; } description "Dot1p value to match in the packet"; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the specific Dot1p"; } leaf priority { type types-qos:priority; description "Priority for packets that match the Dot1p value"; } } // list dot1p list prec { key "prec-value"; description "Enter the prec list instance"; leaf prec-value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:precedence-value; } description "Precedence value for which mapping is performed"; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the precedence value"; } leaf priority { type types-qos:priority; description "Priority for the matching traffic"; } } // list prec list lsp-exp { key "lsp-exp-value"; description "Enter the lsp-exp list instance"; leaf lsp-exp-value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:lsp-exp-value; } description "Value to assign the unique MPLS LSP EXP value that will match the lsp-exp rule"; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the LSP EXP value"; } leaf priority { type types-qos:priority; description "Priority for the matching traffic"; } } // list lsp-exp list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id; } description "SAP-ingress policer identifier"; } leaf description { type types-sros:description; description "Text description"; } leaf stat-mode { type types-qos:sap-ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority violate threshold of PIR leaky bucket"; } leaf high-prio-only { type types-qos:burst-percent; description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf packet-byte-offset { type types-qos:per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf adv-config-policy { type types-sros:named-item; description "Name of the advanced configuration policy to apply with this queue"; } leaf profile-capped { type boolean; default "false"; description "Enforce an overall in-profile burst limit to the CIR bucket at ingress policer"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:policer-cir-rate-maximum; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR percent"; } leaf reference-rate { type enumeration { enum "local-limit" { value 2; } enum "reference-port-limit" { value 3; } } default "local-limit"; description "Reference rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // list policer list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:sap-ingress-fc-name; } description "Forwarding class or the sub forwarding class for which this mapping is performed"; } leaf profile { type types-qos:profile; description "Profile of the packets associated with this forwarding class"; } leaf de-1-out-profile { type boolean; default "false"; description "Frames with DE value to be assigned as out of profile"; } leaf egress-fc { type types-sros:fc-name; description "Forwarding class to override the forwarding class determined by ingress classification"; } choice queue-policer-mapping { case queue { leaf queue { type types-qos:ingress-queue-id; description "Queue to assign for packets in this forwarding class"; } } case queue-group-queue { container queue-group-queue { presence "Enter the 'queue-group-queue' context"; description "Enable the queue-group-queue context"; leaf queue-group-name { type types-sros:named-item; description "Queue group name associated with queue"; } leaf queue { type types-qos:ingress-queue-id; description "Queue to assign for packets in this forwarding class"; } } // container queue-group-queue } case policer { leaf policer { type types-qos:ingress-policer-id; description "Policer identifier for the unicast normal traffic in this forwarding class"; } leaf fp-redirect-group-policer { type empty; description "Specified policer to be used as defined in the FP (forwarding-plane)"; } } } choice multicast-queue-policer-mapping { case multicast-queue { leaf multicast-queue { type types-qos:ingress-queue-id; description "Broadcast queue to assign for packets in this forwarding class"; } } case multicast-queue-group-queue { container multicast-queue-group-queue { presence "Enter the 'multicast-queue-group-queue' context"; description "Enable the unknown-queue-group-queue context"; leaf queue-group-name { type types-sros:named-item; description "Queue group name associated with broadcast queue"; } leaf queue { type types-qos:ingress-queue-id; description "Broadcast queue to assign for packets in this forwarding class"; } } // container multicast-queue-group-queue } case multicast-policer { leaf multicast-policer { type types-qos:ingress-policer-id; description "Policer identifier for the unknown broadcast traffic in this forwarding class"; } leaf fp-redirect-group-multicast-policer { type empty; description "Broadcast policer to be used as defined in the FP (forwarding-plane)"; } } } choice broadcast-queue-policer-mapping { case broadcast-queue { leaf broadcast-queue { type types-qos:ingress-queue-id; description "Broadcast queue to assign for packets in this forwarding class"; } } case broadcast-queue-group-queue { container broadcast-queue-group-queue { presence "Enter the 'broadcast-queue-group-queue' context"; description "Enable the unknown-queue-group-queue context"; leaf queue-group-name { type types-sros:named-item; description "Queue group name associated with broadcast queue"; } leaf queue { type types-qos:ingress-queue-id; description "Broadcast queue to assign for packets in this forwarding class"; } } // container broadcast-queue-group-queue } case broadcast-policer { leaf broadcast-policer { type types-qos:ingress-policer-id; description "Policer identifier for the unknown broadcast traffic in this forwarding class"; } leaf fp-redirect-group-broadcast-policer { type empty; description "Broadcast policer to be used as defined in the FP (forwarding-plane)"; } } } choice unknown-queue-policer-mapping { case unknown-queue { leaf unknown-queue { type types-qos:ingress-queue-id; description "Broadcast queue to assign for packets in this forwarding class"; } } case unknown-queue-group-queue { container unknown-queue-group-queue { presence "Enter the 'unknown-queue-group-queue' context"; description "Enable the unknown-queue-group-queue context"; leaf queue-group-name { type types-sros:named-item; description "Queue group name associated with broadcast queue"; } leaf queue { type types-qos:ingress-queue-id; description "Broadcast queue to assign for packets in this forwarding class"; } } // container unknown-queue-group-queue } case unknown-policer { leaf unknown-policer { type types-qos:ingress-policer-id; description "Policer identifier for the unknown broadcast traffic in this forwarding class"; } leaf fp-redirect-group-unknown-policer { type empty; description "Broadcast policer to be used as defined in the FP (forwarding-plane)"; } } } container in-remark { description "Enter the in-remark context"; choice in-profile { case dscp { leaf dscp { type types-qos:dscp-name; description "Specifies the DSCP to be used while remarking the in profile packets when the in-profile remarking type is 'dscp'."; } } case prec { leaf prec { type types-qos:precedence-value; description "Specifies the precedence value to be used while remarking the in profile packets when the in-profile remarking type is 'precedence'."; } } } } // container in-remark container out-remark { description "Enter the out-remark context"; choice out-profile { case dscp { leaf dscp { type types-qos:dscp-name; description "Specifies the DSCP to be used while remarking the out profile packets when the out-profile remarking type is 'dscp'."; } } case prec { leaf prec { type types-qos:precedence-value; description "Specifies the precedence value to be used while remarking the out profile packets when the out-profile remarking type is 'precedence'."; } } } } // container out-remark } // list fc } // list sap-ingress list slope-policy { key "slope-policy-name"; max-elements 511; description "Enter the slope-policy list instance"; leaf slope-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Slope policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf time-average-factor { type uint32 { range "0..15"; } default "7"; description "Apply time average factor to weight between previous and new shared buffer utilization result"; } container highplus-slope { description "Enter the highplus-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the highplus priority RED slope"; } leaf start-avg { type uint32 { range "0..100"; } default "85"; description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-avg { type uint32 { range "0..100"; } default "100"; description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { type uint32 { range "0..100"; } default "80"; description "Drop probability increase at highplus start-average"; } } // container highplus-slope container high-slope { description "Enter the high-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the high priority RED slope"; } leaf start-avg { type uint32 { range "0..100"; } default "70"; description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-avg { type uint32 { range "0..100"; } default "90"; description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { type uint32 { range "0..100"; } default "80"; description "Drop probability to increase at high start-average"; } } // container high-slope container low-slope { description "Enter the low-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the low priority RED slope"; } leaf start-avg { type uint32 { range "0..100"; } default "50"; description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-avg { type uint32 { range "0..100"; } default "75"; description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { type uint32 { range "0..100"; } default "80"; description "Drop probability to increase at low start-average"; } } // container low-slope container exceed-slope { description "Enter the exceed-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the exceed priority RED slope"; } leaf start-avg { type uint32 { range "0..100"; } default "30"; description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-avg { type uint32 { range "0..100"; } default "55"; description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { type uint32 { range "0..100"; } default "80"; description "Drop probability to increase at exceed start-average"; } } // container exceed-slope } // list slope-policy list hsmda-slope-policy { status obsolete; key "hsmda-slope-policy-name"; max-elements 511; description "Enter the hsmda-slope-policy list instance"; leaf hsmda-slope-policy-name { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "HSMDA slope policy name"; } leaf description { status obsolete; type types-sros:description; description "Text description"; } container high-slope { status obsolete; description "Enter the high-slope context"; leaf admin-state { status obsolete; type types-sros:admin-state; default "enable"; description "Administrative state of the high priority RED slope"; } leaf start-depth { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-depth { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Drop probability when the HSMDA queue depth reaches maximum depth"; } } // container high-slope container low-slope { status obsolete; description "Enter the low-slope context"; leaf admin-state { status obsolete; type types-sros:admin-state; default "enable"; description "Administrative state of the low priority RED slope"; } leaf start-depth { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "90.00"; description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-depth { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "90.00"; description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Drop probability when the HSMDA queue depth reaches maximum depth"; } } // container low-slope } // list hsmda-slope-policy list hsmda-wrr-policy { status obsolete; key "hsmda-wrr-policy-name"; max-elements 31; description "Enter the hsmda-wrr-policy list instance"; leaf hsmda-wrr-policy-name { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "HSMDA WRR policy name"; } leaf description { status obsolete; type types-sros:description; description "Text description"; } leaf include-queues { status obsolete; type enumeration { enum "1-2" { value 1; } enum "1-3" { value 2; } } default "1-2"; description "Queues to include includes into the HSMDA WRR scheduling loop policy"; } leaf schedule-using-class { status obsolete; type int32 { range "1..3"; } default "1"; description "Class to schedule the queues specified within the HSMDA scheduler"; } leaf class-agg-weight { status obsolete; type int32 { range "1|2|4|8"; } default "1"; description "Weight assigned to the group of queues specified within the HSMDA scheduler"; } } // list hsmda-wrr-policy list hsmda-pool-policy { status obsolete; key "hsmda-pool-policy-name"; max-elements 31; description "Enter the hsmda-pool-policy list instance"; leaf hsmda-pool-policy-name { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "The name of the HSMDA Pool Policy."; } leaf description { status obsolete; type types-sros:description; description "Text description"; } leaf system-reserve { status obsolete; type decimal64 { range "1.00..30.00"; fraction-digits 2; } default "10.00"; description "Specifies the percentage of HSMDA buffers reserved for internal system use."; } container root-tier { status obsolete; description "Enter the root-tier context"; list root-pool { status obsolete; key "root-pool-id"; description "Enter the root-pool list instance"; leaf root-pool-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Root pool identifier for the HSMDA pool policy"; } leaf allocation-weight { status obsolete; type uint32 { range "0..100"; } default "0"; description "Specifies the weight that will be applied to the first root pool and is divided by the sum of all root pool weights to derive the pool's buffer allocation factor."; } } // list root-pool } // container root-tier container class-tier { status obsolete; description "Enter the class-tier context"; list class-pool { status obsolete; key "class-pool-id"; description "Enter the class-pool list instance"; leaf class-pool-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Class pool for the HSMDA pool policy"; } leaf root-parent { status obsolete; type uint32 { range "1..8"; } description "Specifies the parent root to which this class-pool is associated."; } leaf allocation-percent { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Specifies the percentage of the root-pool with which it is associated, as specified by root-parent will be available to this class-pool."; } } // list class-pool } // container class-tier } // list hsmda-pool-policy list hsmda-scheduler-policy { status obsolete; key "hsmda-scheduler-policy-name"; max-elements 63; description "Enter the hsmda-scheduler-policy list instance"; leaf hsmda-scheduler-policy-name { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "The name of the HSMDA scheduler policy."; } leaf description { status obsolete; type types-sros:description; description "Text description"; } leaf max-rate { status obsolete; type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } units "megabps"; default "max"; description "Specifies the maximum rate for this HSMDA scheduler policy."; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..327680"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } list group { status obsolete; key "group-id"; description "Enter the group list instance"; leaf group-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2"; } } description "Group ID for the HSMDA scheduler policy"; } leaf rate { status obsolete; type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } units "megabps"; default "max"; description "Specifies the group maximum rate."; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..327680"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } } // list group list scheduling-class { status obsolete; key "class-id"; description "Enter the scheduling-class list instance"; leaf class-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Class identifier for the HSMDA scheduler policy scheduling class"; } choice rate-or-group { status obsolete; default "rate"; case rate { status obsolete; leaf rate { status obsolete; type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } units "megabps"; default "max"; description "Specifies the scheduling class maximum rate."; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..327680"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } } case group { status obsolete; container group { status obsolete; presence "Enter the 'group' context"; description "Enable the group context"; leaf group-id { status obsolete; type uint32 { range "1..2"; } description "Specifies the group associated with this scheduling class."; } leaf weight { status obsolete; type int32 { range "1..100"; } default "1"; description "Specifies the weight in group associated with this scheduling class."; } } // container group } } } // list scheduling-class } // list hsmda-scheduler-policy list atm-td-profile { key "atm-td-profile-id"; description "Enter the atm-td-profile list instance"; leaf atm-td-profile-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:atm-traffic-descr-idx; } description "ATM traffic descriptor ID"; } leaf shaping { type boolean; description "Enable cell level shaping when the ATP traffic description profile is applied to an ATM SAP queue"; } leaf service-category { type types-qos:atm-service-category; default "ubr"; description "ATM service category"; } leaf description { type types-sros:description; description "Text description"; } leaf descriptor-type { type enumeration { enum "p01" { value 0; } enum "p01-and-s01" { value 1; } enum "p01-and-s0" { value 2; } enum "p01-and-s0-tag" { value 3; } } description "Select the type of ATM traffic descriptor"; } leaf policing { type boolean; default "false"; description "Allow ingress traffic policing"; } leaf clp-tagging { type boolean; default "false"; description "Control the setting of the CLP bit in the ATM cell header for egress traffic on IES or VPRN SAP"; } leaf weight { type int32 { range "1..255"; } description "Relative weight for the ATM traffic descriptor based on ATM VP shaper scheduling"; } container traffic { description "Enter the traffic context"; leaf sir { type uint32; units "kilobps"; default "0"; description "Sustained information rate"; } leaf pir { type uint32; units "kilobps"; description "Peak information rate"; } leaf mir { type uint32; units "kilobps"; default "0"; description "Minimum information rate"; } leaf mbs { type uint32; description "Maximum burst size in cell"; } leaf cdvt { type uint32; units "microseconds"; default "250"; description "Cell Delay Variation Tolerance"; } } // container traffic } // list atm-td-profile list network-queue { key "network-queue-policy"; max-elements 255; description "Enter the network-queue list instance"; leaf network-queue-policy { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for network queue policy"; } leaf description { type types-sros:description; description "Text description"; } leaf hs-attachment-policy { type types-sros:named-item; description "HS attachment policy applied"; } container egress-hsmda { status obsolete; description "Enter the egress-hsmda context"; leaf packet-byte-offset { status obsolete; type types-qos:egress-per-packet-offset; default "0"; description "Packet byte offset to use for the HSMDA egress queues"; } leaf wrr-policy { status obsolete; type types-sros:named-item; description "WRR policy to use on this HSMDA egress queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Egress HSMDA queue ID"; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..1000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf mbs { status obsolete; type union { type types-qos:bytes { range "0..2688000"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Percentage of buffer space allowed for the queue"; } leaf percent-rate { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "PIR percentage rate"; } leaf slope-policy { status obsolete; type types-sros:named-item; description "Slop policy name to override the default slope policy for the named buffer pool"; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight; default "1"; description "Weight value for the HSMDA queue"; } container adaptation-rule { status obsolete; description "Enter the adaptation-rule context"; leaf pir { status obsolete; type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list queue } // container egress-hsmda list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class name"; } leaf queue { type types-qos:network-queue-queue-id; default "1"; description "Queue for packets in this forwarding class"; } leaf multicast-queue { type types-qos:network-queue-queue-id; default "9"; description "Multicast queue for packets in this forwarding class"; } container egress-hsmda { status obsolete; description "Enter the egress-hsmda context"; leaf queue { status obsolete; type types-qos:egress-queue-id; description "Egress HSDMA queue for packets in this forwarding class"; } } // container egress-hsmda } // list fc list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:network-queue-queue-id; } description "Queue identifier"; } leaf multipoint { type boolean; sros-ext:immutable; default "false"; description "Apply as a multicast queue"; } leaf queue-type { type enumeration { enum "expedited" { value 1; } enum "auto-expedited" { value 2; } enum "best-effort" { value 3; } } sros-ext:immutable; default "auto-expedited"; description "Priority that this queue receives from the hardware level schedulers"; } leaf cbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "1.00"; description "Reserved buffer space for the queue"; } leaf mbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Percentage of buffer space allowed for the queue"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Average packet-to-frame encapsulation overhead"; } leaf hs-alt-port-class-pool { type boolean; default "false"; description "Use HS alternate class port pool buffer for traffic"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Scheduling class weight"; } leaf hs-mbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "100.00"; description "Percentage of buffer space allowed for the HS queue"; } container rate { description "Enter the rate context"; leaf pir { type int32 { range "1..100"; } units "percent"; default "100"; description "PIR percentage rate"; } leaf cir { type int32 { range "0..100"; } units "percent"; default "0"; description "CIR percentage rate"; } leaf fir { type int32 { range "0..100"; } units "percent"; default "0"; description "Specifies the FIR percentage rate."; } } // container rate container port-parent { presence "Enter the 'port-parent' context"; description "Enable the port-parent context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf weight { type types-qos:weight; default "1"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } } // container port-parent container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } leaf fir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational FIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type types-sros:named-item; description "Slope policy name"; } } // container hs-wred-queue } // list queue list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hs-wrr-group-id; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Weight of scheduling class"; } leaf rate { type uint32 { range "1..100"; } default "100"; description "PIR rate"; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list hs-wrr-group } // list network-queue list shared-queue { key "shared-queue-policy-name"; description "Enter the shared-queue list instance"; leaf shared-queue-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for the shared queue policy"; } leaf description { type types-sros:description-or-empty; description "Text description"; } list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..32"; } } description "Shared queue identifier"; } leaf multipoint { type boolean; default "false"; description "Apply as a multicast queue"; } leaf queue-type { type enumeration { enum "expedited" { value 1; } enum "auto-expedited" { value 2; } enum "best-effort" { value 3; } } default "auto-expedited"; description "Priority that this queue receives from the hardware level schedulers"; } leaf cbs { type int32 { range "0..100"; } units "percent"; default "0"; description "Committed burst size as a percentage of the maximum reserved buffer space for the queue"; } leaf mbs { type int32 { range "0..100"; } units "percent"; default "100"; description "Maximum burst size as a percentage of maximum reserved buffer space for the queue"; } container rate { description "Enter the rate context"; leaf pir { type int32 { range "1..100"; } units "percent"; default "100"; description "PIR percentage rate"; } leaf cir { type int32 { range "0..100"; } units "percent"; default "0"; description "CIR percentage rate"; } leaf fir { type int32 { range "0..100"; } units "percent"; default "0"; description "Specifies the FIR percentage rate."; } } // container rate container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail } // list queue list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class mapping to queue mappings"; } leaf queue { type int32 { range "1..8"; } default "1"; description "Logical queue that the traffic, classified into this forwarding class, should use"; } leaf broadcast-queue { type int32 { range "9..32"; } description "Logical queue that the broadcast traffic, classified into this forwarding class, should use"; } leaf multicast-queue { type int32 { range "9..32"; } description "Logical queue that the multicast traffic, classified into this forwarding class, should use"; } leaf unknown-queue { type int32 { range "9..32"; } description "Logical queue that the unknown traffic, classified into this forwarding class, should use"; } } // list fc } // list shared-queue list adv-config-policy { key "adv-config-policy-name"; max-elements 255; description "Enter the adv-config-policy list instance"; leaf adv-config-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Advanced QoS policy name"; } leaf description { type types-sros:description; description "Text description"; } container child-control { description "Enter the child-control context"; container bandwidth-distribution { description "Enter the bandwidth-distribution context"; leaf enqueue-on-pir-zero { type boolean; default "false"; description "Enqueue the packets when bandwidth-distribution granularity rate is set to zero"; } leaf internal-scheduler-weight-mode { type types-qos:internal-scheduler-weight-mode; description "Weight mode applied to this advanced QoS policy"; } leaf limit-pir-zero-drain { type boolean; default "false"; description "Throttle the queue draining based on bandwidth-distribution granularity rate"; } leaf lub-init-min-pir { type boolean; default "false"; description "Apply minimum rate operational PIR to queue for use by enqueued packets prior to an HQoS iteration"; } container above-offered-cap { description "Enter the above-offered-cap context"; choice rate-or-percent-rate { case rate { leaf rate { type union { type int64 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } description "Explicit number to assign as limit to the child's fair share increase"; } } case percent { leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Percentage of the child's administrative PIR used as the fair share increase limit"; } } } } // container above-offered-cap container above-offered-allowance { description "Enter the above-offered-allowance context"; container unconsumed-agg-rate { description "Enter the unconsumed-agg-rate context"; leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "100.00"; description "Percentage of the unconsumed aggregate rate"; } } // container unconsumed-agg-rate container delta-consumed-agg-rate { description "Enter the delta-consumed-agg-rate context"; leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "20.00"; description "Percentage of the delta consumed aggregate rate"; } } // container delta-consumed-agg-rate container unconsumed-higher-tier-rate { description "Enter the unconsumed-higher-tier-rate context"; leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "100.00"; description "Percentage of the unconsumed higher-tier rate"; } } // container unconsumed-higher-tier-rate container delta-consumed-higher-tier-rate { description "Enter the delta-consumed-higher-tier-rate context"; leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "5.00"; description "Percentage of the delta consumed higher-tier rate"; } } // container delta-consumed-higher-tier-rate } // container above-offered-allowance container granularity { description "Enter the granularity context"; choice rate-or-percent-rate { case rate { leaf rate { type int64 { range "0..100000000"; } description "Rounding rate step value"; } } case percent { leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Rounding percentage value for administrative PIR"; } } } } // container granularity } // container bandwidth-distribution container offered-measurement { description "Enter the offered-measurement context"; leaf fast-start { type boolean; default "false"; description "Allow fast detection of initial bandwidth on a child policer or queue associated with policy"; } leaf fast-stop { type boolean; default "false"; description "Allow fast detection of lack of offered rate on a child policer or queue associated with the policy"; } leaf sample-interval { type uint32 { range "1..8"; } default "1"; description "Interval for sampling the child's offered rate"; } container add { description "Enter the add context"; leaf min-only { type boolean; default "false"; description "Use specified increase value as a minimum offered rate even for inactive queues or policers"; } leaf active-min-only { type boolean; default "false"; description "Use increase in rate or percentage as minimum offered rate only for active queues or policers"; } choice rate-or-percent-rate { case rate { leaf rate { type int64 { range "0..100000000"; } description "Rate value to add to child's offered rate"; } } case percent { leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Percentage of child's administrative PIR to add to child's offered rate"; } } } } // container add container granularity { description "Enter the granularity context"; choice rate-or-percent-rate { case rate { leaf rate { type int64 { range "0..100000000"; } description "Value to use as child's offered rate change sensitivity value"; } } case percent { leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Percentage of child's administrative PIR used as threshold sensitivity to offered rate change"; } } } } // container granularity container hold-time { description "Enter the hold-time context"; leaf high-rate { type uint32 { range "0..60"; } default "0"; description "Time during which current offered rate is maintained for a child policer or queue"; } leaf active-min-only { type boolean; default "false"; description "Use specified increase value as minimum offered rate only for active queues or policers"; } } // container hold-time container max-decrement { description "Enter the max-decrement context"; choice rate-or-percent-rate { case rate { leaf rate { type int64 { range "0..100000000"; } description "Value to use as the decrement limit to offered rate change"; } } case percent { leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Value of the child's administrative PIR to use as the decrement limit to offered rate change"; } } } } // container max-decrement container time-average-factor { description "Enter the time-average-factor context"; leaf weighting-factor { type uint32 { range "0..64"; } default "0"; description "New offered rate with a sample of the previous offered rate"; } leaf dec-only { type boolean; default "false"; description "Apply time average factor adjustment when the offered rate decreases compared to previous"; } } // container time-average-factor } // container offered-measurement } // container child-control } // list adv-config-policy list mlppp-profile-ingress { key "mc-mlppp-ingress-prof-index"; max-elements 128; description "Enter the mlppp-profile-ingress list instance"; leaf mc-mlppp-ingress-prof-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "Index of the ingress MultiClass MLPPP profile"; } leaf description { type types-sros:description-or-empty; description "Text description"; } list class { key "class-id"; description "Enter the class list instance"; leaf class-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "0..3"; } } description "Policy class"; } leaf reassembly-timeout { type uint32 { range "1..1000"; } description "Reassembly timeout for this policy"; } } // list class } // list mlppp-profile-ingress list mlppp-profile-egress { key "mc-mlppp-egress-prof-index"; max-elements 128; description "Enter the mlppp-profile-egress list instance"; leaf mc-mlppp-egress-prof-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "Index of the egress MultiClass MLPPP profile"; } leaf description { type types-sros:description-or-empty; description "Text description"; } list class { key "class-id"; description "Enter the class list instance"; leaf class-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "0..3"; } } description "Policy class"; } leaf mir { type uint32 { range "1..100"; } description "Minimum information rate (MIR) as percentage"; } leaf max-queue-size { type uint32 { range "1..1000"; } description "Buffer queue size"; } leaf weight { type uint32 { range "1..100"; } description "Weight of this multiclass class as a percentage"; } } // list class list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class name"; } leaf mlppp-class { type uint32 { range "0..3"; } description "Mapping of the system forwarding class to the MLPPP classes"; } } // list fc } // list mlppp-profile-egress list mc-fr-profile-ingress { key "mc-fr-ingress-prof-index"; max-elements 128; description "Enter the mc-fr-profile-ingress list instance"; leaf mc-fr-ingress-prof-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "Index of the ingress MultiClass Frame Relay profile"; } leaf description { type types-sros:description; description "Text description"; } list class { key "class-id"; description "Enter the class list instance"; leaf class-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "0..3"; } } description "Frame-relay ingress class per multi-class frame-relay ingress profile"; } leaf reassembly-timeout { type uint32 { range "1..1000"; } description "Reassembly timeout for a specific frame-relay multi-class ingress class"; } } // list class } // list mc-fr-profile-ingress list mc-fr-profile-egress { key "mc-fr-egress-prof-index"; max-elements 128; description "Enter the mc-fr-profile-egress list instance"; leaf mc-fr-egress-prof-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "Egress MultiClass Frame Relay Profile Index"; } leaf description { type types-sros:description; description "Text description"; } list class { key "class-id"; description "Enter the class list instance"; leaf class-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "0..3"; } } description "Frame-relay egress class per multi-class frame-relay egress profile"; } leaf mir { type uint32 { range "1..100"; } description "Minimum information rate (MIR) as percentage"; } leaf max-queue-size { type uint32 { range "1..1000"; } description "Buffer queue size"; } leaf weight { type uint32 { range "1..100"; } description "Weight of this multiclass class as a percentage"; } } // list class } // list mc-fr-profile-egress list policer-control-policy { key "policer-control-policy-name"; max-elements 2047; description "Enter the policer-control-policy list instance"; leaf policer-control-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of Policer Control Policy"; } leaf description { type types-sros:description; description "Text description"; } container root { description "Enter the root context"; leaf profile-preferred { type boolean; default "false"; description "Provide a preference to consume PIR bucket tokens at a given priority level"; } choice max-rate-or-max-percent-rate { default "max-rate"; case max-rate { leaf max-rate { type types-qos:max-rate; default "max"; description "Maximum frame-based bandwidth limit of the arbiter"; } } case max-percent-rate { leaf max-percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Maximum rate of the arbiter"; } } } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Minimum amount of cumulative buffer space"; } leaf fixed-mbs { type boolean; default "false"; description "Consider cumulative buffer space to be fixed"; } } // list priority } // container priority-mbs-thresholds } // container root list tier { key "tier-id"; description "Enter the tier list instance"; leaf tier-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..2"; } } description "Tier for policer control policer arbiter"; } list arbiter { key "arbiter-name"; description "Enter the arbiter list instance"; leaf arbiter-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Arbiter name"; } leaf description { type types-sros:description; description "Text description"; } choice rate-or-percent-rate { default "rate"; case rate { leaf rate { type types-qos:max-rate; default "max"; description "Maximum frame-based bandwidth limit"; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Maximum rate of the arbiter"; } leaf reference-rate { type enumeration { enum "local-limit" { value 2; } enum "reference-port-limit" { value 3; } } default "local-limit"; description "Reference rate"; } } } container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Specifies the arbiter to which this policer is feeding to."; } leaf level { type types-qos:hierarchy-level; default "1"; description "Specifies the level of priority while feeding to the parent."; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this policer is feeding to."; } } // container arbiter-parent } // list arbiter } // list tier } // list policer-control-policy container queue-group-templates { description "Enter the queue-group-templates context"; container ingress { description "Enter the ingress context"; list queue-group { key "ingress-queue-group-name"; description "Enter the queue-group list instance"; leaf ingress-queue-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of Ingress Queue Group"; } leaf description { type types-sros:description; description "Text description"; } list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-queue-id; } description "Ingress Queue-Group Queue identifier"; } leaf multipoint { type boolean; sros-ext:immutable; default "false"; description "Create an ingress multipoint queue"; } leaf queue-type { type types-qos:queue-group-queue-type; sros-ext:immutable; default "best-effort"; description "Priority that this queue receives from the hardware level schedulers"; } leaf queue-mode { type types-qos:queue-mode; sros-ext:immutable; default "priority"; description "Specifies the mode in which the queue is operating. This attribute is associated with the queue at the time of creation and cannot be modified thereafter."; } leaf cbs { type union { type types-qos:bytes { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; default "auto"; description "Reserved buffer space for the queue"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Maximum buffer space that is allowed for queue"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf adv-config-policy { type types-sros:named-item; description "Name of the advanced configuration policy to apply with this queue"; } leaf packet-byte-offset { type types-qos:per-packet-offset; default "0"; description "Value of the adjustment on the size of each packet for queue accounting"; } leaf cir-non-profiling { type boolean; default "false"; description "Specifies that the CIR affect the scheduling priority of a queue but does not modify the profile of packets depending on the specified CIR."; } choice rate-or-percent-rate { default "rate"; case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR"; } leaf reference-rate { type enumeration { enum "port-limit" { value 2; } enum "local-limit" { value 3; } enum "reference-port-limit" { value 4; } } default "port-limit"; description "Reference rate"; } choice percent-rate-cir-fir-or-police { default "cir-fir"; case cir-fir { leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR"; } leaf fir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative FIR"; } } case police { leaf police { type empty; description "Drop out-of-profile traffic feeding into physical queue"; } } } } // container percent-rate } case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } choice cir-and-fir-or-policed { default "cir-and-fir"; case cir-and-fir { leaf cir { type types-qos:queue-cir-rate; units "kilobps"; default "0"; description "Administrative CIR"; } leaf fir { type types-qos:queue-cir-rate; units "kilobps"; default "0"; description "Administrative FIR"; } } case police { leaf police { type empty; description "Specifies that the out of profile traffic feeding into the physical queue instance should be dropped"; } } } } // container rate } } container scheduler-parent { description "Enter the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; description "Scheduler to which this queue feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight; default "1"; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Level of priority while feeding to the parent"; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container scheduler-parent container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Adaptation rule to apply when assigning the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } leaf fir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational FIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id { range "1..32"; } } description "Ingress Queue-Group Policer identifier"; } leaf description { type types-sros:description; description "Text description"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority 'violate' threshold of PIR leaky bucket of this policer"; } leaf high-prio-only { type types-qos:burst-percent; description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic"; } leaf packet-byte-offset { type types-qos:per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf profile-capped { type boolean; default "false"; description "Enforce a limit on the profile"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; default "minimal"; description "Mode of statistics collected by the policer"; } leaf adv-config-policy { type types-sros:named-item; description "Name of the advanced configuration policy to apply with this queue"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:policer-cir-rate; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // list policer } // list queue-group } // container ingress container egress { description "Enter the egress context"; list queue-group { key "egress-queue-group-name"; description "Enter the queue-group list instance"; leaf egress-queue-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of Egress Queue Group"; } leaf description { type types-sros:description-or-empty; description "Text description"; } leaf queues-hqos-manageable { type boolean; default "true"; description "Manage queues through the Hierarchical QoS process"; } leaf hs-attachment-policy { type types-sros:named-item; description "HS attachment policy applied"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf low-burst-max-class { status obsolete; type uint32 { range "1..8"; } default "8"; description "Specifies which class should use the low priority burst threshold. Use the low priority burst threshold for all classes starting from 1, up to and including that specified by this value. Use the high priority burst threshold for all classes greater than the this value, up to and including class 8."; } leaf packet-byte-offset { status obsolete; type types-qos:egress-per-packet-offset; default "0"; description "Packet byte offset to use for the HSMDA egress queues"; } leaf wrr-policy { status obsolete; type types-sros:named-item; description "WRR policy to use on this HSMDA egress queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Egress HSMDA queue ID"; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..1000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate; default "max"; description "PIR rate"; } leaf slope-policy { status obsolete; type types-sros:named-item; description "Name of the slope policy which overrides the default policy for the named buffer pool"; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight; default "1"; description "Weight value for the HSMDA queue"; } container adaptation-rule { status obsolete; description "Enter the adaptation-rule context"; leaf pir { status obsolete; type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list queue } // container hsmda-queues list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class name"; } container queue { description "Enter the queue context"; choice queue-or-none { default "none"; case queue-id { leaf queue-id { type types-qos:egress-queue-id; description "Queue defined in forwarding class mapping"; } } case none { leaf none { type empty; description "No mid-pool is associated with this parent-pool"; } } } } // container queue } // list fc list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Egress Queue-Group queue identifier"; } leaf queue-type { type enumeration { enum "expedited" { value 1; } enum "best-effort" { value 3; } } default "best-effort"; description "Priority that this queue receives from the hardware level schedulers"; } leaf adv-config-policy { type types-sros:named-item; description "Name of the advanced configuration policy"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf cbs { type union { type int32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; default "auto"; description "Reserved buffer space for the queue"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Buffer space allowed for the queue"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset; default "0"; description "Packet byte offset for addition of policing information"; } leaf dynamic-mbs { type boolean; default "false"; description "Allow modifying of the MBS size for a queue to maintain maximum latency for traffic"; } leaf queue-delay { type uint32 { range "1..5000"; } units "milliseconds"; description "Target queue delay for forwarding packets through this queue"; } leaf hs-alt-port-class-pool { type boolean; default "false"; description "Use HS alternate class port pool buffer for traffic"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Scheduling class weight"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:queue-cir-rate; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR percent"; } leaf reference-rate { type enumeration { enum "port-limit" { value 2; } enum "local-limit" { value 3; } enum "reference-port-limit" { value 4; } } default "port-limit"; description "Reference rate"; } } // container percent-rate } } choice parent-mapping { case scheduler-parent { container scheduler-parent { presence "Enter the 'scheduler-parent' context"; description "Enable the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; description "Scheduler to which this queue feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight; default "1"; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Level of priority while feeding to the parent"; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container scheduler-parent } case port-parent { container port-parent { presence "Enter the 'port-parent' context"; description "Enable the port-parent context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf weight { type types-qos:weight; default "1"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } } // container port-parent } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container wred-queue { description "Enter the wred-queue context"; leaf policy { type types-sros:named-item; description "Slope policy name"; } leaf mode { type types-qos:wred-queue-mode; description "Generic pool association of the queue to allow queue-specific WRED slopes"; } leaf usage { type types-qos:wred-queue-slope-usage; description "Specifies which slopes are active for given slope-mode"; } } // container wred-queue container drop-tail { description "Enter the drop-tail context"; container highplus { description "Enter the highplus context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail being that is reduced from MBS for high plus profile packets"; } } // container highplus container high { description "Enter the high context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail being that is reduced from MBS for high profile packets"; } } // container high container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low container exceed { description "Enter the exceed context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail that is reduced from MBS for exceed profile packets"; } } // container exceed } // container drop-tail container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type types-sros:named-item; description "Slope policy name"; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-policer-id; } description "Egress Queue-Group Policer identifier"; } leaf description { type types-sros:description; description "Text description"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority 'violate' threshold of PIR leaky bucket of this policer"; } leaf high-prio-only { type types-qos:burst-percent; description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf profile-capped { type boolean; default "false"; description "Enforce a limit on the profile"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; default "minimal"; description "Mode of statistics collected by the policer"; } leaf adv-config-policy { type types-sros:named-item; description "Name of the advanced configuration policy to apply with this queue"; } leaf exceed-pir { type boolean; default "false"; description "Allow forwarding of packets with an exceed-profile state and traffic exceeding the PIR"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:policer-cir-rate; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR"; } leaf reference-rate { type enumeration { enum "local-limit" { value 2; } enum "reference-port-limit" { value 3; } } default "local-limit"; description "Reference rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hs-wrr-group-id; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Weight of scheduling class"; } choice rate-or-percent-rate { default "rate"; case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Administrative PIR"; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list hs-wrr-group } // list queue-group } // container egress } // container queue-group-templates list network { key "network-policy-name"; max-elements 255; description "Enter the network list instance"; leaf network-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:network-policy-name; } description "Name of this network QoS policy"; } leaf policy-id { type types-qos:qos-policy-id; sros-ext:immutable; description "Network QoS policy identifier."; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy"; } container ingress { description "Enter the ingress context"; leaf ler-use-dscp { type boolean; default "false"; description "Honor the DSCP markings instead of the LSP-EXP bits"; } container default-action { description "Enter the default-action context"; leaf fc { type types-sros:fc-name; default "be"; description "Default forwarding class to use while classifying the ingress traffic"; } leaf profile { type types-qos:profile; default "out"; description "Default profile for the ingressing traffic"; } } // container default-action list dot1p { key "dot1p-value"; description "Enter the dot1p list instance"; leaf dot1p-value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:dot1p-priority; } description "Dot1p value to match in the packet"; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:profile-de; description "Default profile to be used for the ingressing traffic"; } } // list dot1p list dscp { key "dscp-name"; description "Enter the dscp list instance"; leaf dscp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:dscp-name; } description "Specifies the Differentiated Services Code Point (DSCP) name for which mapping is done."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:profile; description "Default profile to use for the ingressing traffic"; } } // list dscp list lsp-exp { key "lsp-exp-value"; description "Enter the lsp-exp list instance"; leaf lsp-exp-value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:lsp-exp-value; } description "Value to assign the unique MPLS LSP EXP value that will match the lsp-exp rule"; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:profile; description "Default profile to use for the ingressing traffic"; } } // list lsp-exp list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class name"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf multicast-policer { type types-qos:network-ingress-policer-id; description "Policer to be used for multicast traffic"; } leaf policer { type types-qos:network-ingress-policer-id; description "Policer to be used for unicast traffic"; } leaf broadcast-policer { type types-qos:network-ingress-policer-id; description "Policer to be used for broadcast traffic"; } leaf unknown-policer { type types-qos:network-ingress-policer-id; description "Policer to be used for unknown traffic"; } } // container fp-redirect-group } // list fc container ip-criteria { description "Enter the ip-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:entry-id; } description "Network Ingress IP Criteria Entry Index"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet."; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Matches when the packet is a fragment (true) or when the packet is not a fragment (false) or matches all packets fragmented or not (off)"; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Destination IPv4 address for network QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type types-sros:named-item; description "Specifies ip-prefix-list used as match criterion."; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Source IPv4 address for network QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type types-sros:named-item; description "Specifies ip-prefix-list used as match criterion."; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Specifies the less than value as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Specifies the equal than value as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Specifies the greater than value as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Specifies the less than value as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Specifies the equal than value as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Specifies the greater than value as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:profile; description "Default profile for the matching traffic"; } } // container action } // list entry } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:entry-id; } description "Network Ingress IPv6 Criteria Entry Index"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } enum "first-only" { value 4; } enum "non-first-only" { value 5; } } description "Matches when the packet is a fragment (true) or when the packet is not a fragment (false) or matches all packets fragmented or not (off)"; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Destination IPv6 address for network QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "Specifies the ip-prefix-list used as match criterion for the ip address."; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Source IPv6 address for network QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "Specifies the ip-prefix-list used as match criterion for the ip address."; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Specifies the less than value as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Specifies the equal than value as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Specifies the greater than value as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Specifies the less than value as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Specifies the equal than value as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Specifies the greater than value as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:profile; description "Default profile for the matching traffic"; } } // container action } // list entry } // container ipv6-criteria } // container ingress container egress { description "Enter the egress context"; container remark-trusted { presence "Enter the 'remark-trusted' context"; description "Enable the remark-trusted context"; leaf force-egress-marking { type boolean; default "false"; description "Remark DSCP bits in the internal IP header"; } } // container remark-trusted list dscp { key "dscp-name"; description "Enter the dscp list instance"; leaf dscp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:dscp-name; } description "Specifies the Differentiated Services Code Point (DSCP) name for which mapping is done."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Default profile to use for the ingressing traffic"; } } // list dscp list prec { key "prec-value"; description "Enter the prec list instance"; leaf prec-value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:precedence-value; } description "Precedence value for which mapping is performed"; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Default profile to use for the ingressing traffic"; } } // list prec list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class name"; } leaf dot1p-in-profile { type types-qos:dot1p-priority; description "Dot1p marking for in-profile marking"; } leaf dot1p-out-profile { type types-qos:dot1p-priority; description "Dot1p marking for out-of-profile marking"; } leaf dscp-in-profile { type types-qos:dscp-name; description "DSCP marking for in-profile marking"; } leaf dscp-out-profile { type types-qos:dscp-name; description "DSCP marking for out-of-profile marking"; } leaf lsp-exp-in-profile { type types-qos:lsp-exp-value; description "LSP-EXP marking for in-profile marking"; } leaf lsp-exp-out-profile { type types-qos:lsp-exp-value; description "LSP-EXP marking for out-of-profile marking"; } container de-mark { presence "Enter the 'de-mark' context"; description "Enable the de-mark context"; leaf force { type types-qos:de-value; description "DE value"; } } // container de-mark container port-redirect-group { description "Enter the port-redirect-group context"; leaf queue { type types-qos:egress-queue-id; description "Queue to be used"; } leaf policer { type types-qos:egress-policer-id; description "Policer to be used"; } } // container port-redirect-group } // list fc container ip-criteria { description "Enter the ip-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:entry-id; } description "Network Egress IP Criteria Entry Index."; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Matches when the packet is a fragment (true) or when the packet is not a fragment (false) or matches all packets fragmented or not (off)."; } leaf icmp-type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match."; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Destination IPv4 address for network QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet."; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Source IPv4 address for network QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet."; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container dst-port } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Specifies the default profile to be used for the matching traffic."; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf queue { type types-qos:egress-queue-id; description "Specifies the queue to use once the matched traffic has been policed."; } leaf policer { type types-qos:network-egress-policer-id; description "Specifies the policer identifier to be used for the matched traffic."; } } // container port-redirect-group } // container action } // list entry } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:entry-id; } description "Network Egress IPv6 Criteria Entry Index."; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } enum "first-only" { value 4; } enum "non-first-only" { value 5; } } description "Matches when the packet is a fragment (true) or when the packet is not a fragment (false) or matches all packets fragmented or not (off)."; } leaf icmp-type { type types-filter:ipv6-match-icmp-types; description "ICMP type to match."; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Destination IPv6 address for network QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet."; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Source IPv6 address for network QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet."; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Name of the port list as the match criterion"; } } } } // container dst-port } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Specifies the default profile to be used for the matching traffic."; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf queue { type types-qos:egress-queue-id; description "Specifies the queue to use once the matched traffic has been policed."; } leaf policer { type types-qos:network-egress-policer-id; description "Specifies the policer identifier to be used for the matched traffic."; } } // container port-redirect-group } // container action } // list entry } // container ipv6-criteria } // container egress } // list network list port-qos-policy { key "port-qos-policy-name"; max-elements 511; description "Enter the port-qos-policy list instance"; leaf port-qos-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:qos-policy-name; } description "The name of this Port QoS policy."; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Specifies the forwarding class."; } leaf queue { type types-qos:egress-queue-id; description "Specifies the queue to forward the traffic."; } } // list fc list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "The port qos policy queue identifier."; } leaf queue-mgmt { type types-qos:qos-policy-name; description "Queue Management determines the queue management policy attached to this queue."; } leaf wrr-weights { type uint32 { range "1..8"; } description "The unicast-multicast Weighted Round Robin(WRR) profile associated with this queue"; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "The adaptation rule to be used while computing the operational PIR value. The adaptation rule specifies the rules to compute the operational values while maintaining minimum offset."; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "The adaptation rule to be used while computing the operational CIR value. The adaptation rule specifies the rules to compute the operational values while maintaining minimum offset."; } } // container adaptation-rule container scheduler-mode { description "Enter the scheduler-mode context"; choice wfq-or-strict-priority { default "wfq"; case wfq { container wfq { description "Enter the wfq context"; leaf pir-weight { type uint32 { range "1..255"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this queue would be feeding to."; } container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Specifies the administrative PIR percent."; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } } // container percent-rate } // container wfq } } } // container scheduler-mode } // list queue list wrr-weights { key "wrr-weights-id"; max-elements 1; description "Enter the wrr-weights list instance"; leaf wrr-weights-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "The port qos policy wrr weights identifier."; } leaf mc-weight { type types-qos:port-qos-policy-wrr-weight; default "1"; description "The weight to be used by the multicast queue that feeds into this WRR scheduler."; } leaf uc-weight { type types-qos:port-qos-policy-wrr-weight; default "1"; description "The weight to be used by the unicast queue that feeds into this WRR scheduler."; } } // list wrr-weights container packet-byte-offset { description "Enter the packet-byte-offset context"; choice add-or-subtract { case add { leaf add { type types-qos:pkt-byte-offset; description "Offset bytes to add."; } } case subtract { leaf subtract { type types-qos:pkt-byte-offset; description "Offset bytes to subtract."; } } } } // container packet-byte-offset } // list port-qos-policy list vlan-qos-policy { key "vlan-qos-policy-name"; max-elements 511; description "Enter the vlan-qos-policy list instance"; leaf vlan-qos-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:qos-policy-name; } description "The name of this Vlan QoS policy."; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } leaf stat-mode { type enumeration { enum "no-stats" { value 1; } enum "enqueued-with-discards" { value 2; } enum "enqueued-4-profile-with-discards" { value 3; } } default "no-stats"; description "Statistics mode of this policy."; } list cir-weight-profile { key "cir-weight-profile-id"; description "Enter the cir-weight-profile list instance"; leaf cir-weight-profile-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2"; } } description "The vlan qos policy cir weight profile identifier."; } leaf weight { type uint32 { range "1..1024"; } default "1"; description "The weight that needs to be used until the committed rate by the vlan policy to which this queue would be feeding to."; } } // list cir-weight-profile list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Specifies the forwarding class."; } leaf queue { type types-qos:egress-queue-id; description "Specifies the queue to forward the traffic."; } } // list fc list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "The vlan qos policy queue identifier."; } leaf queue-mgmt { type types-qos:qos-policy-name; description "Queue Management determines the queue management policy attached to this queue."; } leaf queue-forwarding-type { type enumeration { enum "best-effort" { value 0; } enum "expedite-hi" { value 1; } enum "expedite-lo" { value 2; } } default "best-effort"; description "Specifies Queue Forwarding Type of this queue."; } leaf cir-weight-profile { type uint32 { range "1..2"; } default "1"; description "Specifies the weight profile identifier of vlan-qos policy that needs to be used by the arbiter to which this queue would be feeding to."; } leaf pir-weight { type uint32 { range "1..253"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this queue would be feeding to."; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "The adaptation rule to be used while computing the operational PIR value. The adaptation rule specifies the rules to compute the operational values while maintaining minimum offset."; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "The adaptation rule to be used while computing the operational CIR value. The adaptation rule specifies the rules to compute the operational values while maintaining minimum offset."; } } // container adaptation-rule container queue-type { status obsolete; description "Enter the queue-type context"; choice best-effort-hi-low { status obsolete; default "best-effort"; case best-effort { status obsolete; container best-effort { status obsolete; description "Enter the best-effort context"; leaf cir-weight-profile { status obsolete; type uint32 { range "1..2"; } default "1"; description "Specifies the weight profile identifier of vlan-qos policy that needs to be used by the arbiter to which this queue would be feeding to."; } leaf pir-weight { status obsolete; type uint32 { range "1..253"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this queue would be feeding to."; } container percent-rate { status obsolete; description "Enter the percent-rate context"; leaf pir { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Specifies the administrative PIR percent."; } leaf cir { status obsolete; type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } } // container percent-rate } // container best-effort } case expedite-hi { status obsolete; container expedite-hi { status obsolete; description "Enter the expedite-hi context"; leaf pir-weight { status obsolete; type uint32 { range "1..253"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this queue would be feeding to."; } container percent-rate { status obsolete; description "Enter the percent-rate context"; leaf pir { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Specifies the administrative PIR percent."; } leaf cir { status obsolete; type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } } // container percent-rate } // container expedite-hi } case expedite-lo { status obsolete; container expedite-lo { status obsolete; description "Enter the expedite-lo context"; leaf pir-weight { status obsolete; type uint32 { range "1..253"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this queue would be feeding to."; } container percent-rate { status obsolete; description "Enter the percent-rate context"; leaf pir { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Specifies the administrative PIR percent."; } leaf cir { status obsolete; type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } } // container percent-rate } // container expedite-lo } } } // container queue-type container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Specifies the administrative PIR percent."; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } } // container percent-rate } // list queue container packet-byte-offset { description "Enter the packet-byte-offset context"; choice add-or-subtract { case add { leaf add { type types-qos:pkt-byte-offset; description "Offset bytes to add."; } } case subtract { leaf subtract { type types-qos:pkt-byte-offset; description "Offset bytes to subtract."; } } } } // container packet-byte-offset } // list vlan-qos-policy list queue-mgmt-policy { key "queue-mgmt-policy-name"; max-elements 40; description "Enter the queue-mgmt-policy list instance"; leaf queue-mgmt-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:qos-policy-name; } description "The name of this Queue Management policy."; } leaf description { type types-sros:description; description "Text description"; } leaf mbs { type union { type types-qos:kilobytes { range "1..1500000"; } type enumeration { enum "auto" { value 6250; } } } units "kilobytes"; default "6250"; description "The amount of buffer space allowed for the queue."; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } leaf time-average-factor { type uint32 { range "0..31"; } default "7"; description "Time average factor of the policy."; } leaf port-speed { type uint32 { range "10|25|40|50|100|200|400"; } units "gigabps"; default "100"; description "The value of port-speed for which the queue-mgmt policy is optimized."; } container exceed-slope { description "Enter the exceed-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the admin state for the exceed RED slope."; } leaf start-avg { type uint32 { range "0..100"; } default "30"; description "The percentage of the buffer utilized after which the drop probability starts to rise above 0."; } leaf max-avg { type uint32 { range "0..100"; } default "55"; description "The percentage of the buffer utilized after which the drop probability is 100 percent. This implies that all packets beyond this point will be dropped."; } leaf max-prob { type uint32 { range "1..99"; } default "75"; description "The drop probability increases steadily from 0 at high start-average up to high max-probability at high max-average."; } } // container exceed-slope container high-slope { description "Enter the high-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the admin state for the high priority RED slope."; } leaf start-avg { type uint32 { range "0..100"; } default "70"; description "The percentage of the buffer utilized after which the drop probability starts to rise above 0."; } leaf max-avg { type uint32 { range "0..100"; } default "90"; description "The percentage of the buffer utilized after which the drop probability is 100 percent. This implies that all packets beyond this point will be dropped."; } leaf max-prob { type uint32 { range "1..99"; } default "75"; description "The drop probability increases steadily from 0 at high start-average up to high max-probability at high max-average."; } } // container high-slope container highplus-slope { description "Enter the highplus-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the admin state for the highplus priority RED slope."; } leaf start-avg { type uint32 { range "0..100"; } default "85"; description "The percentage of the buffer utilized after which the drop probability starts to rise above 0."; } leaf max-avg { type uint32 { range "0..100"; } default "100"; description "The percentage of the buffer utilized after which the drop probability is 100 percent. This implies that all packets beyond this point will be dropped."; } leaf max-prob { type uint32 { range "1..99"; } default "75"; description "The drop probability increases steadily from 0 at high start-average up to high max-probability at high max-average."; } } // container highplus-slope container low-slope { description "Enter the low-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the admin state for the low priority RED slope."; } leaf start-avg { type uint32 { range "0..100"; } default "50"; description "The percentage of the buffer utilized after which the drop probability starts to rise above 0."; } leaf max-avg { type uint32 { range "0..100"; } default "75"; description "The percentage of the buffer utilized after which the drop probability is 100 percent. This implies that all packets beyond this point will be dropped."; } leaf max-prob { type uint32 { range "1..99"; } default "75"; description "The drop probability increases steadily from 0 at low start-average up to low max-probability at low max-average."; } } // container low-slope } // list queue-mgmt-policy list ingress-classification-policy { key "ingress-classification-policy-name"; max-elements 511; description "Enter the ingress-classification-policy list instance"; leaf ingress-classification-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:qos-policy-name; } description "The name of this ingress classification QoS policy."; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } leaf remark { type types-qos:ing-class-remark-value; sros-ext:immutable; default "any"; description "Specifies the remarking to be used."; } container default-action { description "Enter the default-action context"; leaf fc { type types-sros:fc-name; default "be"; description "Specifies the default forwarding class to be used while classifying the ingress traffic."; } leaf profile { type types-qos:profile; default "out"; description "Specifies the default profile to be used for the ingressing traffic."; } } // container default-action list dot1p { key "dot1p-value"; description "Enter the dot1p list instance"; leaf dot1p-value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:dot1p-priority; } description "The dot1p value to match in the packet."; } leaf fc { type types-sros:fc-name; description "Specifies the forwarding class."; } leaf profile { type types-qos:profile-de; description "Specifies the default profile to be used for the ingressing traffic."; } } // list dot1p list dscp { key "dscp-name"; description "Enter the dscp list instance"; leaf dscp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:dscp-name; } description "Specifies the Differentiated Services Code Point (DSCP) name for which mapping is done."; } leaf fc { type types-sros:fc-name; description "Specifies the forwarding class."; } leaf profile { type types-qos:profile; description "Specifies the default profile to be used for the ingressing traffic."; } } // list dscp list lsp-exp { key "lsp-exp-value"; description "Enter the lsp-exp list instance"; leaf lsp-exp-value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:lsp-exp-value; } description "The lsp-exp bit value for which mapping is done."; } leaf fc { type types-sros:fc-name; description "Specifies the forwarding class."; } leaf profile { type types-qos:profile; description "Specifies the default profile to be used for the ingressing traffic."; } } // list lsp-exp } // list ingress-classification-policy list network-ingress { key "network-ingress-policy-name"; max-elements 255; description "Enter the network-ingress list instance"; leaf network-ingress-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:qos-policy-name; } description "The name of this network-ingress QoS policy."; } leaf policer-allocation { type types-qos:network-ingress-policer-mode; sros-ext:immutable; default "none"; description "Specifies the fc-policer mapping for the network-ingress policy."; } leaf description { type types-sros:description; description "Text description"; } leaf ingress-classification-policy { type types-qos:qos-policy-name; description "Attach ingress classification policy."; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:sap-ingress-fc-name; } description "Forwarding class for which this mapping is performed"; } leaf multicast-policer { type types-qos:ingress-policer-id { range "1..16"; } description "Specifies the policer identifier to be used for the multicast traffic in this forwarding class."; } leaf policer { type types-qos:ingress-policer-id { range "1..16"; } description "Specifies the policer identifier to be used for the normal traffic in this forwarding class."; } } // list fc list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id { range "1..16"; } } description "SAP-ingress policer identifier"; } leaf cbs { type union { type types-qos:bytes { range "128..4161536"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Specifies the 'exceed' threshold of the CIR leaky bucket of this policer."; } leaf mbs { type union { type types-qos:bytes { range "128..4161536"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Specifies the maximum burst size to be used in conjunction with the PIR."; } leaf stat-mode { type enumeration { enum "no-stats" { value 0; } enum "offered-profile-with-discards" { value 10; } } description "Specifies the mode of statistics collected."; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container rate { description "Enter the rate context"; leaf pir { type union { type uint32 { range "144..1000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specifies the administrative PIR."; } leaf cir { type union { type uint32 { range "0..1000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container rate } // list policer } // list network-ingress list sap-egress { key "sap-egress-policy-name"; description "Enter the sap-egress list instance"; leaf sap-egress-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:qos-policy-name; } description "Name of this sap-egress QoS policy"; } leaf policy-id { type types-qos:qos-policy-id; sros-ext:immutable; description "The sap-egress QoS policy identifier."; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf ethernet-ctag { type boolean; default "false"; description "Tag value for dot1p and DE (Drop-Eligible) that are used by all dot1-p entries"; } leaf parent-location { type enumeration { enum "auto" { value 1; } enum "sla" { value 2; } } default "auto"; description "Location in which queues can find their parent scheduler in case the parent scheduler if not found"; } leaf policers-hqos-manageable { type boolean; default "false"; description "Manage policers through the Hierarchical QoS process"; } leaf post-policer-mapping { type types-sros:named-item; description "Post policer mapping policy applied to this policy"; } leaf hs-attachment-policy { type types-sros:named-item; description "HS attachment policy applied"; } container subscriber-mgmt { description "Enter the subscriber-mgmt context"; container pcc-rule-entry { description "Enter the pcc-rule-entry context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-qos:entry-id; description "Specifies the starting entry at which the pcc-rule ip-criteria entries that are received from Diameter and that are shared across several hosts."; } leaf end { type types-qos:entry-id; description "Specifies the ending entry at which the pcc-rule ip-criteria entries that are received from Diameter and that are shared across several hosts."; } } // container range } // container pcc-rule-entry container dynamic-policer { description "Enter the dynamic-policer context"; leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority 'violate' threshold of PIR leaky bucket of this policer"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type enumeration { enum "no-stats" { value 0; } enum "minimal" { value 1; } enum "offered-profile-no-cir" { value 2; } enum "offered-total-cir" { value 3; } enum "offered-profile-cir" { value 4; } enum "offered-limited-capped-cir" { value 5; } enum "offered-profile-capped-cir" { value 6; } } default "minimal"; description "Mode of statistics collected by the policer"; } container policer-id-range { presence "Enter the 'policer-id-range' context"; description "Enable the policer-id-range context"; leaf start { type types-qos:ingress-policer-id; description "Specifies the starting place at which dynamic policers required for the pcc-rule ip-criteria entries that are received from Diameter and that are shared across several hosts will be inserted."; } leaf end { type types-qos:ingress-policer-id; description "Specifies the ending place at which dynamic policers required for the pcc-rule ip-criteria entries that are received from Diameter and that are shared across several hosts will be inserted."; } } // container policer-id-range container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // container dynamic-policer } // container subscriber-mgmt container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf low-burst-max-class { status obsolete; type uint32 { range "1..8"; } default "8"; description "Class that uses low priority burst threshold"; } leaf packet-byte-offset { status obsolete; type types-qos:egress-per-packet-offset; default "0"; description "Packet byte offset to use for the HSMDA egress queues"; } leaf wrr-policy { status obsolete; type types-sros:named-item; description "Weighted Round Robin (WRR) policy"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Egress HSMDA queue ID"; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..1000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate; default "max"; description "PIR rate"; } leaf slope-policy { status obsolete; type types-sros:named-item; description "Name of the slope policy which overrides the default policy for the named buffer pool"; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight; default "1"; description "Weight value for the HSMDA queue"; } container adaptation-rule { status obsolete; description "Enter the adaptation-rule context"; leaf pir { status obsolete; type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list queue } // container hsmda-queues list dot1p { key "dot1p-value"; description "Enter the dot1p list instance"; leaf dot1p-value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:dot1p-priority; } description "Dot1p value to match in the packet"; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile-de; description "Default profile for the ingressing traffic"; } } // list dot1p list dscp { key "dscp-name"; description "Enter the dscp list instance"; leaf dscp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:dscp-name; } description "Specifies the Differentiated Services Code Point (DSCP) name for which mapping is done."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Default profile for the ingressing traffic"; } leaf hsmda-counter-override { status obsolete; type types-qos:egress-hsmda-counter-id; description "Specifies the counter to use for all the traffic that matches the specific precedence. A value of zero implies that the default counters should be used."; } } // list dscp list prec { key "prec-value"; description "Enter the prec list instance"; leaf prec-value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:precedence-value; } description "Precedence value for which mapping is performed"; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Default profile for the ingressing traffic"; } leaf hsmda-counter-override { status obsolete; type types-qos:egress-hsmda-counter-id; description "Specifies the counter to use for all the traffic that matches the specific precedence. A value of zero implies that the default counters should be used."; } } // list prec list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Egress Queue-Group queue identifier"; } leaf queue-type { type enumeration { enum "expedited" { value 1; } enum "auto-expedited" { value 2; } enum "best-effort" { value 3; } } sros-ext:immutable; default "auto-expedited"; description "Priority that this queue receives from the hardware level schedulers"; } leaf adv-config-policy { type types-sros:named-item; description "Name of the advanced configuration policy"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf cbs { type union { type types-qos:bytes { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; default "auto"; description "Reserved buffer space for the queue"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Buffer space allowed for the queue"; } leaf packet-byte-offset { type int32 { range "-64..32"; } default "0"; description "Packet byte offset for addition of policing information"; } leaf hs-alt-port-class-pool { type boolean; default "false"; description "Use HS alternate class port pool buffer for traffic"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Scheduling class weight"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:queue-cir-rate-maximum; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR percent"; } leaf reference-rate { type enumeration { enum "port-limit" { value 2; } enum "local-limit" { value 3; } enum "reference-port-limit" { value 4; } } default "port-limit"; description "Reference rate"; } } // container percent-rate } } choice parent-mapping { case scheduler-parent { container scheduler-parent { presence "Enter the 'scheduler-parent' context"; description "Enable the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; description "Scheduler to which this queue feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight; default "1"; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Level of priority while feeding to the parent"; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container scheduler-parent } case port-parent { container port-parent { presence "Enter the 'port-parent' context"; description "Enable the port-parent context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf weight { type types-qos:weight; default "1"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } } // container port-parent } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container wred-queue { description "Enter the wred-queue context"; leaf policy { type types-sros:named-item; description "Slope policy name"; } leaf mode { type enumeration { enum "native" { value 1; } enum "pool-per-queue" { value 2; } } description "Generic pool association of the queue to allow queue-specific WRED slopes"; } leaf usage { type types-qos:wred-queue-slope-usage; description "Specifies which slopes are active for given slope-mode"; } } // container wred-queue container drop-tail { description "Enter the drop-tail context"; container highplus { description "Enter the highplus context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail being that is reduced from MBS for high plus profile packets"; } } // container highplus container high { description "Enter the high context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail being that is reduced from MBS for high profile packets"; } } // container high container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low container exceed { description "Enter the exceed context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail that is reduced from MBS for exceed profile packets"; } } // container exceed } // container drop-tail container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type types-sros:named-item; description "Slope policy name"; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:sap-egress-policer-id; } description "Sap-Egress Policer identifier."; } leaf description { type types-sros:description; description "Text description"; } leaf adv-config-policy { type types-sros:named-item; description "Name of the advanced configuration policy to apply with this queue"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf dscp-prec-remarking { type boolean; default "false"; description "Remark DSCP and precedence based on the profile state of a forwarding packet"; } leaf exceed-pir { type boolean; default "false"; description "Allow forwarding of packets with an exceed-profile state and traffic exceeding the PIR"; } leaf high-prio-only { type types-qos:burst-percent; description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority 'violate' threshold of PIR leaky bucket of this policer"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf profile-capped { type boolean; default "false"; description "Enforce an overall in-profile burst limit to the CIR bucket at egress policer"; } leaf profile-out-preserve { type boolean; default "false"; description "Preserve the color of offered out-of-profile traffic at SAP-egress policer"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; default "minimal"; description "Mode of statistics collected by the policer"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:policer-cir-rate-maximum; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR percent"; } leaf reference-rate { type enumeration { enum "local-limit" { value 2; } enum "reference-port-limit" { value 3; } } default "local-limit"; description "Reference rate"; } } // container percent-rate } } choice parent-mapping { case scheduler-parent { container scheduler-parent { presence "Enter the 'scheduler-parent' context"; description "Enable the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; description "Specifies the scheduler to which this queue would be feeding to."; } leaf level { type types-qos:hierarchy-level; default "1"; description "Specifies the level of priority while feeding to the parent."; } leaf weight { type types-qos:weight; default "1"; description "Specifies the weight that needs to be used by the scheduler to which this queue would be feeding to."; } leaf cir-level { type types-qos:cir-level; default "0"; description "Specifies the level of priority while feeding to the parent. The level '0' means treat all offered load for this queue as for the above CIR traffic."; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "The weight that needs to be used until the committed rate by the scheduler to which this queue would be feeding to."; } } // container scheduler-parent } case port-parent { container port-parent { presence "Enter the 'port-parent' context"; description "Enable the port-parent context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Specifies the port priority this queue will use to receive bandwidth from the port-level scheduler for its above-cir offered load."; } leaf weight { type types-qos:weight; default "1"; description "Specifies the weight this queue will use to receive bandwidth from the port-level scheduler for its above-cir offered load."; } leaf cir-level { type types-qos:cir-level; default "0"; description "Specifies the port priority this queue will use to receive bandwidth from the port-level scheduler for its within-cir offered load."; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Specifies the weight this queue will use to receive bandwidth from the port-level scheduler for its within-cir offered load."; } } // container port-parent } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // list policer list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class"; } leaf policer { type types-qos:sap-egress-policer-id; description "Policer to forward the traffic"; } choice dscp-or-prec { case dscp { container dscp { description "Enter the dscp context"; leaf in-profile { type types-qos:dscp-name; description "DSCP name for in-profile frames"; } leaf out-profile { type types-qos:dscp-name; description "DSCP name for out-of-profile frames"; } leaf exceed-profile { type types-qos:dscp-name; description "DSCP name for exceed-profile frames"; } } // container dscp } case prec { container prec { description "Enter the prec context"; leaf in-profile { type types-qos:precedence-value; description "Precedence value for in-profile frames"; } leaf out-profile { type types-qos:precedence-value; description "Precedence value for out-of-profile frames"; } leaf exceed-profile { type types-qos:precedence-value; description "Precedence for exceed-profile frames"; } } // container prec } } choice queue-redirection-mapping { case queue { leaf queue { type types-qos:egress-queue-id; description "Queue to forward the traffic"; } } case port-redirect-group-queue { container port-redirect-group-queue { presence "Enter the 'port-redirect-group-queue' context"; description "Enable the port-redirect-group-queue context"; leaf queue { type types-qos:egress-queue-id; description "Queue to forward the traffic"; } } // container port-redirect-group-queue } case queue-group-queue { container queue-group-queue { presence "Enter the 'queue-group-queue' context"; description "Enable the queue-group-queue context"; leaf queue-group-name { type types-sros:named-item; description "Queue group to which the traffic is forwarded"; } leaf queue { type types-qos:egress-queue-id; description "Specifies the queue to forward the traffic."; } leaf instance { type uint32 { range "1..65535"; } description "Instance ID"; } } // container queue-group-queue } } container de-mark { presence "Enter the 'de-mark' context"; description "Enable the de-mark context"; leaf force { type types-qos:de-value; description "DE value"; } } // container de-mark container de-mark-inner { presence "Enter the 'de-mark-inner' context"; description "Enable the de-mark-inner context"; leaf force { type types-qos:de-value; description "DE value to set in inner VLAN tag"; } } // container de-mark-inner container de-mark-outer { presence "Enter the 'de-mark-outer' context"; description "Enable the de-mark-outer context"; leaf force { type types-qos:de-value; description "DE value to set in outer VLAN tag"; } } // container de-mark-outer container dot1p { description "Enter the dot1p context"; leaf in-profile { type types-qos:dot1p-priority; description "Dot1p value for in-profile frames"; } leaf out-profile { type types-qos:dot1p-priority; description "Dot1p value for out-of-profile frames"; } leaf exceed-profile { type types-qos:dot1p-priority; description "Dot1p value for exceed-profile frames"; } } // container dot1p container dot1p-inner { description "Enter the dot1p-inner context"; leaf in-profile { type types-qos:dot1p-priority; description "Inner Dot1p value for in-profile frames"; } leaf out-profile { type types-qos:dot1p-priority; description "Inner Dot1p value for out-of-profile frames"; } } // container dot1p-inner container dot1p-outer { description "Enter the dot1p-outer context"; leaf in-profile { type types-qos:dot1p-priority; description "Outer Dot1p value for in-profile frames"; } leaf out-profile { type types-qos:dot1p-priority; description "Outer Dot1p value for out-of-profile frames"; } leaf exceed-profile { type types-qos:dot1p-priority; description "Outer Dot1p value for exceed-profile frames"; } } // container dot1p-outer container hsmda { status obsolete; description "Enter the hsmda context"; choice hsmda-queue-redirection-mapping { status obsolete; case queue { status obsolete; leaf queue { status obsolete; type types-qos:egress-queue-id; description "HSMDA queue to which traffic is forwarded"; } } case port-redirect-group-queue { status obsolete; container port-redirect-group-queue { status obsolete; presence "Enter the 'port-redirect-group-queue' context"; description "Enable the port-redirect-group-queue context"; leaf queue { status obsolete; type types-qos:egress-queue-id; description "HSMDA queue to which traffic is forwarded"; } } // container port-redirect-group-queue } } } // container hsmda } // list fc list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hs-wrr-group-id; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Weight of scheduling class"; } choice rate-or-percent-rate { default "rate"; case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Administrative PIR"; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list hs-wrr-group container ip-criteria { description "Enter the ip-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "IP Criteria Entry Index"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Matching criteria to be used for fragmented or non-fragmented packets"; } container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Source IPv4 address for SAP QoS policy match criterion"; } leaf mask { type types-sros:ipv4-address; description "IP address mask to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type types-sros:named-item; description "Specifies ip-prefix-list used as match criterion."; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Destination IPv4 address for SAP QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address mask to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type types-sros:named-item; description "Specifies ip-prefix-list used as match criterion."; } } } } // container dst-ip } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Default profile for the matching traffic"; } leaf policer { type types-qos:sap-egress-policer-id; description "Policer identifier for the matched traffic"; } leaf port-redirect-group-queue { type boolean; default "false"; description "Use the queue specified in egress access port queue-group instance"; } leaf queue { type types-qos:egress-queue-id; description "Queue to use when the matched traffic is policed by the local policer"; } leaf use-fc-mapped-queue { type boolean; default "false"; description "Redirect policer output to the configured queues"; } leaf hsmda-counter-override { status obsolete; type uint32 { range "1..8"; } description "HSMDA counter to use for matching packets"; } } // container action } // list entry } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "IP Criteria Entry Index"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Source IPv6 address for SAP QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address mask to match with source IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "IPv6 prefix list as match criterion for IPv6 addresses"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Destination IPv6 address for SAP QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address mask to match with destination IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "IPv6 prefix list as match criterion for IPv6 addresses"; } } } } // container dst-ip } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Default profile for the matching traffic"; } leaf policer { type types-qos:sap-egress-policer-id; description "Policer identifier for the matched traffic"; } leaf port-redirect-group-queue { type boolean; default "false"; description "Use the queue specified in egress access port queue-group instance"; } leaf queue { type types-qos:egress-queue-id; description "Queue to use when the matched traffic is policed by the local policer"; } leaf use-fc-mapped-queue { type boolean; default "false"; description "Redirect policer output to the configured queues"; } leaf hsmda-counter-override { status obsolete; type uint32 { range "1..8"; } description "HSMDA counter to use for matching packets"; } } // container action } // list entry } // container ipv6-criteria } // list sap-egress list scheduler-policy { key "scheduler-policy-name"; max-elements 2047; description "Enter the scheduler-policy list instance"; leaf scheduler-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf frame-based-accounting { type boolean; default "false"; description "Use frame-based accounting for schedulers and children within scheduler policy"; } list tier { key "tier-id"; description "Enter the tier list instance"; leaf tier-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..3"; } } description "Tier for scheduler-policy scheduler"; } leaf parent-location { type enumeration { enum "auto" { value 1; } enum "sub" { value 2; } enum "vport" { value 3; } } default "auto"; description "Location in which the tier 1 schedulers can find their parent"; } list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler name"; } leaf description { type types-sros:description; description "Text description"; } leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:sched-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:sched-cir-rate; units "kilobps"; default "sum"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Scheduler PIR"; } leaf cir { type types-qos:sched-cir-percent-rate; default "sum"; description "Scheduler CIR"; } leaf reference-rate { type enumeration { enum "local-limit" { value 2; } enum "reference-port-limit" { value 3; } } default "reference-port-limit"; description "Reference rate"; } } // container percent-rate } } choice parent-mapping { case scheduler-parent { container scheduler-parent { presence "Enter the 'scheduler-parent' context"; description "Enable the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; description "Scheduler to which this queue would be feeding to"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight; default "1"; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Level of priority while feeding to the parent"; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container scheduler-parent } case port-parent { container port-parent { presence "Enter the 'port-parent' context"; description "Enable the port-parent context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf weight { type types-qos:weight; default "1"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } } // container port-parent } } } // list scheduler } // list tier } // list scheduler-policy list port-scheduler-policy { key "name"; max-elements 1023; description "Enter the port-scheduler-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of this port scheduler policy"; } leaf description { type types-sros:description; description "Text description"; } leaf dist-lag-rate-shared { type boolean; default "false"; description "Share rates when the port is part of a LAG configured in distribute mode"; } leaf monitor-threshold { type uint32 { range "0..100"; } default "0"; description "Specifies the threshold level that should be monitored. It is a percentage of the max-rate or max-rate-percent"; } leaf hqos-algorithm { type enumeration { enum "default" { value 1; } enum "above-offered-allowance-control" { value 2; } } default "default"; description "Port scheduler H-QoS algorithm"; } choice max-rate-or-percent-rate { default "max-rate"; case max-rate { leaf max-rate { type types-qos:max-rate; default "max"; description "Explicit maximum frame based bandwidth limit"; } } case max-percent-rate { leaf max-percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Specifies the explicit maximum frame based bandwidth percentage"; } } } container orphan-overrides { description "Enter the orphan-overrides context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Specifies the port priority of orphaned queues and scheduler that are above-cir"; } leaf weight { type types-qos:weight; default "0"; description "Specifies the weight of orphaned queues and scheduler that are above-cir"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Specifies the port priority of orphaned queues and scheduler that are within-cir"; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Specifies the weight of orphaned queues and scheduler that are within-cir"; } } // container orphan-overrides list group { key "group-name"; max-elements 8; description "Enter the group list instance"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of this port scheduler policy group"; } leaf monitor-threshold { type uint32 { range "0..100"; } default "0"; description "Specifies the threshold level that should be monitored. It is percentage of the max-rate or max-rate-percent"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:queue-cir-rate-maximum; units "kilobps"; default "max"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "100.00"; description "Administrative CIR percent"; } } // container percent-rate } } } // list group list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..8"; } } description "Priority level this port scheduler policy"; } leaf group { type types-sros:named-item; description "Associated group"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Specifies the weight associated with the group"; } leaf monitor-threshold { type uint32 { range "0..100"; } default "0"; description "Specifies the threshold level that should be monitored. It is percentage of the max-rate or max-rate-percent"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:queue-cir-rate-maximum; units "kilobps"; default "max"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "100.00"; description "Administrative CIR percent"; } } // container percent-rate } } } // list level } // list port-scheduler-policy list hs-scheduler-policy { key "name"; max-elements 127; description "Enter the hs-scheduler-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "HS scheduler policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf max-rate { type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } default "max"; description "Maximum rate for this HS scheduler policy"; } list group { key "group-id"; description "Enter the group list instance"; leaf group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1"; } } description "Group ID for the HS scheduler policy"; } leaf rate { type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } units "megabps"; default "max"; description "Group maximum rate"; } } // list group list scheduling-class { key "class-id"; description "Enter the scheduling-class list instance"; leaf class-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..6"; } } description "Class identifier for the HS scheduler policy scheduling class"; } choice rate-or-group { default "rate"; case rate { leaf rate { type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } default "max"; description "Group maximum rate"; } } case group { container group { presence "Enter the 'group' context"; description "Enable the group context"; leaf group-id { type int32 { range "1"; } description "Associated group associated with this scheduling class"; } leaf weight { type int32 { range "1..127"; } default "1"; description "Weight associated with this scheduling class"; } } // container group } } } // list scheduling-class } // list hs-scheduler-policy list hs-pool-policy { key "name"; max-elements 63; description "Enter the hs-pool-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "HS pool policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf system-reserve { type decimal64 { range "1.00..30.00"; fraction-digits 2; } default "5.00"; description "Percentage of HS buffers reserved for internal system use"; } container root-tier { description "Enter the root-tier context"; list root-pool { key "root-pool-id"; description "Enter the root-pool list instance"; leaf root-pool-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..16"; } } description "Root pool identifier for the HS pool policy"; } leaf allocation-weight { type uint32 { range "0..100"; } description "Specifies the weight that will be applied to the first root pool and is divided by the sum of all root pool weights to derive the pool's buffer allocation factor."; } leaf slope-policy { type types-sros:named-item; description "Specifies the slope policy associated with this pool policy."; } } // list root-pool } // container root-tier container mid-tier { description "Enter the mid-tier context"; list mid-pool { key "mid-pool-id"; description "Enter the mid-pool list instance"; leaf mid-pool-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..16"; } } description "Mid-pool identifier for the HS pool policy"; } leaf allocation-percent { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Specifies the percentage of the root-pool with which it is associated, as specified by root-parent will be available to this mid-pool."; } leaf slope-policy { type types-sros:named-item; description "Specifies the slope policy associated with this pool policy."; } leaf port-bw-oversubscription-factor { type uint32 { range "1..10"; } default "1"; description "Specifies the factor by which port bandwidth can be over subscribed."; } container parent-root-pool { description "Enter the parent-root-pool context"; choice map-pool { default "pool-id"; case pool-id { leaf pool-id { type uint32 { range "1..16"; } description "Specifies the parent root to which this mid-pool is associated."; } } case none { leaf none { type empty; description "Specifies none mid-pool is associated with this parent-pool."; } } } } // container parent-root-pool } // list mid-pool } // container mid-tier } // list hs-pool-policy list hs-port-pool-policy { key "name"; max-elements 2047; description "Enter the hs-port-pool-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for HS port pool policy"; } leaf description { type types-sros:description; description "Text description"; } container std-port-class-pools { description "Enter the std-port-class-pools context"; list class-pool { key "std-class-pool-id"; description "Enter the class-pool list instance"; leaf std-class-pool-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..6"; } } description "Standard port class identifier for the HS port pool policy"; } leaf slope-policy { type types-sros:named-item; description "Specifies the slope policy associated with this pool policy."; } container parent-mid-pool { description "Enter the parent-mid-pool context"; choice map-pool { default "pool-id"; case pool-id { leaf pool-id { type uint32 { range "1..16"; } description "Specifies the mid-pool parent."; } } case none { leaf none { type empty; description "Specifies none mid-pool is associated with this parent-pool."; } } } } // container parent-mid-pool container allocation { description "Enter the allocation context"; choice port-weight-or-percent { default "port-bw-weight"; case port-bw-weight { leaf port-bw-weight { type uint32 { range "1..100"; } default "1"; description "Specifies the port share weight."; } } case explicit-percent { leaf explicit-percent { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Specifies the percentage of parent pool to be allocated."; } } } } // container allocation } // list class-pool } // container std-port-class-pools container alt-port-class-pools { description "Enter the alt-port-class-pools context"; list class-pool { key "alt-class-pool-id"; description "Enter the class-pool list instance"; leaf alt-class-pool-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..6"; } } description "The alt-port-class-pool identifier for the HS port pool policy."; } leaf slope-policy { type types-sros:named-item; description "Specifies the slope policy associated with this pool policy."; } container parent-mid-pool { description "Enter the parent-mid-pool context"; choice map-pool { default "none"; case pool-id { leaf pool-id { type uint32 { range "1..16"; } description "Specifies the mid-pool parent."; } } case none { leaf none { type empty; description "Specifies none mid-pool is associated with this parent-pool."; } } } } // container parent-mid-pool container allocation { description "Enter the allocation context"; choice port-weight-or-percent { default "port-bw-weight"; case port-bw-weight { leaf port-bw-weight { type uint32 { range "1..100"; } default "1"; description "Specifies the port share weight."; } } case explicit-percent { leaf explicit-percent { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Specifies the percentage of parent pool to be allocated."; } } } } // container allocation } // list class-pool } // container alt-port-class-pools } // list hs-port-pool-policy list hs-attachment-policy { key "name"; max-elements 31; description "Enter the hs-attachment-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "HS attachment policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf low-burst-max-class { type uint32 { range "1..6"; } default "6"; description "Low priority burst threshold"; } list wrr-group { key "wrr-group-id"; description "Enter the wrr-group list instance"; leaf wrr-group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2"; } } description "WRR group ID for the HS attachment policy"; } choice wrr-group-mapping { default "unattached"; case sched-class-id { leaf sched-class { type int32 { range "1..6"; } description "Specifies scheduling class associated with this WRR group."; } } case unattached { leaf unattached { type empty; description "Specifies the mapping type associated with this WRR group is unattached."; } } } } // list wrr-group list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Queue identifier for the HS attachment policy"; } choice hs-attach-queue-mapping { default "unattached"; case sched-class-id { leaf sched-class { type int32 { range "1..6"; } description "Specifies scheduling class associated with this queue."; } } case wrr-group-id { leaf wrr-group { type int32 { range "1..2"; } description "Specifies wrr group associated with this queue."; } } case unattached { leaf unattached { type empty; description "Specifies the mapping type associated with this WRR group is unattached."; } } } } // list queue } // list hs-attachment-policy list post-policer-mapping { key "name"; max-elements 7; description "Enter the post-policer-mapping list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of post policer mapping policy."; } leaf description { type types-sros:description; description "Text description"; } list fc { key "fc-name profile"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Name of forwarding class to be remapped"; } leaf profile { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-profile; } description "Packet Profile that needs to be remapped."; } container maps-to { description "Enter the maps-to context"; leaf fc { type types-sros:fc-name; description "Name of forwarding class to be remapped"; } leaf profile { type types-qos:egress-profile; description "Packet Profile that needs to be remapped."; } } // container maps-to } // list fc } // list post-policer-mapping list queue-group-redirect-list { key "name"; max-elements 2047; description "Enter the queue-group-redirect-list list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of queue-group redirect list."; } leaf type { type enumeration { enum "vxlan-vni" { value 1; } } default "vxlan-vni"; description "Type for queue-group redirect list"; } list match { key "field-value"; max-elements 16; description "Enter the match list instance"; leaf field-value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..16777215"; } } description "Specifies the value of the field in the ingress or egress packet which, when matched, will redirect the packet to the queue-group instance"; } leaf instance { type uint32 { range "1..65535"; } description "Specifies the queue-group instance to which packet will be forwarded."; } } // list match } // list queue-group-redirect-list list egress-remark-policy { key "egress-remark-policy-name"; max-elements 127; description "Enter the egress-remark-policy list instance"; leaf egress-remark-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:qos-policy-name; } description "The name of this egress-remark-policy QoS policy."; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Specifies the forwarding class."; } container de-mark { presence "Enter the 'de-mark' context"; description "Enable the de-mark context"; leaf force { type types-qos:de-value; description "Specifies the DE value to set."; } } // container de-mark container dot1p { description "Enter the dot1p context"; leaf in-profile { type types-qos:dot1p-priority; description "Specifies Dot1p value for in-profile frames."; } leaf out-profile { type types-qos:dot1p-priority; description "Specifies Dot1p value for out-of-profile frames."; } leaf exceed { type types-qos:dot1p-priority; description "Specifies Dot1p value for exceed profile frames."; } leaf inplus { type types-qos:dot1p-priority; description "Specifies Dot1p value for inplus profile frames."; } } // container dot1p container dscp { description "Enter the dscp context"; leaf in-profile { type types-qos:dscp-name; description "DSCP name for in-profile frames"; } leaf out-profile { type types-qos:dscp-name; description "DSCP value for out-of-profile frames"; } leaf exceed { type types-qos:dscp-name; description "DSCP name for exceed profile frames"; } leaf inplus { type types-qos:dscp-name; description "DSCP name for inplus profile frames"; } } // container dscp container lsp-exp { description "Enter the lsp-exp context"; leaf in-profile { type types-qos:lsp-exp-value; description "LSP-EXP marking for in-profile frames"; } leaf out-profile { type types-qos:lsp-exp-value; description "LSP-EXP value for out-of-profile frames"; } leaf exceed { type types-qos:lsp-exp-value; description "LSP-EXP marking for exceed profile frames"; } leaf inplus { type types-qos:lsp-exp-value; description "LSP-EXP marking for inplus profile frames"; } } // container lsp-exp } // list fc } // list egress-remark-policy container match-list { description "Enter the match-list context"; list ip-prefix-list { key "prefix-list-name"; max-elements 512; description "Enter the ip-prefix-list list instance"; leaf prefix-list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Specifies the name given to this prefix list."; } leaf description { type types-sros:description; description "Text description"; } list prefix { key "ip-prefix"; max-elements 256; description "Add a list entry for prefix"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-prefix; } description "Specifies the IPv4 prefix for this prefix list."; } } // list prefix } // list ip-prefix-list list ipv6-prefix-list { key "prefix-list-name"; max-elements 128; description "Enter the ipv6-prefix-list list instance"; leaf prefix-list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Specifies the name given to this prefix list."; } leaf description { type types-sros:description; description "Text description"; } list prefix { key "ipv6-prefix"; max-elements 128; description "Add a list entry for prefix"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "Specifies the IPv6 prefix for this prefix list."; } } // list prefix } // list ipv6-prefix-list list port-list { key "port-list-name"; max-elements 16; description "Enter the port-list list instance"; leaf port-list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Port list name"; } leaf description { type types-sros:description; description "Text description"; } list port { key "value"; description "Add a list entry for port"; leaf value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "0..65535"; } } description "Port number"; } } // list port list range { key "start end"; description "Add a list entry for range"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "0..65534"; } } description "Lower bound for the port range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..65535"; } } description "Upper bound for the port range"; } } // list range } // list port-list } // container match-list list fp-resource-policy { key "fp-resource-policy-name"; max-elements 16; description "Enter the fp-resource-policy list instance"; leaf fp-resource-policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:qos-policy-name; } description "FP resource policy name"; } leaf description { type types-sros:description; description "Text description"; } container queues { description "Enter the queues context"; leaf ingress-percent-of-total { type decimal64 { range "4.00..97.00"; fraction-digits 2; } sros-ext:card-auto-reset-on-modify; default "50.00"; description "Percentage of ingress queues allocated"; } } // container queues } // list fp-resource-policy container packet-byte-offset { description "Enter the packet-byte-offset context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies whether packet byte offset is enabled."; } } // container packet-byte-offset } // container qos container redundancy { description "Enter the redundancy context"; leaf cert-sync { type boolean; default "true"; description "Synchronize redundancy certificate files between the primary and secondary CPMs"; } leaf rollback-sync { type enumeration { enum "rollback-single" { value 2; } enum "rollback-all" { value 3; } } description "Parameters for redundancy rollback synchronization"; } leaf synchronize { type enumeration { enum "config" { value 2; } enum "boot-env" { value 3; } } description "Parameters for redundancy synchronization"; } leaf switchover-exec { type types-sros:url { length "1..100"; } description "Location and name of the CLI script file executed after a redundancy switchover"; } container mgmt-ethernet { presence "Enter the 'mgmt-ethernet' context"; description "Enable the mgmt-ethernet context"; leaf revert { type uint32 { range "1..300"; } units "seconds"; default "5"; description "Time before reverting standby CPM management Ethernet port to active CPM"; } } // container mgmt-ethernet container multi-chassis { description "Enter the multi-chassis context"; list peer { key "ip-address"; max-elements 20; description "Enter the peer list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address for server"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the peer instance"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..54"; } description "Authentication key used between this node and the multi-chassis peer"; } leaf description { type types-sros:description; description "Text description"; } leaf peer-name { type types-sros:named-item; description "Multi-chassis peer name"; } leaf source-address { type types-sros:ip-unicast-address; description "Source address to communicate with the multi-chassis peer"; } container sync { presence "Enter the 'sync' context"; description "Enable the sync context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the synchronization"; } leaf diameter-proxy { type boolean; default "false"; description "Synchronize the Diameter proxy data with the multi-chassis peer"; } leaf igmp { type boolean; default "false"; description "Synchronize IGMP protocol information with the multi-chassis peer"; } leaf igmp-snooping { type boolean; default "false"; description "Synchronize IGMP snooping information"; } leaf ipsec { type boolean; default "false"; description "Synchronize IPsec information"; } leaf l2tp { type boolean; default "false"; description "Synchronize Layer Two Tunnel Protocol (L2TP)"; } leaf local-dhcp-server { type boolean; default "false"; description "Synchronize DHCP Server information"; } leaf mc-ring { type boolean; default "false"; description "Synchronize ring information"; } leaf mld { type boolean; default "false"; description "Synchronize MLD protocol information"; } leaf mld-snooping { type boolean; default "false"; description "Synchronize MLD snooping information"; } leaf python { type boolean; default "false"; description "Synchronize Python"; } leaf srrp { type boolean; default "false"; description "Synchronize SRRP information"; } leaf sub-host-trk { type boolean; default "false"; description "Synchronize subscriber host tracking information"; } container nat { presence "Enter the 'nat' context"; description "Enable the nat context"; list nat-group { key "id"; description "Enter the nat-group list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4"; } } description "NAT group ID"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "NAT group synchronization tag"; } } // list nat-group } // container nat container pim-snooping { description "Enter the pim-snooping context"; leaf saps { type boolean; default "false"; description "Synchronize PIM snooping data with the multi-chassis peer on SDP endpoints"; } leaf spoke-sdps { type boolean; default "false"; description "Synchronize PIM snooping data with the multi-chassis peer on SDP endpoints"; } } // container pim-snooping container sub-mgmt { description "Enter the sub-mgmt context"; leaf ipoe { type boolean; default "false"; description "Synchronize subscriber management IPoE information"; } leaf pppoe { type boolean; default "false"; description "Synchronize subscriber management PPPoE information"; } } // container sub-mgmt container tags { description "Enter the tags context"; list port { key "id"; description "Enter the port list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port; } description "ID of port to be synchronized with multi-chassis peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } list range { key "start end"; description "Enter the range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:vlan-encap; } description "First encapsulation value"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:vlan-encap; } description "Last encapsulation value"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } } // list range } // list port list lag { key "lag-name"; description "Enter the lag list instance"; leaf lag-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:lag-interface; } description "LAG name"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } list range { key "start end"; description "Enter the range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:vlan-encap; } description "First encapsulation value"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:vlan-encap; } description "Last encapsulation value"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } } // list range } // list lag list pw-port { key "id"; description "Enter the pw-port list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:pw-port; } description "ID of pseudowire port to be synchronized with MC peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } list range { key "start end"; description "Enter the range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:vlan-encap; } description "First encapsulation value"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:vlan-encap; } description "Last encapsulation value"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } } // list range } // list pw-port list sdp { key "id"; description "Enter the sdp list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-id; } description "ID of SDP to be synchronized with multi-chassis peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } list range { key "start end"; description "Enter the range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:vc-id; } description "First virtual circuit ID"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:vc-id; } description "Last virtual circuit ID"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } } // list range } // list sdp } // container tags list tunnel-group { key "tunnel-group-id"; description "Enter the tunnel-group list instance"; leaf tunnel-group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-redundancy:tunnel-group-id; } description "Multi-active tunnel group ID"; } leaf sync-tag { type types-sros:named-item; description "Synchronization tag for this tunnel group on this multi-chassis peer"; } } // list tunnel-group list track-srrp { key "id"; description "Enter the track-srrp list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4294967295"; } } description "ID of the tracked SRRP instance"; } container l2tp-tunnel-id-range { description "Enter the l2tp-tunnel-id-range context"; leaf start { type types-l2tp:loc-tunnel-id; description "Start value of range"; } leaf end { type types-l2tp:loc-tunnel-id; description "End value of range"; } } // container l2tp-tunnel-id-range } // list track-srrp container diameter-node { presence "Enter the 'diameter-node' context"; description "Enable the diameter-node context"; list node { key "host-name"; description "Enter the node list instance"; leaf host-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-diam:diam-fqdn; } description "Origin-Host of the node"; } leaf sync-tag { type types-sros:named-item; description "The sync tag to be used for synchronization"; } } // list node } // container diameter-node } // container sync container mc-ipsec { presence "Enter the 'mc-ipsec' context"; description "Enable the mc-ipsec context"; leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf hold-on-neighbor-failure { type uint32 { range "2..25"; } default "3"; description "Hold time on neighbor failure"; } leaf keep-alive-interval { type uint32 { range "5..500"; } units "deciseconds"; default "10"; description "Keepalive interval"; } container discovery-interval { description "Enter the discovery-interval context"; leaf interval-secs { type uint32 { range "1..1800"; } units "seconds"; default "300"; description "Maximum discovery interval"; } leaf boot { type uint32 { range "1..1800"; } units "seconds"; default "300"; description "Maximum interval after system bootup"; } } // container discovery-interval list tunnel-group { key "tunnel-group-id"; description "Enter the tunnel-group list instance"; leaf tunnel-group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-redundancy:tunnel-group-id; } description "Tunnel group ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the peer IPsec tunnel group instance"; } leaf peer-group { type types-redundancy:tunnel-group-id; description "Peer tunnel group"; } leaf priority { type uint32 { range "0..255"; } default "100"; description "Tunnel group priority"; } } // list tunnel-group } // container mc-ipsec container mc-lag { description "Enter the mc-lag context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MC-LAG"; } leaf keep-alive-interval { type uint32 { range "5..500"; } units "deciseconds"; default "10"; description "Keepalive timer value"; } leaf hold-on-neighbor-failure { type uint32 { range "2..25"; } default "3"; description "Intervals before standby node assumes that redundant neighbor node has failed"; } list lag { key "lag-name"; description "Enter the lag list instance"; leaf lag-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:lag-interface; } description "LAG name"; } leaf lacp-key { type uint32 { range "1..65535"; } sros-ext:immutable; description "Key based on the remote MC-LAG"; } leaf system-id { type yang:mac-address; sros-ext:immutable; description "ID based on the remote MC-LAG"; } leaf system-priority { type int32 { range "1..65535"; } sros-ext:immutable; description "Priority based on the remote MC-LAG"; } leaf remote-lag { type types-sros:lag-interface; description "LAG name"; } leaf source-bmac-lsb { type union { type enumeration { enum "use-lacp-key" { value -1; } } type types-services:bmac-lsb; } description "MAC address value to apply to all ingress traffic"; } } // list lag } // container mc-lag container mc-ring { description "Enter the mc-ring context"; list ring { key "sync-tag"; description "Enter the ring list instance"; leaf sync-tag { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Synchronization tag for this ring on this multi-chassis peer"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the multi-chassis ring"; } leaf type { type enumeration { enum "layer-2" { value 1; } enum "layer-3" { value 2; } } sros-ext:immutable; description "Type of the multi-chassis ring"; } container in-band-control-path { description "Enter the in-band-control-path context"; leaf debounce { type boolean; default "true"; description "Exponential back-off timer to use for delay path switching after consecutive failures"; } leaf max-debounce-time { type uint32 { range "5..200"; } units "seconds"; default "10"; description "Maximum delay after a failure when debouncing is active"; } leaf dst-ip { type types-sros:ipv4-unicast-address; description "IP address of the in-band control path peer"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf interface { type types-sros:interface-name; description "Interface to verify in-band control path"; } } // container in-band-control-path container path-b { description "Enter the path-b context"; leaf wildcard-saps { type boolean; default "false"; description "Include the SAPs starting with a wildcard '*'"; } list range { key "start end"; description "Add a list entry for range"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..4094"; } } description "First VLAN in the range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..4094"; } } description "Last VLAN in the range"; } } // list range } // container path-b container path-excl { description "Enter the path-excl context"; leaf wildcard-saps { type boolean; default "false"; description "Include the SAPs starting with a wildcard '*'"; } list range { key "start end"; description "Add a list entry for range"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..4094"; } } description "First VLAN in the range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..4094"; } } description "Last VLAN in the range"; } } // list range } // container path-excl list srrp-instance { key "id"; max-elements 2; description "Add a list entry for srrp-instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4294967295"; } } description "SRRP ID"; } } // list srrp-instance list ring-node { key "name"; description "Enter the ring-node list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of a multi-chassis ring access node"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ring node verification"; } leaf interval { type uint32 { range "1..6000"; } units "minutes"; default "5"; description "Connection verification interval"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf dst-ip { type types-sros:ipv4-unicast-address; description "Destination IP address for access node connection"; } leaf src-ip { type types-sros:ipv4-unicast-address; description "Source IP address for access node connection"; } leaf src-mac { type union { type enumeration { enum "system-mac-address" { value 0; } } type types-mcr:ring-node-mac-address; } default "system-mac-address"; description "Source MAC address for the access node connection"; } leaf vlan { type types-sros:ext-vlan-encap; description "VLAN ID for access node connection"; } } // list ring-node } // list ring } // container mc-ring } // list peer } // container multi-chassis container bgp-mh { description "Enter the bgp-mh context"; container site { description "Enter the site context"; leaf boot-timer { type int32 { range "0..600"; } units "seconds"; default "10"; description "Time that system waits after node reboot and before it runs DF election algorithm"; } leaf activation-timer { type int32 { range "0..100"; } units "seconds"; default "2"; description "Time to keep local sites in standby status before running DF election algorithm"; } leaf min-down-timer { type int32 { range "1..100"; } units "seconds"; description "Minimum downtime for BGP multi-homing site after transition from up to down"; } } // container site } // container bgp-mh container bgp-evpn { description "Enter the bgp-evpn context"; container ethernet-segment { description "Enter the ethernet-segment context"; leaf boot-timer { type uint32 { range "0..600"; } units "seconds"; default "10"; description "Time before running BGP EVPN multi-homing DF election algorithm"; } leaf activation-timer { type uint32 { range "0..100"; } units "seconds"; default "3"; description "Time before activating specified Ethernet segment on specified PE that is elected as DF"; } } // container ethernet-segment } // container bgp-evpn } // container redundancy list router { key "router-name"; max-elements 3; description "Enter the router list instance"; leaf router-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64 { pattern ".{1,32}" { error-message "vRtrName needs to be extended to 64 to support this name"; } } } description "Administrative router name"; } leaf description { type types-sros:description; description "Text description"; } leaf triggered-policy { type boolean; default "false"; description "Trigger route policy re-evaluation"; } leaf allow-icmp-redirect { type boolean; default "false"; description "Allow ICMP redirects on the management interface"; } leaf allow-icmp6-redirect { type boolean; default "false"; description "Allow IPv6 ICMP redirects on the management interface"; } leaf class-forwarding { type boolean; default "false"; description "Allow class-based forwarding over IGP shortcuts"; } leaf icmp-tunneling { type boolean; default "false"; description "Allow tunneling of ICMP reply packets over MPLS LSPs"; } leaf fib-telemetry { type boolean; default "false"; description "Collect extra state information"; } leaf selective-fib { type boolean; default "true"; description "Enable/disable selective FIB. If disabled, all active routes of this routing instance are installed on all line cards."; } leaf autonomous-system { type uint32 { range "1..max"; } description "AS number advertised to peers for this router"; } leaf ecmp { type types-router:ip-ecmp; default "1"; description "Maximum equal-cost routes for routing table instance"; } leaf entropy-label { type boolean; default "false"; description "Use entropy label"; } leaf fib-priority { type enumeration { enum "standard" { value 1; } enum "high" { value 2; } } default "standard"; description "FIB priority for VPRN BGP routes"; } leaf multicast-info-policy { type types-sros:named-item; description "Multicast policy name for virtual router"; } leaf router-id { type types-router:router-id; description "Unique router ID for the router in the AS"; } leaf weighted-ecmp { type enumeration { enum "false" { value 0; } enum "true" { value 1; } enum "strict" { value 2; } } default "false"; description "Allow weighted load-balancing"; } container leak-export { description "Enter the leak-export context"; leaf-list policy-name { type union { type types-sros:policy-expr-string; type string; } max-elements 5; ordered-by user; description "Attribute policy-name for leak-export."; } leaf leak-export-limit { type uint32 { range "1..10000"; } default "5"; description "Maximum number of routes exported due to leak-export policies."; } } // container leak-export container gtp { description "Enter the gtp context"; container s11 { description "Enter the s11 context"; list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Name for the S11 interface"; } leaf apn-policy { type types-sros:named-item; description "Access point name policy for the S11 interface"; } } // list interface container peer-profile-map { description "Enter the peer-profile-map context"; list prefix { key "peer-prefix"; description "Enter the prefix list instance"; leaf peer-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "IP prefix and prefix length for the subnet"; } leaf peer-profile { type types-sros:named-item; description "GTP peer profile associated with the address prefix"; } } // list prefix } // container peer-profile-map } // container s11 container upf-data-endpoint { presence "Enter the 'upf-data-endpoint' context"; description "Enable the upf-data-endpoint context"; leaf interface { type types-sros:interface-name; description "The interface on which the data endpoint gtp packets are enabled."; } } // container upf-data-endpoint container uplink { presence "Enter the 'uplink' context"; description "Enable the uplink context"; leaf apn { type string { length "1..80"; pattern "([a-zA-Z0-9]+-+)*([a-zA-Z0-9]+\\.([a-zA-Z0-9]+-+)*)*[a-zA-Z0-9]+" { error-message "wrong format of apn name"; } } description "Network identifier part of the APN for the uplink"; } leaf pdn-type { type enumeration { enum "ipv4" { value 0; } enum "ipv6" { value 1; } enum "ipv4v6" { value 2; } } default "ipv4"; description "Default PDN to be signaled in GTP"; } container peer-profile-map { description "Enter the peer-profile-map context"; list prefix { key "peer-prefix"; description "Enter the prefix list instance"; leaf peer-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "IP prefix and prefix length for the subnet"; } leaf peer-profile { type types-sros:named-item; description "GTP peer profile associated with the address prefix"; } } // list prefix } // container peer-profile-map } // container uplink } // container gtp container bfd { description "Enter the bfd context"; container seamless-bfd { description "Enter the seamless-bfd context"; list peer { key "address"; max-elements 8000; description "Enter the peer list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "Address of the remote node"; } leaf discriminator { type uint32 { range "1..4294967295"; } description "Discriminator of the remote node"; } } // list peer } // container seamless-bfd } // container bfd container dns { description "Enter the dns context"; container redirect-vprn { description "Enter the redirect-vprn context"; list service { key "service-name"; max-elements 1; description "Enter the service list instance"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf preference { type uint32 { range "0..255"; } description "Service preference"; } } // list service } // container redirect-vprn } // container dns container aggregates { description "Enter the aggregates context"; list aggregate { key "ip-prefix"; description "Enter the aggregate list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Destination IP address prefix of the aggregate route"; } leaf as-set { type boolean; default "false"; description "Use AS_SET path segment type for the aggregate route"; } leaf-list community { type types-sros:community; max-elements 12; ordered-by user; description "Community name that is added to the aggregate route"; } leaf description { type types-sros:description; description "Text description"; } leaf summary-only { type boolean; default "false"; description "Advertise the aggregate route only"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Local preference used when aggregate route is exported"; } leaf discard-component-communities { type boolean; default "false"; description "Advertise aggregate with aggregate route community set"; } leaf policy { type types-sros:named-item-64; description "Policy name for the aggregated route"; } leaf tunnel-group { type types-redundancy:tunnel-group-id; description "Tunnel group from which to associate the MC IPSec state"; } choice next-hop { case blackhole { container blackhole { presence "Enter the 'blackhole' context"; description "Enable the blackhole context"; leaf generate-icmp { type boolean; default "false"; description "Send ICMP unreachable messages for aggregate routes"; } } // container blackhole } case indirect { leaf indirect { type types-sros:ip-unicast-address; sros-ext:immutable; description "Address of the indirect next hop"; } } } container aggregator { description "Enter the aggregator context"; leaf as-number { type uint32 { range "1..max"; } description "Aggregator AS number"; } leaf address { type types-sros:ipv4-unicast-address; description "Aggregator IP address"; } } // container aggregator } // list aggregate } // container aggregates container ipv6-te-router-id { description "Enter the ipv6-te-router-id context"; leaf interface { type types-sros:interface-name; description "Network IP interface name to obtain IP address"; } } // container ipv6-te-router-id container mc-maximum-routes { description "Enter the mc-maximum-routes context"; leaf value { type int32 { range "1..2147483647"; } description "Maximum number of multicast routes to be configured on this virtual router"; } leaf log-only { type boolean; default "false"; description "Action when the maximum number of multicast routes, held within a VRF context, is reached"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; description "Mid-level water marker for the number of multicast routes which this VRF holds"; } } // container mc-maximum-routes container vrgw { description "Enter the vrgw context"; container lanext { presence "Enter the 'lanext' context"; description "Enable the lanext context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Home LAN Extension"; } leaf vxlan-port { type uint32 { range "4789|8472"; } default "4789"; description "UDP port to be used by local or remote VXLAN VTEP"; } leaf wlan-gw-group { type types-isa:wlan-gw-group-id; sros-ext:immutable; description "WLAN-GW group used for Home LAN Extension"; } container vxlan-vtep-range { description "Enter the vxlan-vtep-range context"; leaf start { type types-sros:ip-unicast-without-local-address; description "Start address of this range"; } leaf end { type types-sros:ip-unicast-without-local-address; description "End address of this range"; } } // container vxlan-vtep-range } // container lanext } // container vrgw container wlan-gw { presence "Enter the 'wlan-gw' context"; description "Enable the wlan-gw context"; container mobility-triggered-accounting { description "Enter the mobility-triggered-accounting context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of mobility-triggered-accounting"; } leaf include-counters { type boolean; default "false"; description "Include counters in interim updates"; } leaf hold-down { type types-sros:time-duration { range "60..86400"; } units "seconds"; description "Hold additional mobility-triggered update until this timer expires"; } } // container mobility-triggered-accounting container distributed-subscriber-mgmt { description "Enter the distributed-subscriber-mgmt context"; leaf ipv6-tcp-mss-adjust { type uint32 { range "160..10240"; } description "Insert or decrease the TCP Maximum Segment Size option to this value for upstream IPv6 SYN messages"; } } // container distributed-subscriber-mgmt container xconnect { description "Enter the xconnect context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the WLAN-GW cross-connect"; } leaf tunnel-source-ip { type types-sros:ipv6-prefix; description "IPv6 prefix from which source addresses of cross-connect tunnels will be chosen"; } leaf wlan-gw-group { type types-isa:wlan-gw-group-id; description "ISA WLAN-GW Group"; } } // container xconnect } // container wlan-gw container mss-adjust { presence "Enter the 'mss-adjust' context"; description "Enable the mss-adjust context"; leaf nat-group { type uint32; sros-ext:immutable; description "NAT group (including WLAN Gateway group) that executes the adjustment"; } leaf segment-size { type uint32 { range "160..10240"; } description "Intended value for the Maximum Segment Size (MSS) option in transmitted TCP SYN requests"; } } // container mss-adjust container reassembly { presence "Enter the 'reassembly' context"; description "Enable the reassembly context"; leaf nat-group { type uint32; sros-ext:immutable; description "NAT group (including WLAN Gateway group) that executes the reassembly"; } leaf to-base-network { type boolean; default "false"; description "Enable/disable sending reassembled traffic to network interface on base router"; } } // container reassembly container sfm-overload { presence "Enter the 'sfm-overload' context"; description "Enable the sfm-overload context"; leaf holdoff-time { type uint32 { range "1..600"; } units "seconds"; description "The delay between the detection of the SFM condition and the IGP entering the overload state."; } } // container sfm-overload container confederation { description "Enter the confederation context"; leaf confed-as-num { type inet:as-number { range "1..4294967295"; } description "Confederation AS number"; } list members { key "as-number"; max-elements 256; description "Add a list entry for members"; leaf as-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type inet:as-number { range "1..4294967295"; } } description "Confederation member AS number"; } } // list members } // container confederation list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name"; } leaf flavor { type enumeration { enum "regular" { value 0; description "Creates a regular network interface."; } enum "control-tunnel" { value 1; description "Creates a network interface of control-tunnel type."; } enum "pdn" { value 2; description "Creates a network interface of pdn type."; } enum "unnumbered-mpls-tp" { value 3; description "Creates a network interface of unnumbered-mpls-tp type."; } enum "gmpls-loopback" { value 4; description "Creates a network interface of gmpls-loopback type."; } } sros-ext:immutable; default "regular"; description "Network interface flavor"; } leaf cpu-protection { type types-services:cpm-prot-policy-id; description "CPU protection policy ID for the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "Interface IP MTU"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the interface"; } leaf strip-label { type boolean; default "false"; description "Strip all MPLS labels before packets are handed over for possible filter (PBR) processing"; } leaf dist-cpu-protection { type types-sros:named-item; description "Name of distributed CPU protection policy for interface"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf tos-marking-state { type types-router:tos-marking-state; default "trusted"; description "TOS marking state"; } leaf ingress-stats { type boolean; default "false"; description "Collect ingress statistics"; } leaf mac-accounting { type boolean; default "false"; description "MAC Accounting functionality"; } leaf vas-if-type { type types-router:vas-if-type; description "VAS interface type"; } leaf gre-termination { type boolean; default "false"; description "Terminate GRE packets on primary subnet of interface"; } leaf urpf-selected-vprns { type boolean; default "false"; description "Enable/disable per-VPRN selective URPF treatment. This applies to packets associated with a VPRN."; } leaf accounting-policy { type types-log:log-policy-id; description "Configure the accounting policy which applies to the router interface."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data on the router interface."; } choice port-binding { case port-encap { leaf port { type types-router:router-port; description "Port to bind this interface"; } } case loopback { leaf loopback { type empty; description "Use interface as a loopback interface"; } } } container egress { description "Enter the egress context"; container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Vlan qos policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Egress remark policy name"; } } // container egress-remark-policy container agg-rate { description "Enter the agg-rate context"; container rate { description "Enter the rate context"; leaf pir { type union { type int32 { range "1..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } // container agg-rate } // container qos } // container egress container ingress { description "Enter the ingress context"; leaf policy-accounting { type types-sros:named-item; description "Configure ingress policy accounting."; } leaf destination-class-lookup { type boolean; default "false"; description "Enable BGP destination class lookup"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network-ingress { description "Enter the network-ingress context"; leaf policy-name { type types-qos:qos-policy-name; description "Network ingress qos policy name"; } } // container network-ingress } // container qos } // container ingress container ldp-sync-timer { description "Enter the ldp-sync-timer context"; leaf seconds { type types-router:ldp-sync-timer; description "Value for the LDP SYNC timer"; } leaf end-of-lib { type boolean; default "false"; description "Terminate LDP sync timer"; } } // container ldp-sync-timer container load-balancing { description "Enter the load-balancing context"; leaf lsr-load-balancing { type types-router:lsr-load-balancing; description "LSR load balancing algorithm"; } leaf ip-load-balancing { type types-router:ip-load-balancing; default "both"; description "Configure IP load balancing algorithm."; } leaf spi-load-balancing { type boolean; default "false"; description "Allow use of SPI (Security Parameter Index) in hashing for ESP/AH encrypted IPv4/IPv6 traffic"; } leaf teid-load-balancing { type boolean; default "false"; description "Include TEID in hashing algorithm for GTP-U/C encapsulated traffic"; } } // container load-balancing container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container cflowd-parameters { description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:cflowd-sampling; } description "Unicast or multicast traffic"; } leaf type { type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } } // list sampling } // container cflowd-parameters container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv6 } // container hold-time container eth-cfm { description "Enter the eth-cfm context"; list mep { key "md-admin-name ma-admin-name mep-id"; max-elements 1; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf facility-fault { type boolean; default "false"; description "Allow the facility MEP to generate a network action"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf-list ccm-tlv-ignore { type types-eth-cfm:ccm-tlv-ignore-type; max-elements 2; description "TLV to ignore on reception"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect for fault alarm generation"; } leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container ipv4 { description "Enter the ipv4 context"; leaf tcp-mss { type types-router:ipv4-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf allow-directed-broadcasts { type boolean; default "false"; description "Forward directed broadcasts"; } leaf local-dhcp-server { type types-sros:named-item; description "DHCP server for the interface"; } leaf qos-route-lookup { type types-router:qos-route-lookup; description "Perform QoS Route lookup"; } leaf ip-helper-address { type types-sros:ipv4-unicast-address; description "IP address of the target UDP broadcast gateway"; } container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container unnumbered { description "Enter the unnumbered context"; choice source { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IP address of the interface"; } } case ip-int-name { leaf ip-int-name { type types-sros:interface-name; description "Interface name"; } } case ip-int-system { leaf system { type empty; description "IP interface as an unnumbered interface"; } } } } // container unnumbered container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container dhcp { description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf python-policy { type types-sros:named-item; description "Python policy name"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "IP addresses for DHCP server requests"; } leaf trusted { type boolean; default "false"; description "Relay untrusted packets"; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf relay-plain-bootp { type boolean; default "false"; description "Relay plain BOOTP packets"; } container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the Circuit ID"; } } case ifindex { leaf ifindex { type empty; description "Use the interface index for the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } case port-id { leaf port-id { type empty; description "Use the port ID for the Circuit ID"; } } case if-name { leaf if-name { type empty; description "Use the interface name for the Circuit ID"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf pool-name { type boolean; default "false"; description "Send the pool name in the Vendor Specific Option"; } leaf port-id { type boolean; default "false"; description "Send the port ID in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 } // container dhcp container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; description "Primary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "Track the state of the SRRP instance on this IP address"; } leaf gre-termination { type boolean; default "false"; description "Configure GRE termination for packets with this destination ipaddress."; } } // container primary list secondary { key "address"; description "Enter the secondary list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Secondary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf igp-inhibit { type boolean; default "false"; description "Secondary IP address that is not recognized as local interface by the running IGP"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "Track the state of the SRRP instance on this IP address"; } } // list secondary container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf timeout { type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } leaf retry-timer { type uint32 { range "1..300"; } units "deciseconds"; default "50"; description "ARP retry interval"; } leaf learn-unsolicited { type boolean; default "false"; description "Learn new entries from any received NA message"; } leaf proactive-refresh { type boolean; default "false"; description "Send a single refresh message with no retries 30 seconds prior to entry timeout"; } leaf local-proxy-arp { type boolean; default "false"; description "Enable local proxy ARP on interface"; } leaf remote-proxy-arp { type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Proxy ARP policy name"; } container limit { description "Enter the limit context"; leaf max-entries { type types-router:ipv4-neighbor-limit; description "Maximum number of entries that can be learned"; } leaf log-only { type boolean; default "false"; description "Apply the limit to log entries only"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message"; } } // container limit container static-neighbor-unnumbered { presence "Enter the 'static-neighbor-unnumbered' context"; description "Enable the static-neighbor-unnumbered context"; leaf mac-address { type yang:mac-address; description "Media-dependent physical address"; } } // container static-neighbor-unnumbered list static-neighbor { key "ipv4-address"; description "Enter the static-neighbor list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "IPv4 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; description "Media-dependent physical address"; } } // list static-neighbor } // container neighbor-discovery list vrrp { key "virtual-router-id"; description "Enter the vrrp list instance"; leaf virtual-router-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..255"; } } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Password for simple text authentication"; } leaf-list backup { type types-sros:ipv4-unicast-address; max-elements 16; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "1..2559"; } units "deciseconds"; default "10"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "false"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type uint32 { range "1..9999"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ssh-reply { type boolean; default "false"; description "Allow non-owner master to reply to SSH requests"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type types-sros:named-item; description "Operational group name associated with VRRP"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-address; sros-ext:immutable; description "Destination IP address to be used for BFD session"; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Name of interface running BFD"; } } // container bfd-liveness } // list vrrp } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf qos-route-lookup { type types-router:qos-route-lookup; description "Perform QoS Route lookup"; } leaf forward-ipv4-packets { type boolean; default "false"; description "Forward unencapsulated IPv4 packets"; } leaf tcp-mss { type types-router:ipv6-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf duplicate-address-detection { type boolean; default "true"; description "Enable/disable Duplicate Address Detection."; } leaf local-dhcp-server { type types-sros:named-item; description "DHCP server for the interface"; } container icmp6 { description "Enter the icmp6 context"; container packet-too-big { description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of packet-too-big messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of packet-too-big messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit packet-too-big messages"; } } // container packet-too-big container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of param-problem messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of parameter-problem messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit parameter problem messages"; } } // container param-problem container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of redirect messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit redirect messages"; } } // container redirects container time-exceeded { description "Enter the time-exceeded context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the time-exceeded messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of time-exceeded messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit time-exceeded messages"; } } // container time-exceeded container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of unreachable messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit unreachable messages"; } } // container unreachables } // container icmp6 container link-local-address { description "Enter the link-local-address context"; leaf address { type types-sros:ipv6-address; description "Link-local IPv6 address of this router interface"; } leaf duplicate-address-detection { type boolean; default "true"; description "Enable/disable Duplicate Address Detection."; } } // container link-local-address container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "IPv6 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..128"; } description "IPv6 address prefix length"; } leaf eui-64 { type boolean; sros-ext:immutable; default "false"; description "Form complete IPv6 address from supplied prefix and 64-bit interface identifier"; } leaf duplicate-address-detection { type boolean; sros-ext:immutable; default "true"; description "Enable/disable Duplicate Address Detection."; } leaf primary-preference { type uint32 { range "1..4294967295"; } description "Index assigned to the IPv6 address of the interface"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "Track the state of the SRRP instance on this IP address"; } } // list address container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf reachable-time { type types-router:neighbor-discovery-reachable-time; description "Timer for neighbor reachability detection"; } leaf stale-time { type types-router:neighbor-discovery-stale-time; description "Time during which a neighbor discovery cache entry remains stale"; } leaf learn-unsolicited { type types-router:ipv6-address-type-selection; description "Type of entries learned from unsolicited NA messages"; } leaf proactive-refresh { type types-router:ipv6-address-type-selection; description "Neighbor entries to be refreshed proactively"; } leaf local-proxy-nd { type boolean; default "false"; description "Enable neighbor discovery on interface"; } leaf-list proxy-nd-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Name of the proxy Neighbor Discovery policies for the interface"; } container secure-nd { description "Enter the secure-nd context"; leaf allow-unsecured-msgs { type boolean; default "true"; description "Accept unsecured messages"; } leaf public-key-min-bits { type uint32 { range "512..1024"; } default "1024"; description "Minimum acceptable key length for public keys"; } leaf security-parameter { type uint32 { range "0..1"; } default "1"; description "Security parameter in the generation of a cryptographical address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of secure neighbor discovery"; } } // container secure-nd container limit { description "Enter the limit context"; leaf max-entries { type types-router:ipv6-neighbor-limit; description "Maximum number of entries that can be learned on an IP interface"; } leaf log-only { type boolean; default "false"; description "Log warning messages at threshold or when limit is exceeded, however entries are learned above limit"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message to be sent"; } } // container limit list static-neighbor { key "ipv6-address"; description "Enter the static-neighbor list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "IPv6 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; description "Media-dependent physical address"; } } // list static-neighbor } // container neighbor-discovery list vrrp { key "virtual-router-id"; max-elements 1; description "Enter the vrrp list instance"; leaf virtual-router-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..255"; } } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf-list backup { type types-sros:ipv6-address; max-elements 4; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "10..4095"; } units "centiseconds"; default "100"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "true"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type uint32 { range "1..9999"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type types-sros:named-item; description "Operational group name associated with VRRP"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv6-address; sros-ext:immutable; description "ip-address."; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Name of interface running BFD"; } } // container bfd-liveness } // list vrrp } // container ipv6 container ip-tunnel { description "Enter the ip-tunnel context"; leaf remote-ip { type types-sros:ipv4-unicast-address; description "IP address of the remote end of the IP tunnel"; } } // container ip-tunnel container qos { description "Enter the qos context"; leaf network-policy { type types-qos:network-policy-name; description "Network policy name associated with a network interface"; } leaf egress-port-redirect-group { type types-sros:named-item; description "QoS queue group name"; } leaf egress-instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress queue group for this interface"; } leaf ingress-fp-redirect-group { type types-sros:named-item; description "Forwarding-plane queue group policy for this interface"; } leaf ingress-instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress queue group for this interface"; } } // container qos container if-attribute { description "Enter the if-attribute context"; leaf-list admin-group { type types-sros:named-item; max-elements 32; description "Names of the admin group memberships of the interface"; } list srlg-group { key "name"; description "Add a list entry for srlg-group"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Shared Risk Link Group name"; } } // list srlg-group container delay { description "Enter the delay context"; leaf static { type int32 { range "1..16777214"; } units "microseconds"; description "Unidirectional link delay"; } } // container delay } // container if-attribute container untrusted { presence "Enter the 'untrusted' context"; description "Enable the untrusted context"; leaf default-forwarding { type types-router:selective-ilm-default-forwarding; default "forward"; description "Configure the default action for Selective ILM (Incoming Label Map)."; } } // container untrusted container network-domains { description "Enter the network-domains context"; list network-domain { key "domain-name"; max-elements 5; description "Add a list entry for network-domain"; leaf domain-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Specifies the network-domain name."; } } // list network-domain } // container network-domains } // list interface container ipv6 { description "Enter the ipv6 context"; container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf reachable-time { type types-router:neighbor-discovery-reachable-time; default "30"; description "Timer for neighbor reachability detection"; } leaf stale-time { type types-router:neighbor-discovery-stale-time; default "14400"; description "Neighbor discovery cache entry stale time"; } } // container neighbor-discovery container router-advertisement { description "Enter the router-advertisement context"; container dns-options { presence "Enter the 'dns-options' context"; description "Enable the dns-options context"; leaf rdnss-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type int32 { range "0|4..3600"; } } units "seconds"; default "infinite"; description "Maximum time over which the RDNSS address is valid"; } leaf-list server { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "Router advertisements that are forwarded to servers"; } } // container dns-options list interface { key "ip-int-name"; description "Enter the interface list instance"; leaf ip-int-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name"; } leaf current-hop-limit { type uint16 { range "0..255"; } default "64"; description "Hop limit to advertise in router advertisement messages"; } leaf managed-configuration { type boolean; default "false"; description "Set the managed address configuration flag"; } leaf max-advertisement-interval { type uint32 { range "4..1800"; } units "seconds"; default "600"; description "Maximum time between sending router advertisement msgs"; } leaf min-advertisement-interval { type uint32 { range "3..1350"; } units "seconds"; default "200"; description "Minimum time between sending router advertisement msgs"; } leaf mtu { type uint32 { range "1280..9800"; } description "MTU for sending packets to the router"; } leaf other-stateful-configuration { type boolean; default "false"; description "Set the other configuration flag"; } leaf reachable-time { type uint32 { range "0..3600000"; } units "milliseconds"; default "0"; description "Time the router is reachable by other hosts or nodes"; } leaf retransmit-time { type uint32 { range "0..1800000"; } units "milliseconds"; default "0"; description "Time to advertise ICMPv6 ND router advertisement msgs"; } leaf router-lifetime { type uint32 { range "0|4..9000"; } units "seconds"; default "1800"; description "Lifetime value in ICMPv6 ND router advertisement msgs"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf use-virtual-mac { type boolean; default "false"; description "Send router advert msg using VRRP virtual MAC addr"; } container dns-options { presence "Enter the 'dns-options' context"; description "Enable the dns-options context"; leaf include-rdnss { type boolean; default "true"; description "Include the RDNSS option in the router advertisement"; } leaf rdnss-lifetime { type union { type int32 { range "0|4..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Maximum time over which the RDNSS address 25 is valid"; } leaf-list server { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "Router advertisements that are forwarded to servers"; } } // container dns-options list prefix { key "ipv6-prefix"; max-elements 254; description "Enter the prefix list instance"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "IPv6 address prefix"; } leaf autonomous { type boolean; default "true"; description "Set the autonomous flag value"; } leaf on-link { type boolean; default "true"; description "Use prefix for on-link determination"; } leaf preferred-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type uint32 { range "0..4294967294"; } } units "seconds"; default "604800"; description "Remaining time that the prefix remains preferred"; } leaf valid-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type uint32 { range "0..4294967294"; } } units "seconds"; default "2592000"; description "Remaining time in which the prefix is still valid"; } } // list prefix } // list interface } // container router-advertisement } // container ipv6 container isa-service-chaining { presence "Enter the 'isa-service-chaining' context"; description "Enable the isa-service-chaining context"; list nat-group { key "id"; description "Add a list entry for nat-group"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4"; } } description "ISA NAT group/ISA WLAN GW group ID for the EVPN pools"; } } // list nat-group container vxlan-vtep-range { presence "Enter the 'vxlan-vtep-range' context"; description "Enable the vxlan-vtep-range context"; leaf start { type types-sros:ip-unicast-without-local-address; description "Start address of the VXLAN VTEP range"; } leaf end { type types-sros:ip-unicast-without-local-address; description "End address of the VXLAN VTEP range"; } } // container vxlan-vtep-range } // container isa-service-chaining container mpls-labels { description "Enter the mpls-labels context"; leaf bgp-labels-hold-timer { type uint32 { range "0..255"; } default "0"; description "BGP labels hold timer for the ingress router"; } leaf static-label-range { type uint32 { range "0..1048544"; } default "18400"; description "Static label range on the ingress router"; } container sr-labels { description "Enter the sr-labels context"; leaf start { type types-sros:mpls-label; description "Start label value for the SRGB"; } leaf end { type types-sros:mpls-label; description "End label for the SRGB"; } } // container sr-labels list reserved-label-block { key "label-block-name"; max-elements 16; description "Enter the reserved-label-block list instance"; leaf start-label { type uint32 { range "32..1048575"; } description "Start label value for the reserved label block"; } leaf end-label { type uint32 { range "32..1048575"; } description "End label for the reserved label block"; } leaf label-block-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Name for the reserved label block"; } } // list reserved-label-block } // container mpls-labels container mtrace2 { description "Enter the mtrace2 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multicast path tracing"; } leaf udp-port { type uint32 { range "1024..49151"; } default "5000"; description "Destination UDP port for mstat2|mtrace2 test, or unsolicited mstat2|mtrace2 packets"; } } // container mtrace2 container sgt-qos { description "Enter the sgt-qos context"; container dscp { description "Enter the dscp context"; list application { key "dscp-app-name"; description "Enter the application list instance"; leaf dscp-app-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:dscp-app-name; } description "DSCP application identifier on the NOKIA SR OS router that generates control traffic over IP"; } leaf dscp { type union { type types-qos:dscp-name; type int32 { range "0..63"; } } description "DSCP value to the traffic generated by this application"; } } // list application list dscp-map { key "dscp-name"; description "Enter the dscp-map list instance"; leaf dscp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:dscp-name; } description "DSCP name mapped to forwarding class"; } leaf fc { type types-sros:fc-name; description "Value for the forwarding class for this mapping"; } } // list dscp-map } // container dscp container dot1p { description "Enter the dot1p context"; list application { key "dot1p-app-name"; description "Enter the application list instance"; leaf dot1p-app-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:dot1p-app-name; } description "Dot1p application identifier on the NOKIA SR OS router that generates control traffic over IP"; } leaf dot1p { type union { type types-sros:fc-name; type int32 { range "0..7"; } } description "Dot1p value to the traffic generated by this application"; } } // list application } // container dot1p } // container sgt-qos container tunnel-interface { description "Enter the tunnel-interface context"; list rsvp-p2mp-root { key "lsp-name"; description "Enter the rsvp-p2mp-root list instance"; leaf lsp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "LSP name of the P2MP RSVP tunnel interface"; } leaf description { type types-sros:description; description "Text description"; } } // list rsvp-p2mp-root list rsvp-p2mp-leaf { key "lsp-name sender-address"; description "Enter the rsvp-p2mp-leaf list instance"; leaf lsp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "LSP name of the P2MP RSVP tunnel interface"; } leaf sender-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Address of a sender for the P2MP RSVP tunnel interface instance"; } leaf description { type types-sros:description; description "Text description"; } } // list rsvp-p2mp-leaf list ldp-p2mp-root { key "p2mp-id sender-address"; description "Enter the ldp-p2mp-root list instance"; leaf p2mp-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8192"; } } description "Identifier used for signaling MLDP P2MP LSP"; } leaf sender-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Address of an LDP sender for the P2MP RSVP tunnel interface instance"; } leaf description { type types-sros:description; description "Text description"; } } // list ldp-p2mp-root list ldp-p2mp-leaf { key "p2mp-id sender-address"; description "Enter the ldp-p2mp-leaf list instance"; leaf p2mp-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32; } description "Identifier used for signaling MLDP P2MP LSP"; } leaf sender-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Address of an LDP sender for the P2MP RSVP tunnel interface instance"; } leaf description { type types-sros:description; description "Text description"; } } // list ldp-p2mp-leaf } // container tunnel-interface container lsp-bfd { description "Enter the lsp-bfd context"; leaf bfd-sessions { type uint32 { range "1..max"; } description "Maximum number of the dynamically created LSP BFD session tail-ends"; } container tail-end { description "Enter the tail-end context"; leaf transmit-interval { type uint32 { range "100..1000"; } units "milliseconds"; default "1000"; description "The BFD transmit interval for LSP tail-end"; } leaf receive-interval { type uint32 { range "100..1000"; } units "milliseconds"; default "1000"; description "The BFD receive interval for LSP tail-end"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "The number of consecutive BFD messages that must be missed from the peer before the BFD session state is changed to down and the upper level protocols are notified of the fault"; } } // container tail-end } // container lsp-bfd container ttl-propagate { description "Enter the ttl-propagate context"; leaf label-route-local { type types-router:ttl-propagate-type; default "none"; description "TTL propagation from IP header into label stack for local packets"; } leaf label-route-transit { type types-router:ttl-propagate-type; default "none"; description "TTL propagation from IP header into label stack for transit packets"; } leaf lsr-label-route { type types-router:ttl-propagate-type; default "none"; description "TTL propagation from IP header into label stack"; } leaf vprn-local { type types-router:router-vprn-ttl-propagate; default "vc-only"; description "TTL propagation from IP header into label stack for VPRN local packets"; } leaf vprn-transit { type types-router:router-vprn-ttl-propagate; default "vc-only"; description "TTL propagation from IP header into label stack for VPRN transit packets"; } } // container ttl-propagate container flowspec { description "Enter the flowspec context"; leaf ip-filter-max-size { type uint32 { range "0..262143"; } default "512"; description "Maximum number of flowspec rule entries in IPv4 filter"; } leaf ipv6-filter-max-size { type uint32 { range "0..262143"; } default "512"; description "Maximum number of flowspec rule entries in IPv6 filter"; } leaf filter-cam-type { type enumeration { enum "normal" { value 0; } enum "packet-length" { value 2; } } default "normal"; description "Filter policy type for FlowSpec embedding"; } } // container flowspec container pcp { description "Enter the pcp context"; list server { key "name"; max-elements 8; description "Enter the server list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "PCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this PCP server"; } leaf description { type types-sros:description; description "Text description"; } leaf dual-stack-lite-address { type types-sros:ipv6-unicast-address; description "Inside Dual Stack Lite AFTR address"; } leaf fwd-inside-router { type string; description "PCP forwarding inside virtual router instance"; } leaf policy { type types-sros:named-item; description "PCP server policy"; } list interface { key "name"; max-elements 32; description "Add a list entry for interface"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name"; } } // list interface } // list server } // container pcp container network-domains { description "Enter the network-domains context"; list network-domain { key "domain-name"; max-elements 5; description "Enter the network-domain list instance"; leaf domain-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Specifies the network-domain name."; } leaf description { type types-sros:description; description "Text description"; } } // list network-domain } // container network-domains container bgp { presence "Enter the 'bgp' context"; description "Enable the bgp context"; leaf description { type types-sros:description; description "Text description"; } leaf connect-retry { type int32 { range "1..65535"; } default "120"; description "BGP connect retry timer value"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP instance"; } leaf keepalive { type int32 { range "0..21845"; } default "30"; description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; default "false"; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type uint32; default "100"; description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; default "ignore-loop"; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } default "0"; description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type uint32 { range "384..9746"; } description "TCP maximum segment size override"; } leaf selective-label-ipv4-install { type boolean; default "false"; description "Enable/Disable selective download for bgp label-ipv4 routes."; } leaf min-route-advertisement { type int16 { range "1..255"; } default "30"; description "Minimum time before a prefix can be advertised to peer"; } leaf aggregator-id-zero { type boolean; default "false"; description "Set router ID in the BGP AGGREGATOR attribute to 0"; } leaf preference { type uint32 { range "1..255"; } default "170"; description "Route preference for routes learned from all peers"; } leaf block-prefix-sid { type boolean; default "false"; description "Block the prefix SID attribute"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; default "true"; description "Allow client reflection of routes by route reflector"; } leaf vpn-apply-export { type boolean; default "false"; description "Apply base-instance BGP export policies to VPN routes"; } leaf vpn-apply-import { type boolean; default "false"; description "Apply base-instance import route policies to VPN routes"; } leaf asn-4-byte { type boolean; default "true"; description "Advertise support for 4-byte ASNs"; } leaf path-mtu-discovery { type boolean; default "false"; description "Enable Path MTU Discovery"; } leaf enforce-first-as { type boolean; default "false"; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; default "false"; description "Send BGP updates as soon as session comes up"; } leaf router-id { type types-sros:ipv4-address; description "Router ID for the BGP instance in the AS"; } leaf inter-as-vpn { type boolean; default "false"; description "Allow advertisement of VPN routes across AS boundaries"; } leaf purge-timer { type uint32 { range "1..60"; } default "10"; description "Maximum time before stale routes are purged"; } leaf route-table-install { type boolean; default "true"; description "Install all IPv4 and IPv6 BGP routes in FIB and RTM"; } leaf ibgp-multipath { type boolean; default "false"; description "Enable IBGP multipath load balancing"; } leaf rr-vpn-forwarding { type boolean; default "false"; description "Allow route reflector to forward VPN-IP routes"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf fast-external-failover { type boolean; default "true"; description "Drop external BGP session immediately when link fails"; } leaf advertise-inactive { type boolean; default "false"; description "Advertise inactive BGP routes to peers"; } leaf authentication-keychain { type types-sros:named-item; description "TCP authentication keychain for the session"; } leaf mvpn-vrf-import-subtype-new { type boolean; default "false"; description "Encode the IANA value of 0x010b in advertised routes"; } leaf rapid-withdrawal { type boolean; default "false"; description "Send BGP withdrawal UPDATE messages immediately"; } leaf mp-bgp-keep { type boolean; default "false"; description "Keep rejected VPN-IP routes in RIB-IN"; } leaf peer-ip-tracking { type boolean; default "false"; description "Enable BGP peer tracking"; } leaf split-horizon { type boolean; default "false"; description "Prevent routes being reflected back to best-route peer"; } leaf override-tunnel-elc { type boolean; default "false"; description "Enable entropy label capability on BGP tunnels"; } leaf link-state-route-export { type boolean; default "false"; description "Allow the export of the TED NLRI database"; } leaf link-state-route-import { type boolean; default "false"; description "Allow the import of the TED NLRI database"; } leaf third-party-nexthop { type boolean; default "false"; description "Apply third-party next-hop processing to EBGP peers"; } leaf dynamic-neighbor-limit { type uint32 { range "1..8192"; } description "Max dynamic BGP sessions to accept from remote peers"; } leaf label-preference { type uint32 { range "1..255"; } default "170"; description "Route preference for routes from labeled-unicast peers"; } leaf peer-tracking-policy { type types-sros:named-item-64; description "Policy for BGP peer tracking on router instance"; } leaf def-recv-evpn-encap { type types-bgp:encap; default "mpls"; description "Default EVPN encapsulation type"; } leaf sr-policy-import { type boolean; default "false"; description "Import all segment routing policies into the BGP RIB"; } container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } default "90"; description "Maximum time BGP waits between successive messages"; } leaf minimum-hold-time { type int32 { range "0|3..65535"; } default "0"; description "Minimum hold time between successive messages"; } } // container hold-time container family { description "Enter the family context"; leaf ipv4 { type boolean; default "true"; description "Advertise MP-BGP support for the IPv4 address family"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for IPv4 VPN address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf vpn-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for IPv6 VPN address family"; } leaf l2-vpn { type boolean; default "false"; description "Advertise MP-BGP support for the L2-VPN address family"; } leaf mvpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 MCAST VPN address family"; } leaf mdt-safi { type boolean; default "false"; description "Advertise MP-BGP support for MDT-SAFI address family"; } leaf ms-pw { type boolean; default "false"; description "Advertise support for multi-segment PW address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf route-target { type boolean; default "false"; description "Advertise MP-BGP support for RT constraint routes"; } leaf mcast-vpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 VPN MCAST address family"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 MCAST VPN address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf evpn { type boolean; default "false"; description "Advertise MP-BGP support for the EVPN address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise support for the label-IPv6 address family"; } leaf bgp-ls { type boolean; default "false"; description "Advertise MP-BGP support for the BGP-LS address family"; } leaf mcast-vpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 VPN MCAST address family"; } leaf sr-policy-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv4 family"; } leaf sr-policy-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv6 family"; } } // container family container label-allocation { description "Enter the label-allocation context"; container label-ipv6 { description "Enter the label-ipv6 context"; leaf explicit-null { type boolean; default "true"; description "Apply advertised label and associated programming rules"; } } // container label-ipv6 } // container label-allocation container send-default { description "Enter the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable IPv4 family type"; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type types-sros:named-item-64; description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } default "0"; description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } default "0"; description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } default "0"; description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } default "0"; description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if AS-PATH contains eBGP peer's ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } leaf orr-location { type uint32 { range "1..255"; } description "Optimal route reflection location for the cluster"; } leaf allow-local-fallback { type boolean; default "false"; description "Allow fallback to RR topology location for ORR"; } } // container cluster container ebgp-default-reject-policy { description "Enter the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global AS when advertising routes to BGP peer"; } } // container local-as container best-path-selection { description "Enter the best-path-selection context"; leaf compare-origin-validation-state { type boolean; default "false"; description "Compare RPKI origin validation state of usable routes"; } leaf deterministic-med { type boolean; default "false"; description "Group paths based on AS before MED attribute comparison"; } leaf origin-invalid-unusable { type boolean; default "false"; description "Deem invalid routes unusable for best-path selection"; } leaf ignore-nh-metric { type boolean; default "false"; description "Ignore next-hop distance in best path selection"; } container always-compare-med { description "Enter the always-compare-med context"; leaf med-value { type types-bgp:med-value; default "off"; description "Action for a missing MED attribute"; } leaf strict-as { type boolean; default "true"; description "Compare MED only for routes from same neighbor AS"; } } // container always-compare-med container as-path-ignore { description "Enter the as-path-ignore context"; leaf ipv4 { type boolean; default "false"; description "Ignore AS path length for unlabeled unicast IPv4 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Ignore AS path length for VPN IPv4 (SAFI 128) routes"; } leaf ipv6 { type boolean; default "false"; description "Ignore AS path length for unlabeled unicast IPv6 routes"; } leaf mcast-ipv4 { type boolean; default "false"; description "Ignore AS path length for IPv4 multicast routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Ignore AS path length for VPN IPv6 (SAFI 128) routes"; } leaf l2-vpn { type boolean; default "false"; description "Ignore AS path length for L2-VPN routes"; } leaf mvpn-ipv4 { type boolean; default "false"; description "Ignore AS path length for IPv4 MVPN routes"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Ignore AS path length for IPv6 MVPN routes"; } leaf mcast-ipv6 { type boolean; default "false"; description "Ignore AS path length for IPv6 multicast routes"; } leaf label-ipv4 { type boolean; default "false"; description "Ignore AS path length for labeled-unicast IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Ignore AS path length for labeled-unicast IPv6 routes"; } } // container as-path-ignore container ignore-router-id { presence "Enter the 'ignore-router-id' context"; description "Enable the ignore-router-id context"; container include-internal { description "Enter the include-internal context"; leaf mvpn-ipv4 { type boolean; default "false"; description "Ignore the router IDs of MVPN-IPv4 routes"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Ignore the router IDs of MVPN-IPv6 routes"; } } // container include-internal } // container ignore-router-id container ebgp-ibgp-equal { description "Enter the ebgp-ibgp-equal context"; leaf ipv4 { type boolean; default "false"; description "Consider EBGP and IBGP IPv4 routes equal"; } leaf ipv6 { type boolean; default "false"; description "Consider EBGP and IBGP IPv6 routes equal"; } leaf vpn-ipv4 { type boolean; default "false"; description "Consider EBGP and IBGP VPN-IPv4 routes equal"; } leaf vpn-ipv6 { type boolean; default "false"; description "Consider EBGP and IBGP VPN-IPv6 routes equal"; } leaf label-ipv4 { type boolean; default "false"; description "Consider EBGP and IBGP label-IPv4 routes equal"; } leaf label-ipv6 { type boolean; default "false"; description "Consider EBGP and IBGP label-IPv6 routes equal"; } } // container ebgp-ibgp-equal } // container best-path-selection container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; default "true"; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; default "true"; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; default "true"; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; default "false"; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container rapid-update { description "Enter the rapid-update context"; leaf vpn-ipv4 { type boolean; default "false"; description "Include VPN IPv4 address family routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Include VPN IPv6 address family routes"; } leaf l2-vpn { type boolean; default "false"; description "Include L2 VPN address family routes"; } leaf mvpn-ipv4 { type boolean; default "false"; description "Include MVPN IPv4 address family routes"; } leaf mdt-safi { type boolean; default "false"; description "Include MDT SAFI address family routes"; } leaf mcast-vpn-ipv4 { type boolean; default "false"; description "Include multicast VPN IPv4 address family routes"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Include MVPN IPv6 address family routes"; } leaf evpn { type boolean; default "false"; description "Include EVPN address family routes"; } leaf label-ipv4 { type boolean; default "false"; description "Include labeled IPv4 address family routes"; } leaf label-ipv6 { type boolean; default "false"; description "Include labeled IPv6 address family routes"; } leaf mcast-vpn-ipv6 { type boolean; default "false"; description "Include multicast VPN IPv6 address family routes"; } } // container rapid-update container advertise-external { description "Enter the advertise-external context"; leaf ipv4 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Enable support for labeled-unicast IPv6 routes"; } } // container advertise-external container backup-path { description "Enter the backup-path context"; leaf ipv4 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Enable support for labeled-unicast IPv6 routes"; } } // container backup-path container flowspec { description "Enter the flowspec context"; leaf validate-dest-prefix { type boolean; default "false"; description "Validate destination prefix in FlowSpec-IPv4/IPv6 route"; } leaf validate-redirect-ip { type boolean; default "false"; description "Validate the redirect-to-IPv4 action in FlowSpec route"; } } // container flowspec container neighbor-trust { description "Enter the neighbor-trust context"; leaf vpn-ipv4 { type boolean; default "false"; description "Enable inter-AS label security for the VPN-IPv4 family"; } leaf vpn-ipv6 { type boolean; default "false"; description "Enable inter-AS label security for the VPN-IPv6 family"; } } // container neighbor-trust container convergence { description "Enter the convergence context"; leaf min-wait-to-advertise { type uint32 { range "0..3600"; } default "0"; description "Minimum wait time before advertising routes"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } } } description "Address family for which convergence selection applies"; } leaf max-wait-to-advertise { type uint32 { range "0..3600"; } default "0"; description "Maximum wait time before advertising routes"; } } // list family } // container convergence container add-paths { presence "Enter the 'add-paths' context"; description "Enable the add-paths context"; container ipv4 { description "Enter the ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Max paths advertised per unlabeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per unlabeled IPv4 prefix"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Max paths advertised per unlabeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per unlabeled IPv6 prefix"; } } // container ipv6 container label-ipv4 { description "Enter the label-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Max paths advertised per labeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv4 prefix"; } } // container label-ipv4 container label-ipv6 { description "Enter the label-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Max paths advertised per labeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv6 prefix"; } } // container label-ipv6 container vpn-ipv4 { description "Enter the vpn-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths advertised per VPN-IPv4 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv4 prefix"; } } // container vpn-ipv4 container vpn-ipv6 { description "Enter the vpn-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths advertised per VPN-IPv6 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv6 prefix"; } } // container vpn-ipv6 container mvpn-ipv4 { description "Enter the mvpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths advertised per multicast VPN IPv4 NRLI"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per multicast VPN IPv4 NRLI"; } } // container mvpn-ipv4 container mvpn-ipv6 { description "Enter the mvpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths advertised per multicast VPN IPv6 NRLI"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per multicast VPN IPv6 NRLI"; } } // container mvpn-ipv6 container mcast-vpn-ipv4 { description "Enter the mcast-vpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths advertised per multicast IPv4 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv4 VPN prefix"; } } // container mcast-vpn-ipv4 container mcast-vpn-ipv6 { description "Enter the mcast-vpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths advertised per multicast IPv6 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv6 VPN prefix"; } } // container mcast-vpn-ipv6 } // container add-paths container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "BGP import policy name"; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "List of export policy names"; } } // container export container extended-nh-encoding { description "Enter the extended-nh-encoding context"; leaf vpn-ipv4 { type boolean; default "false"; description "Advertise encoding capability for VPN-IPv4 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise encoding capability for label-IPv4 routes"; } leaf ipv4 { type boolean; default "false"; description "Advertise encoding capability for IPv4 routes"; } } // container extended-nh-encoding container advertise-ipv6-next-hops { description "Enter the advertise-ipv6-next-hops context"; leaf vpn-ipv6 { type boolean; default "false"; description "Advertise VPN IPv6 route with IPv6 next-hop address"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise label IPv6 route with IPv6 next-hop address"; } leaf evpn { type boolean; default "false"; description "Advertise EVPN route with IPv6 next-hop address"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise VPN IPv4 route with IPv6 next-hop address"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise label IPv4 route with IPv6 next-hop address"; } leaf ipv4 { type boolean; default "false"; description "Advertise IPv4 route with IPv6 next-hop address"; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "120"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform Graceful Restart procedures"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-bgp:llgr-family-identifiers; } description "Family type for family-specific LLGR configuration"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } } // list family } // container long-lived } // container graceful-restart container optimal-route-reflection { description "Enter the optimal-route-reflection context"; container spf-wait { description "Enter the spf-wait context"; leaf max-wait { type uint32 { range "1..600"; } default "60"; description "Maximum interval between consecutive SPF calculations"; } leaf initial-wait { type uint32 { range "1..300"; } default "5"; description "Initial SPF calculation delay after a topology change"; } leaf second-wait { type uint32 { range "1..300"; } default "15"; description "Delay between first and second SPF calculation"; } } // container spf-wait list location { key "location-id"; description "Enter the location list instance"; leaf location-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "Optimal route reflection location ID"; } leaf primary-ip-address { type types-sros:ipv4-unicast-address; description "Primary IPv4 address of the reference location for ORR"; } leaf secondary-ip-address { type types-sros:ipv4-unicast-address; description "Secondary IPv4 address of reference location for ORR"; } leaf tertiary-ip-address { type types-sros:ipv4-unicast-address; description "Tertiary IPv4 address of the reference location for ORR"; } leaf primary-ipv6-address { type types-sros:ipv6-unicast-address; description "Primary IPv6 address of the reference location for ORR"; } leaf secondary-ipv6-address { type types-sros:ipv6-unicast-address; description "Secondary IPv6 address of reference location for ORR"; } leaf tertiary-ipv6-address { type types-sros:ipv6-unicast-address; description "Tertiary IPv6 address of the reference location for ORR"; } } // list location } // container optimal-route-reflection container next-hop-resolution { description "Enter the next-hop-resolution context"; leaf use-bgp-routes { type boolean; default "false"; description "Use BGP routes to resolve BGP next hops"; } leaf weighted-ecmp { type boolean; default "false"; description "Use weighted ECMP for next-hop tunnel selection for 6PE"; } leaf allow-unresolved-leaking { type boolean; default "false"; description "Allow unresolved BGP routes to be leaked to VPRN routes"; } leaf policy { type types-sros:named-item-64; description "Policy that filters routes for BGP next-hop resolution"; } leaf vpn-family-policy { type types-sros:named-item-64; description "Policy to filter routes for next-hop resolution"; } container shortcut-tunnel { description "Enter the shortcut-tunnel context"; list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } } } description "Address family type for shortcut tunnel selection"; } leaf resolution { type enumeration { enum "none" { value 0; } enum "filter" { value 1; } enum "any" { value 2; } } default "none"; description "Resolution mode for binding BGP routes to tunnel types"; } leaf disallow-igp { type boolean; default "false"; description "Do not perform route table lookup to resolve BGP route"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Consider only LSPs with an admin-tag for next hop"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable flexible algorithm fallback"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; default "false"; description "Use BGP tunneling for next-hop resolution"; } leaf ldp { type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // list family } // container shortcut-tunnel container labeled-routes { description "Enter the labeled-routes context"; leaf allow-static { type boolean; default "false"; description "Allow static routes to resolve BGP next-hop"; } leaf rr-use-route-table { type boolean; default "false"; description "Use RTM to resolve BGP next-hop if TTM resolution fails"; } container use-bgp-routes { description "Enter the use-bgp-routes context"; leaf label-ipv6-explicit-null { type boolean; default "false"; description "Use BGP routes to resolve address family routes"; } } // container use-bgp-routes container transport-tunnel { description "Enter the transport-tunnel context"; list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "vpn" { value 2; } enum "label-ipv4" { value 17; } enum "label-ipv6" { value 18; } } } description "Address family type for LLGR"; } leaf resolution { type enumeration { enum "none" { value 0; } enum "filter" { value 1; } enum "any" { value 2; } } default "filter"; description "Resolution mode for binding BGP routes to tunnel types"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Consider only LSPs with an admin-tag for next hop"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable flexible algorithm fallback"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; description "Use BGP tunneling for next-hop resolution"; } leaf ldp { type boolean; default "true"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // list family } // container transport-tunnel } // container labeled-routes } // container next-hop-resolution container multipath { description "Enter the multipath context"; leaf max-paths { type types-router:ip-ecmp; default "1"; description "Maximum multipaths per prefix"; } leaf ebgp { type types-router:ip-ecmp; description "Maximum multipaths per prefix for EBGP learned routes"; } leaf ibgp { type types-router:ip-ecmp; description "Maximum multipaths per prefix for IBGP learned routes"; } leaf restrict { type types-bgp:restrict; default "same-as-path-length"; description "AS path restriction for the non-best path"; } leaf unequal-cost { type boolean; default "false"; description "Ignore differences in the next-hop cost for multipath"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } enum "label-ipv4" { value 17; } enum "label-ipv6" { value 18; } } } description "Address family for which multipath selection applies"; } leaf max-paths { type types-router:ip-ecmp; description "Maximum multipaths per prefix or NLRI"; } leaf ebgp { type types-router:ip-ecmp; description "Attribute ebgp-max-paths for multipath."; } leaf ibgp { type types-router:ip-ecmp; description "Attribute ibgp-max-paths for multipath."; } leaf restrict { type types-bgp:restrict; default "same-as-path-length"; description "AS path restriction for the non-best path"; } leaf unequal-cost { type boolean; default "false"; description "Ignore differences in the next-hop cost for multipath"; } } // list family } // container multipath list route-target-list { key "community-name"; description "Add a list entry for route-target-list"; leaf community-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Route target community name"; } } // list route-target-list container outbound-route-filtering { presence "Enter the 'outbound-route-filtering' context"; description "Enable the outbound-route-filtering context"; container extended-community { presence "Enter the 'extended-community' context"; description "Enable the extended-community context"; leaf accept-orf { type boolean; default "false"; description "Negotiate with peer to accept BGP ORF filters"; } container send-orf { presence "Enter the 'send-orf' context"; description "Enable the send-orf context"; list route-target { key "community-name"; description "Add a list entry for route-target"; leaf community-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Route target community name"; } } // list route-target } // container send-orf } // container extended-community } // container outbound-route-filtering container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "BMP monitoring station"; } } // list station } // container monitor container rib-management { description "Enter the rib-management context"; container ipv4 { description "Enter the ipv4 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type types-sros:named-item-64; description "Name of policy that controls route importation into RIB"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } } // container leak-import } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type types-sros:named-item-64; description "Name of policy that controls route importation into RIB"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } } // container leak-import } // container ipv6 container label-ipv4 { description "Enter the label-ipv4 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type types-sros:named-item-64; description "Name of policy that controls route importation into RIB"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } } // container leak-import } // container label-ipv4 container label-ipv6 { description "Enter the label-ipv6 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type types-sros:named-item-64; description "Name of policy that controls route importation into RIB"; } } // container route-table-import } // container label-ipv6 } // container rib-management container segment-routing { description "Enter the segment-routing context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing"; } container prefix-sid-range { presence "Enter the 'prefix-sid-range' context"; description "Enable the prefix-sid-range context"; choice type { case global { leaf global { type empty; description "Use global SR range"; } } case local { leaf start-label { type uint32 { range "0..524287"; } default "0"; description "Value for the local label starting offset"; } leaf max-index { type uint32 { range "0..524287"; } default "1"; description "Maximum local SID index"; } } } } // container prefix-sid-range } // container segment-routing list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "BGP peer group name"; } leaf description { type types-sros:description; description "Text description"; } leaf connect-retry { type int32 { range "1..65535"; } description "BGP connect retry timer value"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP group"; } leaf static-group { type boolean; default "true"; description "Use group for static peers"; } leaf keepalive { type int32 { range "0..21845"; } description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type union { type uint32 { range "384..9746"; } type enumeration { enum "ip-stack" { value 0; } } } description "TCP maximum segment size override"; } leaf selective-label-ipv4-install { type boolean; description "Enable/Disable selective download for bgp label-ipv4 routes."; } leaf min-route-advertisement { type int16 { range "1..255"; } description "Minimum time before a prefix can be advertised to peer"; } leaf aggregator-id-zero { type boolean; description "Set router ID in the BGP AGGREGATOR attribute to zero"; } leaf preference { type uint32 { range "1..255"; } description "Route preference for routes learned from all peers"; } leaf block-prefix-sid { type boolean; default "false"; description "Block the prefix SID attribute"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; description "Allow cluster RR to advertise routes to its clients"; } leaf vpn-apply-export { type boolean; description "Apply base-instance BGP export policies to VPN routes"; } leaf vpn-apply-import { type boolean; description "Apply base-instance BGP import policies to VPN routes"; } leaf as-override { type boolean; default "false"; description "Replace the peer's ASN with the local ASN in AS Path"; } leaf asn-4-byte { type boolean; description "Advertise the use of 4-byte ASNs"; } leaf path-mtu-discovery { type boolean; description "Enable Path MTU Discovery"; } leaf next-hop-self { type boolean; default "false"; description "Advertise routes with local address as next-hop address"; } leaf passive { type boolean; default "false"; description "Enable passive mode for BGP communication"; } leaf type { type types-bgp:peer-type; default "no-type"; description "BGP peer type"; } leaf peer-as { type uint32 { range "1..4294967295"; } description "Peer AS number"; } leaf capability-negotiation { type boolean; default "true"; description "Enable capability negotiation"; } leaf enforce-first-as { type boolean; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; description "Send BGP updates as soon as the session comes up"; } leaf local-address { type types-bgp:local-address; description "Local IP address used when communicating with BGP peers"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for an incoming BGP packet"; } leaf default-route-target { type boolean; default "false"; description "Send default RTC route (zero prefix length) to peers"; } leaf aigp { type boolean; default "false"; description "Add AIGP attribute to advertised routes"; } leaf advertise-inactive { type boolean; description "Advertise an inactive BGP route to peers"; } leaf authentication-keychain { type types-sros:named-item; description "TCP authentication keychain for the session"; } leaf bfd-liveness { type boolean; description "Enable BFD"; } leaf fast-external-failover { type boolean; description "Drop external BGP session immediately when link fails"; } leaf peer-ip-tracking { type boolean; description "Enable BGP peer tracking"; } leaf dynamic-neighbor-limit { type uint32 { range "1..8192"; } description "Maximum dynamic BGP sessions to accept from remote peer"; } leaf split-horizon { type boolean; description "Prevent routes being reflected back to best-route peer"; } leaf third-party-nexthop { type boolean; description "Apply third-party next-hop processing to EBGP peers"; } leaf label-preference { type uint32 { range "1..255"; } description "Route preference for routes from labeled-unicast peers"; } leaf def-recv-evpn-encap { type types-bgp:encap; description "Default EVPN encapsulation type"; } leaf multipath-eligible { type boolean; default "false"; description "Allow routes from group peers in multipath eligibility"; } container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } description "Maximum time BGP waits between successive messages"; } leaf minimum-hold-time { type int32 { range "0|3..65536"; } default "0"; description "Minimum hold time between successive messages"; } } // container hold-time container family { presence "Enter the 'family' context"; description "Enable the family context"; leaf ipv4 { type boolean; default "false"; description "Add support for the IPv4 address family"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for IPv4 VPN address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf vpn-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for IPv6 VPN address family"; } leaf l2-vpn { type boolean; default "false"; description "Advertise MP-BGP support for the L2-VPN address family"; } leaf mvpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 MCAST VPN address family"; } leaf mdt-safi { type boolean; default "false"; description "Advertise MP-BGP support for MDT-SAFI address family"; } leaf ms-pw { type boolean; default "false"; description "Advertise support for multi-segment PW address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf route-target { type boolean; default "false"; description "Advertise MP-BGP support for RT constraint routes"; } leaf mcast-vpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 VPN MCAST address family"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 MCAST VPN address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf evpn { type boolean; default "false"; description "Advertise MP-BGP support for the EVPN address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise support for the label-IPv6 address family"; } leaf bgp-ls { type boolean; default "false"; description "Advertise MP-BGP support for the BGP-LS address family"; } leaf mcast-vpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 VPN MCAST address family"; } leaf sr-policy-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv4 family"; } leaf sr-policy-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv6 family"; } } // container family container send-default { presence "Enter the 'send-default' context"; description "Enable the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type types-sros:named-item-64; description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if it is the same as the BGP peer ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } leaf orr-location { type uint32 { range "1..255"; } description "Optimal route reflection location for the cluster"; } leaf allow-local-fallback { type boolean; default "false"; description "Allow fallback to RR topology location"; } } // container cluster container ebgp-default-reject-policy { presence "Enter the 'ebgp-default-reject-policy' context"; description "Enable the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global ASN when advertising routes to BGP peer"; } } // container local-as container next-hop-unchanged { description "Enter the next-hop-unchanged context"; leaf label-ipv4 { type boolean; default "false"; description "Advertise label-IPv4 routes with unchanged BGP next hop"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise label-IPv6 routes with unchanged BGP next hop"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise VPN IPv4 routes with unchanged BGP next hop"; } leaf vpn-ipv6 { type boolean; default "false"; description "Advertise VPN IPv6 routes with unchanged BGP next hop"; } leaf evpn { type boolean; default "false"; description "Advertise EVPN routes with unchanged BGP next hop"; } } // container next-hop-unchanged container origin-validation { description "Enter the origin-validation context"; leaf ipv4 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Enable support for labeled-unicast IPv6 routes"; } } // container origin-validation container link-bandwidth { description "Enter the link-bandwidth context"; container accept-from-ebgp { description "Enter the accept-from-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container accept-from-ebgp container add-to-received-ebgp { description "Enter the add-to-received-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container add-to-received-ebgp container aggregate-used-paths { description "Enter the aggregate-used-paths context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container aggregate-used-paths container send-to-ebgp { description "Enter the send-to-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container send-to-ebgp } // container link-bandwidth container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each repeated session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container add-paths { presence "Enter the 'add-paths' context"; description "Enable the add-paths context"; container ipv4 { description "Enter the ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per unlabeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv4 prefix"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per unlabeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per IPv6 prefix"; } } // container ipv6 container label-ipv4 { description "Enter the label-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per labeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv4 prefix"; } } // container label-ipv4 container label-ipv6 { description "Enter the label-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per labeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv6 prefix"; } } // container label-ipv6 container vpn-ipv4 { description "Enter the vpn-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per VPN-IPv4 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv4 prefix"; } } // container vpn-ipv4 container vpn-ipv6 { description "Enter the vpn-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per VPN-IPv6 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv6 prefix"; } } // container vpn-ipv6 container mvpn-ipv4 { description "Enter the mvpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast VPN IPv4 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast VPN routes per IPv4 prefix"; } } // container mvpn-ipv4 container mvpn-ipv6 { description "Enter the mvpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast VPN IPv6 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast VPN routes per IPv6 prefix"; } } // container mvpn-ipv6 container mcast-vpn-ipv4 { description "Enter the mcast-vpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast IPv4 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv4 VPN prefix"; } } // container mcast-vpn-ipv4 container mcast-vpn-ipv6 { description "Enter the mcast-vpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast IPv6 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv6 VPN prefix"; } } // container mcast-vpn-ipv6 } // container add-paths container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "BGP import policy name"; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "BGP export policy name"; } } // container export container extended-nh-encoding { presence "Enter the 'extended-nh-encoding' context"; description "Enable the extended-nh-encoding context"; leaf vpn-ipv4 { type boolean; default "false"; description "Advertise encoding capability for VPN-IPv4 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise encoding capability for label-IPv4 routes"; } leaf ipv4 { type boolean; default "false"; description "Advertise encoding capability for IPv4 routes"; } } // container extended-nh-encoding container advertise-ipv6-next-hops { presence "Enter the 'advertise-ipv6-next-hops' context"; description "Enable the advertise-ipv6-next-hops context"; leaf vpn-ipv6 { type boolean; default "false"; description "Advertise VPN IPv6 route with IPv6 next-hop address"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise label IPv6 route with IPv6 next-hop address"; } leaf evpn { type boolean; default "false"; description "Advertise EVPN route with IPv6 next-hop address"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise VPN IPv4 route with IPv6 next-hop address"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise label IPv4 route with IPv6 next-hop address"; } leaf ipv4 { type boolean; default "false"; description "Advertise IPv4 route with IPv6 next-hop address"; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "300"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform graceful restart procedures after NOTIFICATION"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "Advertised long-lived stale time for LLGR routes"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-bgp:llgr-family-identifiers; } description "Family type for family-specific LLGR configuration"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777216"; } default "16777216"; description "Locally-configured stale routes override time"; } } // list family } // container long-lived } // container graceful-restart container outbound-route-filtering { presence "Enter the 'outbound-route-filtering' context"; description "Enable the outbound-route-filtering context"; container extended-community { presence "Enter the 'extended-community' context"; description "Enable the extended-community context"; leaf accept-orf { type boolean; description "Negotiate with peer to accept BGP ORF filters"; } container send-orf { presence "Enter the 'send-orf' context"; description "Enable the send-orf context"; list route-target { key "community-name"; description "Add a list entry for route-target"; leaf community-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Route target community name"; } } // list route-target } // container send-orf } // container extended-community } // container outbound-route-filtering list prefix-limit { key "family"; description "Enter the prefix-limit list instance"; leaf family { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-bgp:ip-family-identifier; } description "Address family to which the limit applies"; } leaf maximum { type uint32 { range "1..4294967295"; } description "Maximum number of routes to be learned from a peer"; } leaf log-only { type boolean; default "false"; description "Send warning message at threshold instead of take-down"; } leaf threshold { type uint32 { range "1..100"; } default "90"; description "Percentage threshold that triggers a warning message"; } leaf idle-timeout { type int32 { range "1..1024"; } description "Time which BGP peering remains idle before reconnecting"; } leaf post-import { type boolean; default "false"; description "Apply limit only to routes accepted by import policies"; } } // list prefix-limit container dynamic-neighbor { description "Enter the dynamic-neighbor context"; container match { description "Enter the match context"; list prefix { key "ip-prefix"; description "Enter the prefix list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "Dynamic peer prefix for the group"; } leaf-list allowed-peer-as { type string { pattern "(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))|(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])\\.\\.([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))"; } max-elements 32; ordered-by user; description "Allowed peer AS range"; } } // list prefix } // container match } // container dynamic-neighbor container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "BMP monitoring station"; } } // list station } // container monitor } // list group list neighbor { key "ip-address"; description "Enter the neighbor list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address-with-zone; } description "IP address of the BGP peer router"; } leaf advertise-ldp-prefix { type boolean; default "false"; description "Advertise active /32 LDP FEC prefixes to BGP peers"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for an incoming BGP packet"; } leaf default-route-target { type boolean; description "Send default RTC route (zero prefix length) to peers"; } leaf aigp { type boolean; description "Add AIGP attribute to advertised routes"; } leaf advertise-inactive { type boolean; description "Advertise an inactive BGP route to peers"; } leaf authentication-keychain { type types-sros:named-item; description "TCP authentication keychain for the session"; } leaf bfd-liveness { type boolean; description "Enable BFD"; } leaf fast-external-failover { type boolean; description "Drop external BGP session immediately when link fails"; } leaf peer-ip-tracking { type boolean; description "Enable BGP peer tracking"; } leaf split-horizon { type boolean; description "Prevent routes being reflected back to best-route peer"; } leaf third-party-nexthop { type boolean; description "Apply third-party next-hop processing to EBGP peers"; } leaf label-preference { type uint32 { range "1..255"; } description "Route preference for routes from labeled-unicast peers"; } leaf def-recv-evpn-encap { type types-bgp:encap; description "Default EVPN encapsulation type"; } leaf multipath-eligible { type boolean; description "Allow routes from this peer in multipath eligibility"; } leaf group { type types-sros:named-item-64; sros-ext:immutable; description "BGP peer group"; } leaf peer-creation-type { type types-bgp:peer-creation-type; default "static"; description "Peer creation type"; } leaf connect-retry { type int32 { range "1..65535"; } description "BGP connect retry timer value"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP neighbor"; } leaf keepalive { type int32 { range "0..21845"; } description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type union { type uint32 { range "384..9746"; } type enumeration { enum "ip-stack" { value 0; } } } description "TCP maximum segment size override"; } leaf selective-label-ipv4-install { type boolean; description "Enable/Disable selective download for bgp label-ipv4 routes."; } leaf min-route-advertisement { type int16 { range "1..255"; } description "Minimum interval between successive prefix updates"; } leaf aggregator-id-zero { type boolean; description "Set router ID in the BGP AGGREGATOR attribute to zero"; } leaf preference { type uint32 { range "1..255"; } description "Route preference for routes learned from all peers"; } leaf block-prefix-sid { type boolean; default "false"; description "Block the prefix SID attribute"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; description "Allow cluster RR to advertise routes to its clients"; } leaf vpn-apply-export { type boolean; description "Apply base-instance BGP export policies to VPN routes"; } leaf vpn-apply-import { type boolean; description "Apply base-instance BGP import policies to VPN routes"; } leaf as-override { type boolean; description "Replace the peer's ASN with the local ASN in AS Path"; } leaf asn-4-byte { type boolean; description "Advertise the use of 4-byte ASNs"; } leaf path-mtu-discovery { type boolean; description "Enable path MTU discovery"; } leaf local-address { type types-bgp:local-address; description "Local IP address used when communicating with BGP peers"; } leaf l2vpn-cisco-interop { type boolean; default "false"; description "Allow translation from Cisco non-compliant NLRI format"; } leaf next-hop-self { type boolean; description "Advertise routes with local address as next-hop address"; } leaf passive { type boolean; description "Use passive mode for BGP communication"; } leaf type { type types-bgp:peer-type; description "BGP peer type"; } leaf peer-as { type uint32 { range "1..4294967295"; } description "Peer AS number"; } leaf capability-negotiation { type boolean; description "Enable capability negotiation"; } leaf enforce-first-as { type boolean; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; description "Send BGP updates as soon as the session comes up"; } container next-hop-unchanged { presence "Enter the 'next-hop-unchanged' context"; description "Enable the next-hop-unchanged context"; leaf label-ipv4 { type boolean; default "false"; description "Advertise label-IPv4 routes with unchanged BGP next hop"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise label-IPv6 routes with unchanged BGP next hop"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise VPN IPv4 routes with unchanged BGP next hop"; } leaf vpn-ipv6 { type boolean; default "false"; description "Advertise VPN IPv6 routes with unchanged BGP next hop"; } leaf evpn { type boolean; default "false"; description "Advertise EVPN routes with unchanged BGP next hop"; } } // container next-hop-unchanged container origin-validation { presence "Enter the 'origin-validation' context"; description "Enable the origin-validation context"; leaf ipv4 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Enable support for labeled-unicast IPv6 routes"; } } // container origin-validation container link-bandwidth { description "Enter the link-bandwidth context"; container accept-from-ebgp { presence "Enter the 'accept-from-ebgp' context"; description "Enable the accept-from-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container accept-from-ebgp container add-to-received-ebgp { presence "Enter the 'add-to-received-ebgp' context"; description "Enable the add-to-received-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container add-to-received-ebgp container aggregate-used-paths { presence "Enter the 'aggregate-used-paths' context"; description "Enable the aggregate-used-paths context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container aggregate-used-paths container send-to-ebgp { presence "Enter the 'send-to-ebgp' context"; description "Enable the send-to-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container send-to-ebgp } // container link-bandwidth container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each repeated session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } description "BGP hold time"; } leaf minimum-hold-time { type int32 { range "0|3..65536"; } default "0"; description "Minimum time BGP waits between successive messages"; } } // container hold-time container family { presence "Enter the 'family' context"; description "Enable the family context"; leaf ipv4 { type boolean; default "false"; description "Add support for the IPv4 address family"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for IPv4 VPN address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf vpn-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for IPv6 VPN address family"; } leaf l2-vpn { type boolean; default "false"; description "Advertise MP-BGP support for the L2-VPN address family"; } leaf mvpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 MCAST VPN address family"; } leaf mdt-safi { type boolean; default "false"; description "Advertise MP-BGP support for MDT-SAFI address family"; } leaf ms-pw { type boolean; default "false"; description "Advertise support for multi-segment PW address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf route-target { type boolean; default "false"; description "Advertise MP-BGP support for RT constraint routes"; } leaf mcast-vpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 VPN MCAST address family"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 MCAST VPN address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf evpn { type boolean; default "false"; description "Advertise MP-BGP support for the EVPN address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise support for the label-IPv6 address family"; } leaf bgp-ls { type boolean; default "false"; description "Advertise MP-BGP support for the BGP-LS address family"; } leaf mcast-vpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 VPN MCAST address family"; } leaf sr-policy-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv4 family"; } leaf sr-policy-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv6 family"; } } // container family container send-default { presence "Enter the 'send-default' context"; description "Enable the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable IPv4 family type"; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type types-sros:named-item-64; description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if it is the same as the BGP peer ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } leaf orr-location { type uint32 { range "1..255"; } description "Optimal route reflection location for cluster ID"; } leaf allow-local-fallback { type boolean; default "false"; description "Allow fallback to RR topology"; } } // container cluster container ebgp-default-reject-policy { presence "Enter the 'ebgp-default-reject-policy' context"; description "Enable the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global ASN when advertising routes to BGP peer"; } } // container local-as container add-paths { presence "Enter the 'add-paths' context"; description "Enable the add-paths context"; container ipv4 { description "Enter the ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per unlabeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv4 prefix"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per unlabeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per IPv6 prefix"; } } // container ipv6 container label-ipv4 { description "Enter the label-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per labeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv4 prefix"; } } // container label-ipv4 container label-ipv6 { description "Enter the label-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per labeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv6 prefix"; } } // container label-ipv6 container vpn-ipv4 { description "Enter the vpn-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per VPN-IPv4 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv4 prefix"; } } // container vpn-ipv4 container vpn-ipv6 { description "Enter the vpn-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per VPN-IPv6 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv6 prefix"; } } // container vpn-ipv6 container mvpn-ipv4 { description "Enter the mvpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast VPN IPv4 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast VPN routes per IPv4 prefix"; } } // container mvpn-ipv4 container mvpn-ipv6 { description "Enter the mvpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast VPN IPv6 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast VPN routes per IPv6 prefix"; } } // container mvpn-ipv6 container mcast-vpn-ipv4 { description "Enter the mcast-vpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast IPv4 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv4 VPN prefix"; } } // container mcast-vpn-ipv4 container mcast-vpn-ipv6 { description "Enter the mcast-vpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast IPv6 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv6 VPN prefix"; } } // container mcast-vpn-ipv6 } // container add-paths container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Names of the BGP import policies"; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "BGP export policy name"; } } // container export container extended-nh-encoding { presence "Enter the 'extended-nh-encoding' context"; description "Enable the extended-nh-encoding context"; leaf vpn-ipv4 { type boolean; default "false"; description "Advertise encoding capability for VPN-IPv4 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise encoding capability for label-IPv4 routes"; } leaf ipv4 { type boolean; default "false"; description "Advertise encoding capability for IPv4 routes"; } } // container extended-nh-encoding container advertise-ipv6-next-hops { presence "Enter the 'advertise-ipv6-next-hops' context"; description "Enable the advertise-ipv6-next-hops context"; leaf vpn-ipv6 { type boolean; default "false"; description "Advertise VPN IPv6 route with IPv6 next-hop address"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise label IPv6 route with IPv6 next-hop address"; } leaf evpn { type boolean; default "false"; description "Advertise EVPN route with IPv6 next-hop address"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise VPN IPv4 route with IPv6 next-hop address"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise label IPv4 route with IPv6 next-hop address"; } leaf ipv4 { type boolean; default "false"; description "Advertise IPv4 route with IPv6 next-hop address"; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "300"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform graceful restart procedures after NOTIFICATION"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "Advertised long-lived stale time for LLGR routes"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-bgp:llgr-family-identifiers; } description "Family type for family-specific LLGR configuration"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777216"; } default "16777216"; description "Locally-configured stale routes override time"; } } // list family } // container long-lived } // container graceful-restart container outbound-route-filtering { presence "Enter the 'outbound-route-filtering' context"; description "Enable the outbound-route-filtering context"; container extended-community { presence "Enter the 'extended-community' context"; description "Enable the extended-community context"; leaf accept-orf { type boolean; description "Negotiate with peer to accept BGP ORF filters"; } container send-orf { presence "Enter the 'send-orf' context"; description "Enable the send-orf context"; list route-target { key "community-name"; description "Add a list entry for route-target"; leaf community-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Route target community name"; } } // list route-target } // container send-orf } // container extended-community } // container outbound-route-filtering container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "BMP monitoring station"; } } // list station } // container monitor list prefix-limit { key "family"; description "Enter the prefix-limit list instance"; leaf family { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-bgp:ip-family-identifier; } description "Address family to which the limit applies"; } leaf maximum { type uint32 { range "1..4294967295"; } description "Maximum number of routes to be learned from a peer"; } leaf log-only { type boolean; default "false"; description "Send warning message at threshold instead of take-down"; } leaf threshold { type uint32 { range "1..100"; } default "90"; description "Percentage threshold that triggers a warning message"; } leaf idle-timeout { type int32 { range "1..1024"; } description "Time which BGP peering remains idle before reconnecting"; } leaf post-import { type boolean; default "false"; description "Apply limit only to routes accepted by import policies"; } } // list prefix-limit } // list neighbor container bgp-tunnel-metric { description "Enter the bgp-tunnel-metric context"; leaf value { type uint32 { range "0..4294967295"; } default "1000"; description "BGP tunnel metric value"; } leaf prefer-aigp { type boolean; default "false"; description "Use the AIGP attribute as tunnel metric when present"; } } // container bgp-tunnel-metric } // container bgp container bier { presence "Enter the 'bier' context"; description "Enable the bier context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BIER"; } list template { key "template-name"; description "Enter the template list instance"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the BIER template"; } leaf template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "BIER template name"; } list sub-domain { key "start end"; description "Enter the sub-domain list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type inet:as-number { range "0..255"; } } description "Configure sub-domain start value."; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type inet:as-number { range "0..255"; } } description "Configure sub-domain end value."; } leaf bfr-id { type inet:as-number { range "1..4096"; } description "Configure BIER sub domain BFR ID."; } leaf multi-topology { type enumeration { enum "ipv4-unicast" { value 0; } enum "ipv6-unicast" { value 2; } enum "ipv4-multicast" { value 3; } enum "ipv6-multicast" { value 4; } } default "ipv4-unicast"; description "Configure BIER sub domain ISIS multi topology."; } leaf prefix { type types-sros:ipv4-unicast-address; default "0.0.0.0"; description "Configure BIER sub domain prefix."; } } // list sub-domain } // list template } // container bier container dhcp-server { description "Enter the dhcp-server context"; list dhcpv4 { key "name"; description "Enter the dhcpv4 list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "DHCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP server"; } leaf description { type types-sros:description; description "Text description"; } leaf user-db { type types-sros:named-item; description "Local user database for authentication"; } leaf user-identification { type enumeration { enum "mac-circuit-id" { value 1; } enum "duid" { value 2; } enum "interface-id" { value 3; } enum "interface-id-link-local" { value 4; } enum "client-id" { value 5; } enum "mac" { value 6; } enum "circuit-id" { value 7; } enum "remote-id" { value 8; } } default "mac-circuit-id"; description "User identification method for the DHCP server"; } leaf force-renews { type boolean; default "false"; description "Send FORCERENEW messages to force renewals of leases"; } container pool-selection { description "Enter the pool-selection context"; container use-gi-address { presence "Enter the 'use-gi-address' context"; description "Enable the use-gi-address context"; leaf scope { type enumeration { enum "subnet" { value 0; } enum "pool" { value 1; } } default "subnet"; description "GI address-matching scope"; } } // container use-gi-address container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type types-sros:string-not-all-spaces { length "1"; } description "Delimiter to combine primary and secondary pool names"; } } // container use-pool-from-client } // container pool-selection container lease-hold { description "Enter the lease-hold context"; leaf time { type types-sros:time-duration { range "1..631152000"; } units "seconds"; description "Lease hold time"; } container additional-scenarios { description "Enter the additional-scenarios context"; leaf internal-lease-ipsec { type boolean; default "false"; description "Enable lease hold timer for internal IPsec clients"; } leaf solicited-release { type boolean; default "false"; description "Enable lease hold timer for solicited releases"; } } // container additional-scenarios } // container lease-hold container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; default "120"; description "Time between initialization and assuming active role"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Tag that identifies synchronizing server or pool pairs"; } } // list peer } // container failover list pool { key "pool-name"; description "Enter the pool list instance"; leaf pool-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "DHCP server pool name"; } leaf description { type types-sros:description; description "Text description"; } leaf min-lease-time { type types-sros:time-duration { range "10..315446399"; } units "seconds"; default "600"; description "Minimum lease time"; } leaf max-lease-time { type types-sros:time-duration { range "10..315446399"; } units "seconds"; default "864000"; description "Maximum lease time"; } leaf offer-time { type types-sros:time-duration { range "10..600"; } units "seconds"; default "60"; description "Time interval during which a DHCP offer remains valid"; } leaf nak-non-matching-subnet { type boolean; default "false"; description "Send NAK if no match for request address pool range"; } container minimum-free { description "Enter the minimum-free context"; leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when addresses are depleted"; } choice value { default "absolute"; case absolute { leaf absolute { type uint32 { range "0..255"; } default "1"; description "Minimum number of free addresses in this pool or subnet"; } } case percent { leaf percent { type uint32 { range "0..100"; } default "1"; description "Minimum free addresses as a percentage"; } } } } // container minimum-free container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } } description "DHCP option to send identification strings to client"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option specified as a NetBIOS node type"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time duration"; } } case ipv4-address { leaf-list ipv4-address { type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv4 addresses"; } } case empty { leaf empty { type empty; description "Remove DHCP option from configuration"; } } } } // list option } // container options container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; default "120"; description "Time between initialization and assuming active role"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Tag that identifies synchronizing server or pool pairs"; } } // list peer } // container failover list subnet { key "ipv4-prefix"; description "Enter the subnet list instance"; leaf ipv4-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "IPv4 prefix for the subnet"; } leaf drain { type boolean; default "false"; description "Prevent new lease assignment from this subnet"; } leaf maximum-declined { type uint32; default "64"; description "Maximum number of declined addresses allowed"; } container minimum-free { description "Enter the minimum-free context"; leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when addresses are depleted"; } choice value { default "absolute"; case absolute { leaf absolute { type uint32 { range "0..255"; } default "1"; description "Minimum number of free addresses in this pool or subnet"; } } case percent { leaf percent { type uint32 { range "0..100"; } default "1"; description "Minimum free addresses as a percentage"; } } } } // container minimum-free container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } } description "DHCP option to send identification strings to client"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option specified as a NetBIOS node type"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv4-address { leaf-list ipv4-address { type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv4 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options list address-range { key "start end"; description "Enter the address-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Start address of this range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "End address of this range"; } leaf failover-control-type { type types-dhcp:failover-control-type; sros-ext:immutable; default "local"; description "Failover control type for this range"; } } // list address-range list exclude-addresses { key "start end"; description "Add a list entry for exclude-addresses"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Start address of this range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "End address of this range"; } } // list exclude-addresses } // list subnet } // list pool } // list dhcpv4 list dhcpv6 { key "name"; description "Enter the dhcpv6 list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "DHCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP server"; } leaf auto-provisioned { type boolean; sros-ext:immutable; default "false"; description "Auto-provision the pools of this server"; } leaf description { type types-sros:description; description "Text description"; } leaf user-identification { type enumeration { enum "mac-circuit-id" { value 1; } enum "duid" { value 2; } enum "interface-id" { value 3; } enum "interface-id-link-local" { value 4; } enum "client-id" { value 5; } enum "mac" { value 6; } enum "circuit-id" { value 7; } enum "remote-id" { value 8; } } default "duid"; description "User identification method for the DHCP server"; } leaf ignore-rapid-commit { type boolean; default "false"; description "Ignore Rapid Commit option"; } leaf interface-id-mapping { type boolean; default "false"; description "Map hosts within interface-to-prefix combinations"; } leaf lease-query { type boolean; default "false"; description "Handle and reply to lease query messages"; } container pool-selection { description "Enter the pool-selection context"; container use-link-address { presence "Enter the 'use-link-address' context"; description "Enable the use-link-address context"; leaf scope { type enumeration { enum "subnet" { value 0; } enum "pool" { value 1; } } default "subnet"; description "Scope of the IP address selection"; } } // container use-link-address container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type types-sros:string-not-all-spaces { length "1"; } description "Delimiter to combine primary and secondary pool names"; } } // container use-pool-from-client } // container pool-selection container lease-hold { description "Enter the lease-hold context"; leaf time { type types-sros:time-duration { range "1..631152000"; } units "seconds"; description "Lease hold time"; } container additional-scenarios { description "Enter the additional-scenarios context"; leaf internal-lease-ipsec { type boolean; default "false"; description "Enable lease hold timer for internal IPsec clients"; } leaf solicited-release { type boolean; default "false"; description "Enable lease hold timer for solicited releases"; } } // container additional-scenarios } // container lease-hold container server-id { description "Enter the server-id context"; choice value { default "duid-link-local"; case duid-link-local { leaf duid-link-local { type empty; description "Derive DUID server ID from a system link-layer address"; } } case duid-enterprise { container duid-enterprise { description "Enter the duid-enterprise context"; choice duid-enterprise-value { case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..58"; } description "DUID enterprise server ID specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..118"; } description "DUID enterprise server ID specified as a hex string"; } } } } // container duid-enterprise } } } // container server-id container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; default "120"; description "Time between initialization and assuming active role"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Tag that identifies synchronizing server or pool pairs"; } } // list peer } // container failover container defaults { description "Enter the defaults context"; leaf preferred-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "3600"; description "Time this lease remains preferred"; } leaf valid-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "86400"; description "Time for the lease to remain valid"; } leaf renew-time { type types-sros:time-duration { range "0..604800"; } units "seconds"; default "1800"; description "Renew time for the lease"; } leaf rebind-time { type types-sros:time-duration { range "0..1209600"; } units "seconds"; default "2880"; description "Rebind time for the lease"; } container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } } description "DHCP option number"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options } // container defaults list pool { key "pool-name"; description "Enter the pool list instance"; leaf pool-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "DHCP server pool name"; } leaf description { type types-sros:description; description "Text description"; } container delegated-prefix { description "Enter the delegated-prefix context"; leaf length { type uint32 { range "48..127"; } default "64"; description "Prefix length for pool if unspecified by client"; } leaf minimum { type uint32 { range "48..127"; } default "48"; description "Minimum delegated prefix length for this pool"; } leaf maximum { type uint32 { range "48..127"; } default "64"; description "Maximum delegated prefix length for this pool"; } } // container delegated-prefix container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; default "120"; description "Time between initialization and assuming active role"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Tag that identifies synchronizing server or pool pairs"; } } // list peer } // container failover list prefix-length-threshold { key "prefix-length"; max-elements 8; description "Enter the prefix-length-threshold list instance"; leaf prefix-length { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..128"; } } description "Delegated prefix length for pool thresholds"; } leaf minimum-free-percent { type uint32 { range "0..100"; } default "0"; description "Percentage of free prefixes for this prefix length"; } leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when this pool is depleted"; } } // list prefix-length-threshold container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } } description "DHCP option number"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "IPv6 prefix to be excluded from available pool prefixes"; } leaf failover-control-type { type types-dhcp:failover-control-type; sros-ext:immutable; default "local"; description "Failover control type for this range"; } leaf preferred-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "3600"; description "Time this lease remains preferred"; } leaf valid-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "86400"; description "Time for the lease to remain valid"; } leaf renew-time { type types-sros:time-duration { range "0..604800"; } units "seconds"; default "1800"; description "Renew time for the lease"; } leaf rebind-time { type types-sros:time-duration { range "0..1209600"; } units "seconds"; default "2880"; description "Rebind time for the lease"; } leaf drain { type boolean; default "false"; description "No new leases can be assigned"; } container prefix-type { description "Enter the prefix-type context"; leaf pd { type boolean; sros-ext:immutable; default "true"; description "Allocate IA-PD prefixes from this prefix pool"; } leaf wan-host { type boolean; sros-ext:immutable; default "true"; description "Allocate IA-NA or SLAAC prefixes from this prefix pool"; } } // container prefix-type container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } } description "DHCP option number"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options list prefix-length-threshold { key "prefix-length"; max-elements 8; description "Enter the prefix-length-threshold list instance"; leaf prefix-length { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..128"; } } description "Delegated prefix length for pool thresholds"; } leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when this pool is depleted"; } choice value { case absolute { leaf absolute { type uint32 { range "1..4294967295"; } description "Minimum number of free prefixes for this prefix length"; } } case percent { leaf percent { type uint32 { range "1..100"; } description "Minimum percentage of free prefixes for prefix length"; } } } } // list prefix-length-threshold } // list prefix list exclude-prefix { key "ipv6-prefix"; description "Add a list entry for exclude-prefix"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "IPv6 prefix to be excluded from available pool prefixes"; } } // list exclude-prefix } // list pool } // list dhcpv6 } // container dhcp-server container firewall { description "Enter the firewall context"; list domain { key "name"; max-elements 1024; description "Enter the domain list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Firewall domain name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the firewall domain"; } choice isa { case nat { leaf nat-group { type uint32 { range "1..4"; } sros-ext:immutable; description "NAT group for this domain"; } } case wlan-gw { leaf wlan-gw-group { type types-isa:wlan-gw-group-id; sros-ext:immutable; description "WLAN GW group used for NAT in this domain"; } } } container dhcpv6-server { description "Enter the dhcpv6-server context"; leaf router-instance { type string; description "Router name"; } leaf name { type types-sros:named-item; description "DHCPv6 server name"; } } // container dhcpv6-server list prefix { key "ip-prefix"; max-elements 4096; description "Enter the prefix list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-prefix; } description "IP prefix and prefix length for the domain firewall"; } leaf description { type types-sros:description; description "Text description"; } } // list prefix } // list domain } // container firewall container gtm { description "Enter the gtm context"; leaf mvpn { type boolean; default "false"; description "Configure multicast VPN."; } container provider-tunnel { description "Enter the provider-tunnel context"; container inclusive { description "Enter the inclusive context"; container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of P2MP RSVP as provider tunnel"; } leaf lsp-template { type types-sros:named-item; description "Specify the Lsp Template."; } } // container rsvp } // container inclusive container selective { description "Enter the selective context"; leaf data-delay-interval { type uint32 { range "3..180"; } default "3"; description "The data delay interval."; } leaf maximum-p2mp-spmsi { type uint32 { range "1..4000"; } default "10"; description "Specify the maximum number of p2mp s-pmsi tunnels for the mvpn."; } container data-threshold { description "Enter the data-threshold context"; list group-prefix { key "ip-group-prefix"; description "Enter the group-prefix list instance"; leaf ip-group-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-multicast-prefix; } description "Multicast group-prefix."; } leaf threshold { type uint32 { range "1..4294967294"; } units "kilobps"; description "Configure threshold in kbps for a group prefix."; } leaf pe-threshold-add { type uint32 { range "1..65535"; } default "65535"; description "Configure threshold."; } leaf pe-threshold-delete { type uint32 { range "2..65535"; } default "65535"; description "Configure threshold."; } } // list group-prefix } // container data-threshold container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of P2MP RSVP as provider tunnel"; } leaf lsp-template { type types-sros:named-item; description "Specify the Lsp Template."; } } // container rsvp } // container selective } // container provider-tunnel } // container gtm container igmp { presence "Enter the 'igmp' context"; description "Enable the igmp context"; leaf group-if-query-source-address { type types-sros:ipv4-unicast-address; description "Default query-source address for all group interfaces"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } units "seconds"; default "1"; description "Time between group-specific query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..10"; } default "2"; description "Number of retries after message loss"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP"; } container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address that specifies the start of the group range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address that specifies the end of the group range"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } // list group-range } // container ssm-translate list interface { key "ip-interface-name"; description "Enter the interface list instance"; leaf ip-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "IP interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf subnet-check { type boolean; default "true"; description "Allow subnet checking"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf redundant-mcast { type boolean; default "false"; description "Use interface as a redundant-pair member for multicast"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-mcast-cac:constraints-level; } description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } description "Bandwidth available for this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..64"; } } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; description "Level ID to associate with number of down LAG ports"; } } // list number-down } // container mc-constraints container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address that specifies the start of the group range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address that specifies the end of the group range"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } // list group-range } // container ssm-translate container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Group address of static IGMP multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "Add a starg (*,G) address entry for the group range"; } } } } // list group list group-range { key "start end step"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address for the start of the static group range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address for the end of the static group range"; } leaf step { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Step interval in the group-range address"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "Add a starg (*,G) address entry for the group range"; } } } } // list group-range } // container static } // list interface list group-interface { key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf subnet-check { type boolean; default "true"; description "Allow subnet checking"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow IGMP traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv4-unicast-address; description "Source address for IGMP queries"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list group-interface container tunnel-interface { description "Enter the tunnel-interface context"; list rsvp-p2mp-root { key "lsp-name"; description "Enter the rsvp-p2mp-root list instance"; leaf lsp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "LSP name for the RSVP P2MP LSP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Group address of static IGMP multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "Add a starg (*,G) address entry for the group range"; } } } } // list group } // container static } // list rsvp-p2mp-root list ldp-p2mp-root { key "p2mp-id sender-address"; description "Enter the ldp-p2mp-root list instance"; leaf p2mp-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8192"; } } description "The identifier of the RSVP P2MP LSP"; } leaf sender-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "System address of the ingress LER for the P2MP RSVP LSP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Group address of static IGMP multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "Add a starg (*,G) address entry for the group range"; } } } } // list group } // container static } // list ldp-p2mp-root } // container tunnel-interface } // container igmp list isis { key "isis-instance"; description "Enter the isis list instance"; leaf isis-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "0..127"; } } description "Instance ID for IS-IS instance"; } leaf authentication-keychain { type types-sros:named-item; description "The keychain used to sign and/or authenticate."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication key to verify PDUs sent by neighboring routers"; } leaf authentication-type { type types-isis:auth-type; description "Authentication type"; } leaf csnp-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of complete sequence number PDU (CSNP) type"; } leaf psnp-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of partial sequence number PDU (PSNP) type"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IS-IS instance"; } leaf advertise-passive-only { type boolean; default "false"; description "Advertise prefixes that belong to passive interfaces"; } leaf advertise-router-capability { type enumeration { enum "area" { value 2; } enum "as" { value 3; } } description "Advertise router capabilities to neighbors"; } leaf advertise-tunnel-link { type boolean; default "false"; description "Allow use of forwarding adjacency"; } leaf all-l1isis { type yang:mac-address; default "01:80:C2:00:00:14"; description "Destination MAC address for all L1 IS-IS routers"; } leaf all-l2isis { type yang:mac-address; default "01:80:C2:00:00:15"; description "Destination MAC address for all L2 IS-IS routers"; } leaf authentication-check { type boolean; default "true"; description "Perform authentication check to reject PDUs that do not match the type or key requirements"; } leaf default-route-tag { type uint32 { range "1..max"; } description "Route tag for default route"; } leaf ldp-sync { type boolean; default "true"; description "Use IGP-LDP synchronization feature on all interfaces participating in IS-IS routing protocol"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf ignore-attached-bit { type boolean; default "false"; description "Ignore attached bit on received L1 LSPs to disable installation of default routes"; } leaf ignore-lsp-errors { type boolean; default "false"; description "Ignore LSP packets with errors"; } leaf ignore-narrow-metric { type boolean; default "false"; description "Ignore links with narrow metrics when wide-metrics support is enabled"; } leaf iid-tlv { type boolean; default "false"; description "Use IID TLVs with IS-IS multi-instance (MI)"; } leaf ipv4-multicast-routing { type types-isis:routing-topology; default "native"; description "IS-IS topology for IPv4 multicast routing"; } leaf ipv4-routing { type boolean; default "true"; description "Support IPv4 routing for IS-IS instance"; } leaf ipv6-multicast-routing { type types-isis:routing-topology; description "Topology to populate the IPv6 multicast RTM"; } leaf ipv6-routing { type types-isis:routing-topology; default "false"; description "Routing topology for IPv6"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf ldp-over-rsvp { type boolean; default "false"; description "Allow LDP over RSVP processing"; } leaf level-capability { type types-isis:level; description "Routing level for instance"; } leaf lsp-lifetime { type uint32 { range "350..65535"; } units "seconds"; sros-ext:manual-restart-to-modify; default "1200"; description "Amount of time during which an LSP is considered valid"; } leaf lsp-minimum-remaining-lifetime { type uint32 { range "350..65535"; } units "seconds"; description "Minimum value for the Remaining Lifetime of an LSP"; } leaf lsp-mtu-size { type types-isis:lsp-buffer-ext-size; units "bytes"; sros-ext:manual-restart-to-modify; default "1492"; description "LSP MTU size"; } leaf overload-export-interlevel { type boolean; default "false"; description "Advertise the inter-level routes when router is overloaded"; } leaf overload-export-external { type boolean; default "false"; description "Advertise the external routes when router is in overloaded"; } leaf poi-tlv { type boolean; default "false"; description "Purge Originator Identification TLV"; } leaf prefix-attributes-tlv { type boolean; default "false"; description "Use IS-IS Prefix Attributes TLV to exchange extended IPv4 and IPv6 reachability information"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; description "Reference bandwidth for bandwidth relative costing"; } leaf router-id { type types-igp:router-id; description "Unique router ID for the ISIS instance"; } leaf standard-multi-instance { type boolean; default "false"; description "Enable RFC standards compliant multi-instance behavior"; } leaf strict-adjacency-check { type boolean; default "false"; description "Enable strict checking of address families for IS-IS adjacencies"; } leaf suppress-attached-bit { type boolean; default "false"; description "Allow IS-IS to suppress setting the attached bit on LSPs"; } leaf system-id { type types-igp:system-id; sros-ext:manual-restart-to-modify; description "System ID"; } leaf traffic-engineering { type boolean; default "false"; description "Traffic engineering for router"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf-list area-address { type types-isis:area-address; max-elements 3; description "Area address portion of NSAP address"; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for IS-IS"; } } // container graceful-restart container entropy-label { description "Enter the entropy-label context"; leaf override-tunnel-elc { type boolean; default "false"; description "Received entropy label capability advertisement to override"; } } // container entropy-label container multi-topology { presence "Enter the 'multi-topology' context"; description "Enable the multi-topology context"; leaf ipv6-unicast { type boolean; default "false"; description "Support multi-topology TLVs"; } leaf ipv4-multicast { type boolean; default "false"; description "Support IPv4 topology (MT3)"; } leaf ipv6-multicast { type boolean; default "false"; description "Support IPv6 topology (MT4)"; } } // container multi-topology container multicast-import { description "Enter the multicast-import context"; leaf ipv4 { type boolean; default "false"; description "Submit IPv4 routes into the multicast RPF of the RTM"; } leaf ipv6 { type boolean; default "false"; description "Submit IPv6 routes into the multicast RPF of the RTM"; } } // container multicast-import container overload { presence "Enter the 'overload' context"; description "Enable the overload context"; leaf max-metric { type boolean; default "false"; description "Advertise transit links with maximum metric instead of setting overload bit"; } } // container overload container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "60..1800"; } units "seconds"; description "Time during which the router operates in overload state after reboot"; } leaf max-metric { type boolean; default "false"; description "Advertise transit links with maximum metric instead of setting overload bit"; } } // container overload-on-boot container prefix-limit { presence "Enter the 'prefix-limit' context"; description "Enable the prefix-limit context"; leaf limit { type uint32 { range "1..max"; } description "Maximum number of prefixes for IS-IS instance"; } leaf log-only { type boolean; default "false"; description "Send warning message at specified threshold or when limit is reached, without going into overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Specifies the percentage of the value defined by prefix-limit, at which a warning log message and SNMP notification would be sent. This would only be a warning and additional prefixes will be learned up to 100% of prefix-limit. A value of 0 indicates that the threshold is disabled and no log message or SNMP notification will be sent."; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Time router remains in overload after prefix limit is exceeded before restarting"; } } // container prefix-limit container lsp-refresh { description "Enter the lsp-refresh context"; leaf interval { type uint32 { range "150..65535"; } units "seconds"; default "600"; description "Refresh timer interval"; } leaf half-lifetime { type boolean; default "true"; description "Set the refresh interval to always be half the LSP lifetime"; } } // container lsp-refresh container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; choice type { case prefix-list { leaf prefix-list { type types-sros:named-item; description "List used to select routes processed at higher priority through OSPF route calculation process"; } } case tag { leaf tag { type uint32 { range "1..max"; } description "Value that matches IS-IS routes processed at higher priority through route calculation process"; } } } } // container high } // container rib-priority container timers { description "Enter the timers context"; container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between first and second SPF calculations"; } } // container spf-wait container lsp-wait { description "Enter the lsp-wait context"; leaf lsp-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of LSP generation"; } leaf lsp-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "10"; description "Initial LSP generation delay"; } leaf lsp-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Delay between first and second LSP generation"; } } // container lsp-wait } // container timers container unicast-import { description "Enter the unicast-import context"; leaf ipv4 { type boolean; default "true"; description "Submit IPv4 routes into unicast RTM"; } leaf ipv6 { type boolean; default "true"; description "Submit IPv6 routes into unicast RTM"; } } // container unicast-import container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; leaf augment-route-table { type boolean; default "false"; description "Attach Remote LFA information to RTM entries"; } container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude container remote-lfa { presence "Enter the 'remote-lfa' context"; description "Enable the remote-lfa context"; leaf max-pq-cost { type uint32; default "4261412864"; description "Maximum cost of destination node during reverse SPF calculation"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; leaf max-pq-nodes { type uint32 { range "1..32"; } default "16"; description "Specifies the maximum number of PQ nodes."; } } // container node-protect } // container remote-lfa container ti-lfa { presence "Enter the 'ti-lfa' context"; description "Enable the ti-lfa context"; leaf max-sr-frr-labels { type uint32 { range "0..3"; } default "2"; description "Maximum number of labels that TI-LFA backup next hop can use"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; } // container node-protect } // container ti-lfa } // container loopfree-alternate container database-export { presence "Enter the 'database-export' context"; description "Enable the database-export context"; leaf igp-identifier { type uint64; description "Unique identifier of the IGP instance in the BGP-LS NLRI"; } container bgp-ls-identifier { presence "Enter the 'bgp-ls-identifier' context"; description "Enable the bgp-ls-identifier context"; leaf value { type uint32; default "0"; description "BGP-LS identifier that is sent in the BGP-LS NLRI"; } } // container bgp-ls-identifier } // container database-export container flexible-algorithms { description "Enter the flexible-algorithms context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of flexible algorithms support"; } list flex-algo { key "flex-algo-id"; max-elements 5; description "Enter the flex-algo list instance"; leaf flex-algo-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "128..255"; } } description "Flexible Algorithm ID"; } leaf participate { type boolean; default "false"; description "Allow participation in the Flexible Algorithm"; } leaf advertise { type types-sros:named-item; description "Flexible Algorithm Definition to advertise"; } container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; } // container loopfree-alternate } // list flex-algo } // container flexible-algorithms container traffic-engineering-options { description "Enter the traffic-engineering-options context"; leaf ipv6 { type boolean; default "false"; description "Advertise IS-IS IPv6 Traffic Engineering"; } container application-link-attributes { presence "Enter the 'application-link-attributes' context"; description "Enable the application-link-attributes context"; leaf legacy { type boolean; default "false"; description "Advertise legacy TE attributes"; } } // container application-link-attributes } // container traffic-engineering-options container segment-routing { description "Enter the segment-routing context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing"; } leaf adj-sid-hold { type types-igp:adj-sid-hold-type; units "seconds"; default "15"; description "Adjacency SID hold time"; } leaf class-forwarding { type boolean; default "false"; description "Allow CBF with ECMP over RSVP-TE LSPs as IGP shortcuts"; } leaf entropy-label { type boolean; description "Entropy label capability"; } leaf export-tunnel-table { type enumeration { enum "ldp" { value 1; } } description "Tunnel table export policies to export tunneled routes"; } leaf srlb { type types-sros:named-item-64; description "Segment routing local block"; } leaf tunnel-mtu { type types-router:ip-mtu-ext; description "Tunnel MTU size"; } leaf tunnel-table-pref { type uint32 { range "1..255"; } default "11"; description "Preference of SR tunnels created by the IGP instance"; } container micro-loop-avoidance { presence "Enter the 'micro-loop-avoidance' context"; description "Enable the micro-loop-avoidance context"; leaf fib-delay { type uint32 { range "1..300"; } units "deciseconds"; default "15"; description "FIB delay before programming new primary next-hops"; } } // container micro-loop-avoidance container prefix-sid-range { presence "Enter the 'prefix-sid-range' context"; description "Enable the prefix-sid-range context"; choice type { case global { leaf global { type empty; description "Allows BGP global SR range"; } } case local { leaf start-label { type uint32 { range "0..524287"; } default "0"; description "Lower bound value for the local label offset"; } leaf max-index { type uint32 { range "0..524287"; } default "1"; description "Upper bound value for the local SID index"; } } } } // container prefix-sid-range container maximum-sid-depth { description "Enter the maximum-sid-depth context"; leaf override-bmi { type int32 { range "0..12"; } description "Value to override the announced node MSD-BMI value"; } leaf override-erld { type int32 { range "0..15"; } description "Value to override the announced node MSD-ERLD value"; } } // container maximum-sid-depth list adjacency-set { key "id"; description "Enter the adjacency-set list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..max"; } } description "Identifier for specified adjacency set"; } leaf family { type types-sros:adjacency-set-family-type; default "ipv4"; description "Address family for the adjacency set"; } leaf parallel { type boolean; default "true"; description "Require all members of the adjacency set to terminate on the same neighboring node"; } leaf advertise { type boolean; default "true"; description "Advertise the adjacency set when all links terminate on the same neighboring node"; } container sid { presence "Enter the 'sid' context"; description "Enable the sid context"; choice type { case label { leaf label { type int64 { range "1..1048575"; } description "Adjacency SID"; } } } } // container sid } // list adjacency-set container egress-statistics { description "Enter the egress-statistics context"; leaf adj-set { type boolean; default "false"; description "Enable statistics on Adjacency Sets"; } leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container egress-statistics container ingress-statistics { description "Enter the ingress-statistics context"; leaf adj-set { type boolean; default "false"; description "Enable statistics on Adjacency Sets"; } leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container ingress-statistics container mapping-server { description "Enter the mapping-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ISIS segment routing mapping server"; } list node-sid-map { key "sid-index"; description "Enter the node-sid-map list instance"; leaf sid-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32; } description "SID index of a mapping server Prefix-SID"; } leaf ip-prefix { type types-sros:ipv4-unicast-prefix; description "Prefix of a mapping server Prefix-SID"; } leaf range { type uint32 { range "0..65535"; } default "1"; description "Range of addresses and their associated prefix SIDs"; } leaf level-capability { type types-isis:level; description "Flags to assign in SID Label Binding TLV advertised by Segment Routing Mapping Server"; } leaf clear-n-flag { type boolean; default "false"; description "Clear the node-sid flag (N-flag)"; } container set-flags { description "Enter the set-flags context"; leaf bit-s { type boolean; default "false"; description "SID Label Binding TLV to be flooded across the entire routing domain"; } } // container set-flags } // list node-sid-map } // container mapping-server } // container segment-routing container igp-shortcut { description "Enter the igp-shortcut context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RSVP-TE or SR-TE shortcut"; } container tunnel-next-hop { description "Enter the tunnel-next-hop context"; list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-isis:tunnel-next-hop-family-type; } description "Address family type for tunnel next-hop"; } leaf resolution { type types-sros:resolution-type; description "Resolution state for IGP shortcut tunnels"; } container resolution-filter { description "Enter the resolution-filter context"; leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } } // container resolution-filter } // list family } // container tunnel-next-hop } // container igp-shortcut list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of interface"; } leaf hello-authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication key or hash string for Hello PDUs"; } leaf hello-authentication-keychain { type types-sros:named-item; description "Authentication keychain to use for the session."; } leaf hello-authentication-type { type types-isis:auth-type; description "Hello authentication type"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf passive { type boolean; default "false"; description "Passive interface"; } leaf csnp-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time interval between successive CSN PDUs sent from interface"; } leaf default-instance { type boolean; default "false"; description "Allow non-MI capable router to establish an adjacency and operate with a router in non-zero instance"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf interface-type { type types-isis:interface-type; description "Interface type to broadcast, point-to-point, or to be default"; } leaf ipv4-multicast { type boolean; default "true"; description "Clear IPv4 multicast routing for interface"; } leaf ipv6-multicast { type boolean; default "true"; description "Clear IPv4 multicast routing for interface"; } leaf ipv6-unicast { type boolean; default "true"; description "Clear IPv4 multicast routing for interface"; } leaf level-capability { type types-isis:level; description "IS-IS levels for this interface"; } leaf load-balancing-weight { type uint32; description "Load balancing weight"; } leaf lsp-pacing-interval { type uint32 { range "0..65535"; } units "milliseconds"; default "100"; description "Interval for sending LSPs from interface"; } leaf retransmit-interval { type uint32 { range "1..65535"; } units "seconds"; default "5"; description "Minimum time between LSP PDU retransmissions on point-to-point interface"; } leaf sid-protection { type boolean; default "true"; description "Allow adjacency SID protection by LFA and remote LFA"; } leaf tag { type uint32 { range "1..max"; } description "Route tag for IP address of interface"; } container ipv4-adjacency-sid { presence "Enter the 'ipv4-adjacency-sid' context"; description "Enable the ipv4-adjacency-sid context"; choice type { case label { leaf label { type int64 { range "1..1048575"; } description "Adjacency SID"; } } } } // container ipv4-adjacency-sid container ipv6-adjacency-sid { presence "Enter the 'ipv6-adjacency-sid' context"; description "Enable the ipv6-adjacency-sid context"; choice type { case label { leaf label { type int64 { range "1..1048575"; } description "Adjacency SID"; } } } } // container ipv6-adjacency-sid container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable Loopfree Alternative at interface level."; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type types-sros:named-item; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate container mesh-group { presence "Enter the 'mesh-group' context"; description "Enable the mesh-group context"; choice type { case value { leaf value { type int32 { range "1..2000000000"; } description "Mesh group for the interface"; } } case blocked { leaf blocked { type empty; description "Prevent the interface from flooding LSPs"; } } } } // container mesh-group container bfd-liveness { description "Enter the bfd-liveness context"; container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf include-bfd-tlv { type boolean; default "false"; description "BFD-enabled TLV for IPv4 to include on this IS-IS interface"; } } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf include-bfd-tlv { type boolean; default "false"; description "BFD-enabled TLV for IPv4 to include on this IS-IS interface"; } } // container ipv6 } // container bfd-liveness container ipv4-node-sid { presence "Enter the 'ipv4-node-sid' context"; description "Enable the ipv4-node-sid context"; leaf clear-n-flag { type boolean; default "false"; description "Clear the node-sid flag (N-flag)"; } choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container ipv4-node-sid container ipv6-node-sid { presence "Enter the 'ipv6-node-sid' context"; description "Enable the ipv6-node-sid context"; leaf clear-n-flag { type boolean; default "false"; description "Clear the node-sid flag (N-flag)"; } choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container ipv6-node-sid list adjacency-set { key "id"; description "Add a list entry for adjacency-set"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..max"; } } description "Adjacency set identity"; } } // list adjacency-set list flex-algo { key "flex-algo-id"; max-elements 5; description "Enter the flex-algo list instance"; leaf flex-algo-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "128..255"; } } description "Flexible Algorithm ID"; } container ipv4-node-sid { presence "Enter the 'ipv4-node-sid' context"; description "Enable the ipv4-node-sid context"; choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container ipv4-node-sid container ipv6-node-sid { presence "Enter the 'ipv6-node-sid' context"; description "Enable the ipv6-node-sid context"; choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container ipv6-node-sid } // list flex-algo list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "1" { value 1; } enum "2" { value 2; } } } description "IS-IS protocol level to which these attributes apply"; } leaf hello-authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication or hash key string."; } leaf hello-authentication-keychain { type types-sros:named-item; description "Authentication keychain to use for the session."; } leaf hello-authentication-type { type types-isis:auth-type; description "Hello-authentication-type to be enabled."; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf passive { type boolean; default "false"; description "Passive interface"; } leaf hello-interval { type uint32 { range "1..20000"; } units "seconds"; default "9"; description "Interval between Hello messages sent on this level"; } leaf hello-multiplier { type int32 { range "2..100"; } default "3"; description "Hello messages missed from neighbor before router declares adjacency down"; } leaf ipv4-multicast-metric { type types-isis:metric; description "IS-IS interface metric applied for IPv4 multicast"; } leaf ipv6-multicast-metric { type types-isis:metric; description "IS-IS interface metric applied for IPv6 multicast"; } leaf ipv6-unicast-metric { type types-isis:metric; description "IS-IS interface metric applied for IPv6 unicast"; } leaf metric { type types-isis:metric; description "IS-IS interface metric applied for IPv4 unicast"; } leaf priority { type uint32 { range "0..127"; } default "64"; description "Router to become the designated router on a multi-access network"; } leaf sd-offset { type types-isis:metric; description "Value of the signal degrade offset"; } leaf sf-offset { type types-isis:metric; description "Value of the signal fail offset"; } } // list level } // list interface list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "1" { value 1; } enum "2" { value 2; } } } description "IS-IS protocol level to which these attributes apply"; } leaf authentication-keychain { type types-sros:named-item; description "The keychain used to sign and/or authenticate."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication or hash key string."; } leaf authentication-type { type types-isis:auth-type; description "Configure the authentication type to be used."; } leaf csnp-authentication { type boolean; default "true"; description "Enable/disable authentication on received ISIS protocol packets of type CSNP."; } leaf psnp-authentication { type boolean; default "true"; description "Enable/disable authentication on received ISIS protocol packets of type PSNP."; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf database-export-exclude { type boolean; default "false"; description "Exclude IGP link-state information of a specific IS-IS level from being exported into extended TE-DB"; } leaf default-ipv4-multicast-metric { type types-isis:metric; default "10"; description "Default metric for IPv4 unicast"; } leaf default-ipv6-multicast-metric { type types-isis:metric; default "10"; description "Default metric for IPv6 unicast"; } leaf default-ipv6-unicast-metric { type types-isis:metric; default "10"; description "Default metric for IPv6 unicast"; } leaf default-metric { type types-isis:metric; default "10"; description "Default metric"; } leaf external-preference { type uint32 { range "1..255"; } description "External route preference for IS-IS level"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude interface participating in specific IS-IS level in SPF LFA computation"; } leaf lsp-mtu-size { type types-isis:lsp-buffer-ext-size; units "bytes"; sros-ext:manual-restart-to-modify; default "1492"; description "LSP MTU size"; } leaf preference { type uint32 { range "1..255"; } description "External route preference at level"; } leaf wide-metrics-only { type boolean; default "false"; description "Use wide metrics advertisements in the LSPs"; } container bier { description "Enter the bier context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BIER"; } leaf template { type types-sros:named-item; description "Specify BIER template name."; } } // container bier } // list level list link-group { key "link-group-name"; description "Enter the link-group list instance"; leaf link-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Link group name for the IS-IS protocol"; } leaf description { type types-sros:very-long-description; description "Text description"; } list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "1" { value 1; } enum "2" { value 2; } } } description "IS-IS protocol level to which these attributes apply"; } leaf ipv4-multicast-metric-offset { type types-isis:metric; description "Offset value for the IPv4 multicast address family"; } leaf ipv4-unicast-metric-offset { type types-isis:metric; description "Offset value for the IPv4 unicast address family"; } leaf ipv6-multicast-metric-offset { type types-isis:metric; description "Offset value for the IPv6 multicast address family"; } leaf ipv6-unicast-metric-offset { type types-isis:metric; description "Offset value for the IPv6 unicast address family"; } leaf oper-members { type uint32 { range "1..8"; } description "Minimum number of operational links"; } leaf revert-members { type uint32 { range "1..8"; } description "Minimum number of operational links to return link group to normal state and remove offsets"; } list member { key "interface-name"; max-elements 8; description "Add a list entry for member"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name for this link group"; } } // list member } // list level } // list link-group list summary-address { key "ip-prefix"; description "Enter the summary-address list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "Summary IP prefix"; } leaf level-capability { type types-isis:level; description "IS-IS Level from which the prefix should be summarized"; } leaf route-tag { type uint32 { range "1..max"; } description "Route tag assigned to the summary address"; } } // list summary-address } // list isis container l2tp { presence "Enter the 'l2tp' context"; description "Enable the l2tp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of L2TP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:base-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:base-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:base-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:base-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:base-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:base-max-retries; description "Maximum retries for unestablished tunnels"; } leaf rtm-debounce-time { type types-l2tp:rtm-debounce-time; description "Debounce timer that declares L2TP action for route table management events"; } leaf radius-accounting-policy { type types-sros:named-item; description "RADIUS accounting policy"; } leaf peer-address-change-policy { type types-l2tp:peer-address-change-policy-option; description "Reaction when a L2TP response is received from a different address"; } leaf local-name { type types-l2tp:host-name; description "Local host name"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TP password"; } leaf challenge { type boolean; default "false"; description "Use challenge-response authentication"; } leaf avp-hiding { type types-l2tp:base-avp-hiding; description "Attribute of the Value Pair (AVP) hiding algorithm"; } leaf session-limit { type types-l2tp:base-session-limit; description "L2TP session limit of this router"; } leaf group-session-limit { type types-l2tp:base-session-limit; description "L2TP session limit for each group of this router"; } leaf tunnel-session-limit { type types-l2tp:base-tunnel-session-limit; description "L2TP session limit for each tunnel of this router"; } leaf session-assign-method { type types-l2tp:base-session-assign-method; description "Session assignment method"; } leaf next-attempt { type enumeration { enum "same-preference-level" { value 0; } enum "next-preference-level" { value 1; } } default "next-preference-level"; description "Tunnel that is selected when previous session setup failed"; } container exclude-avps { description "Enter the exclude-avps context"; leaf calling-number { type boolean; default "false"; description "Calling Number AVP to exclude"; } leaf initial-rx-lcp-conf-req { type boolean; default "false"; description "Exclude the Initial Received LCP CONFREQ AVP"; } } // container exclude-avps container ignore-avps { description "Enter the ignore-avps context"; leaf sequencing-required { type boolean; default "false"; description "Ignore Sequencing Required AVP"; } } // container ignore-avps container replace-result-code { description "Enter the replace-result-code context"; leaf cdn-invalid-dst { type boolean; default "false"; description "Replace result code with general error code"; } leaf cdn-permanent-no-facilities { type boolean; default "false"; description "Replace result code with general error"; } leaf cdn-temporary-no-facilities { type boolean; default "false"; description "Replace result code with general error"; } } // container replace-result-code container lac { description "Enter the lac context"; leaf df-bit { type boolean; default "true"; description "Send all L2TP packets with DF bit set to 1"; } leaf calling-number-format { type types-sros:ascii-specification { length "1..255"; pattern "([^%]+|%[Scrsl%])+"; } default "%S %s"; description "Calling Number AVP for L2TP control messages"; } container cisco-nas-port { description "Enter the cisco-nas-port context"; leaf ethernet { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[smpoi])+"; } description "L2TP Cisco NAS port AVP with binary patterns for Ethernet"; } } // container cisco-nas-port } // container lac container tunnel-selection-blacklist { description "Enter the tunnel-selection-blacklist context"; leaf max-time { type int32 { range "1..60"; } units "minutes"; default "5"; description "Max time that a tunnel or peer can remain in denylist"; } leaf max-list-length { type union { type int32 { range "1..65535"; } type enumeration { enum "infinite" { value -1; } } } default "infinite"; description "Tunnels or peers in the denylist"; } leaf timeout-action { type enumeration { enum "remove-from-blacklist" { value 0; } enum "try-one-session" { value 1; } } default "remove-from-blacklist"; description "Action when a tunnel or peer exceeds time in denylist"; } container add-tunnel-on { description "Enter the add-tunnel-on context"; leaf address-change-timeout { type boolean; default "false"; description "Enable a timed-out tunnel to be forced to the denylist"; } leaf cdn-err-code { type boolean; default "false"; description "Add to deny if CDN is received with code: General error"; } leaf cdn-invalid-dst { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 6"; } leaf cdn-permanent-no-facilities { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 5"; } leaf cdn-temporary-no-facilities { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 4"; } leaf stop-ccn-err-code { type boolean; default "false"; description "Add to denylist if received with general error code"; } leaf stop-ccn-other { type boolean; default "false"; description "Add to denylist if StopCCN received with general error"; } leaf tx-cdn-not-established-in-time { type boolean; default "false"; description "Add to denylist if CDN transmitted with result code"; } } // container add-tunnel-on } // container tunnel-selection-blacklist container failover { description "Enter the failover context"; leaf recovery-method { type types-l2tp:base-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:base-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } leaf recovery-max-session-lifetime { type uint32 { range "2..4294967295"; } units "centiseconds"; default "2"; description "Subset of sessions that this system attempts to synchronize in the Session State Synchronization phase"; } list track-srrp { key "id"; description "Enter the track-srrp list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4294967295"; } } description "SRRP instance ID for multi-chassis redundancy failover"; } leaf peer { type types-sros:ip-unicast-address; description "Multi-chassis peer address"; } leaf sync-tag { type types-sros:named-item; description "Synchronization tag on the multi-chassis peer"; } } // list track-srrp } // container failover container l2tpv3 { description "Enter the l2tpv3 context"; leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TPv3 password"; } leaf cookie-length { type types-l2tp:base-v3-cookie-length; description "Cookie field length"; } leaf digest-type { type types-l2tp:base-v3-digest-type; description "Hashing algorithm that calculates the message digest"; } leaf nonce-length { type types-l2tp:base-v3-nonce-length; description "Length of the local L2TPv3 nonce (random number)"; } leaf public-tcp-mss-adjust { type types-l2tp:base-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:base-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } container transport-type { description "Enter the transport-type context"; leaf ip { type boolean; default "false"; description "Use IP as the transport type for the L2TPv3 tunnel"; } } // container transport-type } // container l2tpv3 container ethernet-tunnel { description "Enter the ethernet-tunnel context"; leaf reconnect-timeout { type types-l2tp:base-v3-reconnect-timeout; description "Timeout for a session setup retry"; } } // container ethernet-tunnel list group { key "tunnel-group-name"; description "Enter the group list instance"; leaf tunnel-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64 { length "1..63"; } } description "Tunnel group name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2TP tunnel group"; } leaf description { type types-sros:description; description "Text description"; } leaf protocol { type types-l2tp:protocol-version; sros-ext:immutable; description "Protocol version"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:child-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:child-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:child-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:child-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:child-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:child-max-retries; description "Maximum retries for unestablished tunnels"; } leaf radius-accounting-policy { type types-sros:named-item; description "RADIUS accounting policy"; } leaf local-name { type types-l2tp:host-name; description "The local host name."; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "The password."; } leaf challenge { type types-sros:bool-with-inherit; description "Enable/disable the use of challenge-response authentication."; } leaf avp-hiding { type types-l2tp:child-avp-hiding; description "The AVP hiding algorithm"; } leaf session-limit { type types-l2tp:child-session-limit; description "Session limit"; } leaf session-assign-method { type types-l2tp:child-session-assign-method; description "Session assignment method"; } container failover { description "Enter the failover context"; leaf recovery-method { type types-l2tp:child-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:child-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } } // container failover container lac { description "Enter the lac context"; leaf df-bit { type types-sros:bool-with-inherit; description "DF (do not fragment) bit in data traffic transmitted as LAC"; } } // container lac container l2tpv3 { description "Enter the l2tpv3 context"; leaf rem-router-id { type types-sros:ipv4-address; default "0.0.0.0"; description "Filter on remote router ID"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TPv3 password"; } leaf track-password-change { type boolean; default "false"; description "Enable tracking of password changes"; } leaf cookie-length { type types-l2tp:child-v3-cookie-length; description "Cookie field length"; } leaf digest-type { type types-l2tp:child-v3-digest-type; description "Hashing algorithm that calculates the message digest"; } leaf nonce-length { type types-l2tp:child-v3-nonce-length; description "Length for the local L2TPv3 nonce (random number)"; } leaf public-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP Maximum Segment Size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } container pw-cap-list { description "Enter the pw-cap-list context"; leaf ethernet { type boolean; default "false"; description "Advertise Ethernet pseudowire type"; } leaf ethernet-vlan { type boolean; default "false"; description "Advertise Ethernet VLAN pseudowire type"; } } // container pw-cap-list } // container l2tpv3 container ethernet-tunnel { description "Enter the ethernet-tunnel context"; leaf reconnect-timeout { type types-l2tp:child-v3-reconnect-timeout; description "Timeout for a session setup retry at group level"; } } // container ethernet-tunnel container lns { description "Enter the lns context"; leaf load-balance-method { type types-l2tp:base-load-balance-method; default "per-session"; description "New sessions for L2TP ISA MDA"; } leaf lns-group { type types-l2tp:lns-group-id; description "ISA LNS group"; } container ppp { description "Enter the ppp context"; leaf authentication-policy { type types-sros:named-item; description "Authentication policy when a DHCP message is received"; } leaf user-db { type types-sros:named-item; description "Local user database for PPP PAP and CHAP authentication"; } leaf proxy-lcp { type boolean; default "false"; description "Proxy LCP AVPs that are received from LAC"; } leaf lcp-ignore-magic-numbers { type boolean; default "false"; description "Check Magic-Number field in LCP Echo-Request and LCP Echo-Reply messages"; } leaf lcp-force-ack-accm { type boolean; default "false"; description "Force acknowledgement of the LCP Asynchronous Control Character Map (ACCM) option"; } leaf reject-disabled-ncp { type boolean; default "false"; description "Enable/disable rejection of disabled Network Control Protocols (NCP)"; } leaf mtu { type types-l2tp:base-ppp-mtu; default "1500"; description "Maximum PPP MTU size"; } leaf proxy-authentication { type boolean; default "false"; description "Use authentication AVPs that are received from LAC"; } leaf authentication { type types-l2tp:base-ppp-auth-protocol; default "pref-chap"; description "PPP authentication protocol to negotiate"; } leaf ipcp-subnet-negotiation { type boolean; default "false"; description "Allow IPCP subnet negotiation for PPPoE hosts"; } container default-group-interface { description "Enter the default-group-interface context"; leaf interface { type types-sros:named-item; description "Group interface"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } } // container default-group-interface container keepalive { description "Enter the keepalive context"; leaf interval { type types-l2tp:base-lcp-keepalive-interval; default "30"; description "PPP keepalive interval"; } leaf multiplier { type types-l2tp:base-lcp-keepalive-multiplier; default "3"; description "PPP keepalive multiplier"; } } // container keepalive container chap-challenge-length { description "Enter the chap-challenge-length context"; leaf start { type types-l2tp:base-chap-challenge-length; default "32"; description "Minimum PPP CHAP challenge length"; } leaf end { type types-l2tp:base-chap-challenge-length; default "64"; description "Maximum PPP CHAP challenge length"; } } // container chap-challenge-length } // container ppp container mlppp { description "Enter the mlppp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MLPPP in this L2TP tunnel group"; } leaf max-links { type types-l2tp:base-mlppp-max-links; default "1"; description "Maximum MLPPP links"; } leaf interleave { type boolean; default "false"; description "Enable link fragmentation and interleaving"; } leaf max-fragment-delay { type types-l2tp:base-mlppp-max-frag-delay; default "no-fragmentation"; description "Maximum fragment delay caused by transmission on a link"; } leaf reassembly-timeout { type types-l2tp:base-mlppp-reassembly-timeout; default "1000"; description "Reassembly timeout"; } leaf short-sequence-numbers { type boolean; default "false"; description "Request a peer to send short sequence numbers"; } container endpoint { description "Enter the endpoint context"; choice endpoint { case ip { leaf ip { type types-ppp:mlppp-ip-endpoint; description "Endpoint ID as an IP address"; } } case mac { leaf mac { type types-ppp:mlppp-mac-endpoint; description "Endpoint ID as a MAC address"; } } } } // container endpoint } // container mlppp } // container lns list tunnel { key "tunnel-name"; max-elements 31; description "Enter the tunnel list instance"; leaf tunnel-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item { length "1..32"; } } description "Tunnel name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2TP tunnel"; } leaf description { type types-sros:description; description "Text description"; } leaf preference { type uint32 { range "0..16777215"; } default "50"; description "Tunnel preference number with its group"; } leaf auto-establish { type boolean; default "false"; description "Allow the tunnel to be automatically set up by the system"; } leaf peer { type types-sros:ipv4-unicast-address; description "Peer address"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:child-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:child-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:child-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:child-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:child-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:child-max-retries; description "Maximum retries for unestablished tunnels"; } leaf radius-accounting-policy { type types-sros:named-item; description "RADIUS accounting policy"; } leaf remote-name { type types-l2tp:host-name; description "Remote host name for tunnel"; } leaf local-name { type types-l2tp:host-name; description "The local host name."; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "The password."; } leaf challenge { type types-sros:bool-with-inherit; description "Enable/disable the use of challenge-response authentication."; } leaf avp-hiding { type types-l2tp:child-avp-hiding; description "The AVP hiding algorithm"; } leaf session-limit { type types-l2tp:child-tunnel-session-limit; description "L2TP session limit for each tunnel of this router"; } container failover { description "Enter the failover context"; leaf recovery-method { type types-l2tp:child-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:child-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } } // container failover container lac { description "Enter the lac context"; leaf df-bit { type types-sros:bool-with-inherit; description "DF (do not fragment) bit in data traffic transmitted as LAC"; } } // container lac container l2tpv3 { description "Enter the l2tpv3 context"; leaf public-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } } // container l2tpv3 container lns { description "Enter the lns context"; leaf load-balance-method { type types-l2tp:child-load-balance-method; description "New sessions for L2TP ISA MDA"; } leaf lns-group { type types-l2tp:lns-group-id; description "ISA LNS group"; } container ppp { description "Enter the ppp context"; leaf authentication-policy { type types-sros:named-item; description "Authentication policy when a DHCP message is received"; } leaf user-db { type types-sros:named-item; description "Local user database for PPP PAP and CHAP authentication"; } leaf proxy-lcp { type types-sros:bool-with-inherit; description "Use the Proxy LCP AVPs that are received from the LAC"; } leaf lcp-ignore-magic-numbers { type types-sros:bool-with-inherit; description "Magic-Number field in LCP Echo-Request and LCP Echo-Reply messages that are checked"; } leaf lcp-force-ack-accm { type types-sros:bool-with-inherit; description "Forced acknowledgement of the LCP Asynchronous Control Character Map (ACCM) option"; } leaf reject-disabled-ncp { type types-sros:bool-with-inherit; description "Enable/disable rejection of disabled Network Control Protocols (NCP)"; } leaf mtu { type types-l2tp:child-ppp-mtu; description "Maximum PPP MTU size"; } leaf proxy-authentication { type types-sros:bool-with-inherit; description "Authentication AVPs that are received from LAC"; } leaf authentication { type types-l2tp:child-ppp-auth-protocol; description "PPP authentication protocol to negotiate"; } leaf ipcp-subnet-negotiation { type types-sros:bool-with-inherit; description "Use of IPCP subnet negotiation for PPPoE hosts"; } container default-group-interface { description "Enter the default-group-interface context"; leaf interface { type types-sros:named-item; description "Group interface"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } } // container default-group-interface container keepalive { description "Enter the keepalive context"; leaf interval { type types-l2tp:child-lcp-keepalive-interval; description "PPP keepalive interval"; } leaf multiplier { type types-l2tp:child-lcp-keepalive-multiplier; description "PPP keepalive multiplier"; } } // container keepalive container chap-challenge-length { description "Enter the chap-challenge-length context"; leaf start { type types-l2tp:child-chap-challenge-length; description "Minimum PPP CHAP challenge length"; } leaf end { type types-l2tp:child-chap-challenge-length; description "Minimum PPP CHAP challenge length"; } } // container chap-challenge-length } // container ppp container mlppp { description "Enter the mlppp context"; leaf admin-state { type types-sros:admin-state-with-inherit; description "Administrative state of MLPPP in the L2TP tunnel"; } leaf max-links { type types-l2tp:child-mlppp-max-links; description "Maximum MLPPP links"; } leaf interleave { type types-sros:bool-with-inherit; description "Use of Link fragmentation and interleaving"; } leaf max-fragment-delay { type types-l2tp:child-mlppp-max-frag-delay; description "Maximum fragment delay caused by transmission on a link"; } leaf reassembly-timeout { type types-l2tp:child-mlppp-reassembly-timeout; description "Reassembly timeout"; } leaf short-sequence-numbers { type types-sros:bool-with-inherit; description "Request a peer to send short sequence numbers"; } container endpoint { description "Enter the endpoint context"; choice endpoint { case ip { leaf ip { type types-ppp:mlppp-ip-endpoint; description "Endpoint ID as an IP address"; } } case mac { leaf mac { type types-ppp:mlppp-mac-endpoint; description "Endpoint ID as a MAC address"; } } } } // container endpoint } // container mlppp } // container lns } // list tunnel } // list group } // container l2tp container ldp { presence "Enter the 'ldp' context"; description "Enable the ldp context"; leaf class-forwarding { type enumeration { enum "lsr" { value 1; description "class-forwarding for LSR/SWAP only"; } enum "ler" { value 2; description "class-forwarding for LER/PUSH only"; } enum "lsr-and-ler" { value 3; description "class-forwarding for LER/PUSH and LSR/SWAP"; } } description "Allow class-based forwarding for LDP over RSVP"; } leaf entropy-label-capability { type boolean; default "false"; description "Allow receiving and processing of the entropy label and ELI on incoming packets of LDP LSPs"; } leaf implicit-null-label { type boolean; default "false"; description "Signal the implicit null label value for all LDP FECs for which the node is the egress LER"; } leaf consider-system-ip-in-gep { type boolean; default "false"; description "Use Global Export Policies to determine whether to create a FEC for the system IP addresses"; } leaf label-withdrawal-delay { type uint32 { range "3..120"; } units "seconds"; description "Time interval during which LDP delays for the withdrawal of FEC-label binding"; } leaf legacy-ipv4-lsr-interop { type boolean; default "false"; description "Allow interoperability with legacy IPv4 LSR implementations"; } leaf mcast-upstream-frr { type boolean; default "false"; description "Use fast upstream switchover for mLDP FECs"; } leaf mp-mbb-time { type uint32 { range "0..10"; } units "seconds"; default "3"; description "MP MBB time"; } leaf shortcut-local-ttl-propagate { type boolean; default "true"; description "Propagate TTL over LSP shortcut for local packets"; } leaf shortcut-transit-ttl-propagate { type boolean; default "true"; description "Enable/disable TTL propagation over LSP shortcut for transit packets."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the LDP instance"; } leaf tunnel-down-damp-time { type uint32 { range "0..20"; } units "seconds"; default "3"; description "Time interval for an LDP to damp a tunnel down event before posting to the Route Table Manager (RTM)"; } leaf prefer-tunnel-in-tunnel { type boolean; default "true"; description "Preference tunnel-in-tunnel over a simple LDP tunnel"; } leaf prefer-mcast-tunnel-in-tunnel { type boolean; default "true"; description "Use T-LDP session to the peer for FEC resolution"; } leaf mcast-upstream-asbr-frr { type boolean; default "false"; description "Enable ASBR MoFRR to allow local leaf to perform MoFRR for multiple ASBRs"; } leaf generate-basic-fec-only { type boolean; default "false"; description "Ability for mLDP to generate a basic FEC despite the actual root node being resolved using BGP"; } leaf resolve-root-using { type enumeration { enum "ucast-rtm" { value 1; } enum "mcast-rtm" { value 2; } } default "ucast-rtm"; description "Resolution route table for multicast FECs"; } leaf weighted-ecmp { type boolean; default "false"; description "Allow weighted load-balancing"; } leaf max-ecmp-routes { type uint32 { range "1..64"; } default "32"; description "Maximum ECMP value for LDP"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Import policies to filter LDP label bindings received from LDP peers"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "First export policies to filter LDP label bindings advertised to LDP peers"; } leaf-list export-tunnel-table { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Tunnel table export policies to export tunneled routes"; } leaf-list import-tunnel-table { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Tunnel table import policies to control the insertion of non-host prefixes resolved by LDP"; } leaf-list import-mcast-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Specifies import multicast policies used for controlling which multicast FECs are accepted from downtream peers for resolution. Up to 5 policies can be specified."; } container aggregate-prefix-match { presence "Enter the 'aggregate-prefix-match' context"; description "Enable the aggregate-prefix-match context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the LDP aggregate prefix match"; } leaf-list prefix-exclude { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Import policies to filter LDP label bindings received from LDP peers"; } } // container aggregate-prefix-match container fast-reroute { presence "Enter the 'fast-reroute' context"; description "Enable the fast-reroute context"; leaf backup-sr-tunnel { type boolean; default "false"; description "Use SR tunnel as a remote LFA backup tunnel next-hop by an LDP FEC"; } } // container fast-reroute container graceful-restart { description "Enter the graceful-restart context"; leaf helper-mode { type boolean; default "false"; description "Enable graceful restart helper"; } leaf maximum-recovery-time { type uint32 { range "15..1800"; } units "seconds"; default "120"; description "Value for the local maximum recovery time"; } leaf neighbor-liveness-time { type uint32 { range "5..300"; } units "seconds"; default "120"; description "Value for the neighbor liveness timer"; } } // container graceful-restart container ldp-shortcut { description "Enter the ldp-shortcut context"; leaf ipv4 { type boolean; default "false"; description "Forward IPv4 packets by using LDP shortcuts"; } leaf ipv6 { type boolean; default "false"; description "Forward IPv6 packets by using LDP shortcuts"; } } // container ldp-shortcut container import-pmsi-routes { description "Enter the import-pmsi-routes context"; leaf mvpn { type boolean; default "false"; description "Enable/disable import of BGP MVPN inter-AS routes."; } leaf mvpn-no-export-community { type boolean; default "false"; description "Enable/disable import of BGP MVPN intra-AS routes."; } } // container import-pmsi-routes list fec-originate { key "fec-prefix"; description "Enter the fec-originate list instance"; leaf fec-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "Static FEC IP prefix"; } leaf advertised-label { type types-sros:mpls-label; description "Label that is advertised to upstream peer"; } choice swap-or-pop { case swap { leaf next-hop { type types-sros:ip-address; description "IP address of the next hop"; } leaf interface { type types-sros:named-item-or-empty; description "Interface name for this static FEC prefix"; } leaf swap-label { type uint32 { range "6..1048575"; } description "Value mapped to egress label associated with next-hop entry that LSR uses to swap incoming label"; } } case pop { leaf pop { type boolean; description "Pop the label and transmit without the label"; } } } } // list fec-originate container egress-statistics { description "Enter the egress-statistics context"; list fec-prefix { key "ip-prefix"; description "Enter the fec-prefix list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "IP prefix"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy ID"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the LDP egress statistics"; } } // list fec-prefix } // container egress-statistics list lsp-bfd { key "prefix-list"; max-elements 16; description "Enter the lsp-bfd list instance"; leaf prefix-list { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of a router policy options prefix list"; } leaf bfd-template { type types-sros:named-item; description "BFD template to apply to BFD sessions associated with the prefix list"; } leaf failure-action { type enumeration { enum "down" { value 1; } } description "Reaction to BFD session failure for the prefix list"; } leaf lsp-ping-interval { type union { type uint32 { range "60..300"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "60"; description "LSP ping transmit interval for periodic verification"; } leaf priority { type uint32 { range "1..99"; } default "1"; description "Prefix list to control the search order"; } leaf source-address { type types-sros:ip-unicast-address; description "Source address in LSP ping packets and BFD control packets associated with prefix list"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD on LDP LSPs with FECs that match the prefix list"; } } // list lsp-bfd container session-parameters { description "Enter the session-parameters context"; list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "IP address for server"; } leaf adv-adj-addr-only { type boolean; default "false"; description "Distribute only the local addresses used to establish the Hello adjacencies with a peer"; } leaf adv-local-lsr-id { type boolean; default "false"; description "Advertise local LSR ID over a specified LDP session"; } leaf dod-label-distribution { type boolean; default "false"; description "Use LDP Downstream-on-Demand (DoD) label distribution procedures"; } leaf fec129-cisco-interop { type boolean; default "false"; description "Allow translation between non-compliant FEC 129 formats of Cisco"; } leaf pe-id-mac-flush-interop { type boolean; default "false"; description "LDP to send the non-standard PE-ID TLV in an address withdraw message"; } leaf community { type types-ldp:policy-string; description "Community string associated with a session to a specified peer"; } leaf-list export-addresses { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Export policies to determine which local addresses should be distributed to this peer"; } leaf-list export-prefixes { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Export policies to determine which FEC prefixes are redistributed to LDP and TLDP peers"; } leaf-list import-prefixes { type types-sros:named-item-64; max-elements 5; ordered-by user; description "FEC prefixes to be redistributed to this LDP peer"; } container fec-limit { description "Enter the fec-limit context"; leaf limit { type uint32 { range "0|1..4294967295"; } default "0"; description "Maximum number of FECs to be accepted from this peer LSR"; } leaf log-only { type boolean; default "false"; description "Trap and syslog message to generate when reaching the threshold and limit"; } leaf threshold { type uint32 { range "1..100"; } default "90"; description "Threshold when a trap and a syslog message are generated as warning and when limit is reached"; } } // container fec-limit container fec-type-capability { description "Enter the fec-type-capability context"; leaf p2mp { type boolean; default "true"; description "Enable P2MP FEC capability for the session"; } leaf prefix-ipv4 { type boolean; default "true"; description "Enable IPv4 prefix FEC capability for the session"; } leaf prefix-ipv6 { type boolean; default "true"; description "Enable IPv6 prefix FEC capability"; } } // container fec-type-capability } // list peer } // container session-parameters container tcp-session-parameters { description "Enter the tcp-session-parameters context"; leaf authentication-keychain { type types-sros:named-item; description "TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "Authentication key for the peer"; } list peer-transport { key "ip-address"; description "Enter the peer-transport list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "IP address of an LDP peer"; } leaf authentication-keychain { type types-sros:named-item; description "TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "Authentication key for the peer"; } leaf path-mtu-discovery { type boolean; default "false"; description "Allow Path MTU Discovery for associated TCP connections"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for incoming BGP packet"; } } // list peer-transport } // container tcp-session-parameters container interface-parameters { description "Enter the interface-parameters context"; container ipv4 { description "Enter the ipv4 context"; leaf transport-address { type enumeration { enum "interface" { value 1; } enum "system" { value 2; } } default "system"; description "Transport address to set up the LDP TCP sessions"; } container hello { description "Enter the hello context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "15"; description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Value for the Hello factor"; } } // container hello container keepalive { description "Enter the keepalive context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "30"; description "Timeout value for keepalive"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Value for the keep-alive factor"; } } // container keepalive } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf transport-address { type enumeration { enum "interface" { value 1; } enum "system" { value 2; } } default "system"; description "Transport address to set up the LDP TCP sessions"; } container hello { description "Enter the hello context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "15"; description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Value for the Hello factor"; } } // container hello container keepalive { description "Enter the keepalive context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "30"; description "Timeout value for keepalive"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Value for the keep-alive factor"; } } // container keepalive } // container ipv6 list interface { key "ip-int-name"; description "Enter the interface list instance"; leaf ip-int-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LDP"; } leaf load-balancing-weight { type uint32; description "Load balancing weight for the LDP interface"; } container bfd-liveness { description "Enter the bfd-liveness context"; leaf ipv4 { type boolean; default "false"; description "Allow BFD tracking of IPv4 LDP Session for interface"; } leaf ipv6 { type boolean; default "false"; description "Allow BFD tracking of IPv4 LDP Session for interface"; } } // container bfd-liveness container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LDP"; } leaf transport-address { type enumeration { enum "interface" { value 1; } enum "system" { value 2; } } description "Transport address to set up the LDP TCP sessions"; } container hello { presence "Enter the 'hello' context"; description "Enable the hello context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for Hello"; } } // container hello container keepalive { presence "Enter the 'keepalive' context"; description "Enable the keepalive context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Time that LDP waits before tearing down session"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for keepalive"; } } // container keepalive container fec-type-capability { description "Enter the fec-type-capability context"; leaf p2mp-ipv4 { type boolean; default "true"; description "Enable IPv4 P2MP FEC capability"; } leaf p2mp-ipv6 { type boolean; default "true"; description "Enable IPv6 P2MP FEC capability"; } leaf prefix-ipv4 { type boolean; default "true"; description "Enable IPv4 prefix FEC capability"; } leaf prefix-ipv6 { type boolean; default "true"; description "Enable IPv6 prefix FEC capability"; } } // container fec-type-capability container local-lsr-id { description "Enter the local-lsr-id context"; leaf interface-name { type types-sros:interface-name; description "Name of network IP interface from which to obtain IP address to use as LSR-ID of LDP LSP"; } } // container local-lsr-id } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LDP"; } leaf transport-address { type enumeration { enum "interface" { value 1; } enum "system" { value 2; } } description "Transport address to set up the LDP TCP sessions"; } container hello { presence "Enter the 'hello' context"; description "Enable the hello context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for Hello"; } } // container hello container keepalive { presence "Enter the 'keepalive' context"; description "Enable the keepalive context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Time that LDP waits before tearing down session"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for keepalive"; } } // container keepalive container fec-type-capability { description "Enter the fec-type-capability context"; leaf p2mp-ipv4 { type boolean; default "true"; description "Enable IPv4 P2MP FEC capability"; } leaf p2mp-ipv6 { type boolean; default "true"; description "Enable IPv6 P2MP FEC capability"; } leaf prefix-ipv4 { type boolean; default "true"; description "Enable IPv4 prefix FEC capability"; } leaf prefix-ipv6 { type boolean; default "true"; description "Enable IPv6 prefix FEC capability"; } } // container fec-type-capability container local-lsr-id { description "Enter the local-lsr-id context"; leaf interface-name { type types-sros:interface-name; description "Name of network IP interface from which to obtain IP address to use as LSR-ID of LDP LSP"; } leaf format-32bit { type boolean; default "false"; description "Use IPv4 address of local LSR-ID interface as LSR-ID of the LDP LSR"; } } // container local-lsr-id } // container ipv6 } // list interface } // container interface-parameters container targeted-session { description "Enter the targeted-session context"; leaf sdp-auto-targeted-session { type boolean; default "true"; description "Allow auto-creation of targeted sessions by SDP"; } leaf-list export-prefixes { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Export route policy to determine which routes are exported to this targeted LDP session"; } leaf-list import-prefixes { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Import route policy to determine which routes are accepted from targeted LDP neighbors"; } container ipv4 { description "Enter the ipv4 context"; container hello { description "Enter the hello context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "45"; description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Factor value for Hello"; } } // container hello container keepalive { description "Enter the keepalive context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "40"; description "Timeout value for keepalive"; } leaf factor { type uint32 { range "1..255"; } default "4"; description "Factor value for keepalive"; } } // container keepalive container hello-reduction { description "Enter the hello-reduction context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of suppression of periodic targeted Hello messages between LDP peers"; } leaf factor { type uint32 { range "3..20"; } default "3"; description "Hello reduction dampening factor"; } } // container hello-reduction } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container hello { description "Enter the hello context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "45"; description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Factor value for Hello"; } } // container hello container keepalive { description "Enter the keepalive context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "40"; description "Timeout value for keepalive"; } leaf factor { type uint32 { range "1..255"; } default "4"; description "Factor value for keepalive"; } } // container keepalive container hello-reduction { description "Enter the hello-reduction context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of suppression of periodic targeted Hello messages between LDP peers"; } leaf factor { type uint32 { range "3..20"; } default "3"; description "Hello reduction dampening factor"; } } // container hello-reduction } // container ipv6 list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "IP address of the peer"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD tracking of LDP session for the peer"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the peer"; } container local-lsr-id { description "Enter the local-lsr-id context"; leaf interface-name { type types-sros:interface-name; description "Name of network IP interface from which to obtain IP address to use as LSR-ID of LDP LSP"; } leaf format-32bit { type boolean; default "false"; description "Use IPv4 address of local LSR-ID interface as LSR-ID of the LDP LSR"; } } // container local-lsr-id container hello { presence "Enter the 'hello' context"; description "Enable the hello context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for Hello"; } } // container hello container keepalive { presence "Enter the 'keepalive' context"; description "Enable the keepalive context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Time that LDP waits before tearing down session"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for keepalive"; } } // container keepalive container hello-reduction { presence "Enter the 'hello-reduction' context"; description "Enable the hello-reduction context"; leaf admin-state { type types-sros:admin-state-with-inherit; description "Administrative state of suppression of Hello messages"; } leaf factor { type uint32 { range "3..20"; } description "Hello reduction dampening factor"; } } // container hello-reduction container tunneling { presence "Enter the 'tunneling' context"; description "Enable the tunneling context"; list lsp { key "lsp-name"; max-elements 4; description "Add a list entry for lsp"; leaf lsp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "LSP name"; } } // list lsp } // container tunneling container mcast-tunneling { presence "Enter the 'mcast-tunneling' context"; description "Enable the mcast-tunneling context"; list lsp { key "lsp-name"; max-elements 4; description "Add a list entry for lsp"; leaf lsp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "LSP name"; } } // list lsp } // container mcast-tunneling } // list peer list peer-template { key "template-name"; max-elements 500; description "Enter the peer-template list instance"; leaf template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for the targeted peer template"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the peer template"; } leaf adv-local-lsr-id { type boolean; default "false"; description "Advertise local LSR ID over a specified LDP session"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD tracking of LDP session for sessions created by peer template"; } leaf community { type types-ldp:policy-string; description "Community string associated with a session to a specified peer"; } leaf tunneling { type boolean; default "false"; description "Allow LDP over tunnels for sessions created by peer template"; } leaf mcast-tunneling { type boolean; default "false"; description "Enable MLDP over RSVP-TE tunnels for the template"; } container hello { presence "Enter the 'hello' context"; description "Enable the hello context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for Hello"; } } // container hello container hello-reduction { presence "Enter the 'hello-reduction' context"; description "Enable the hello-reduction context"; leaf admin-state { type types-sros:admin-state-with-inherit; description "Administrative state of suppression of Hello messages"; } leaf factor { type uint32 { range "3..20"; } description "Hello reduction dampening factor"; } } // container hello-reduction container keepalive { presence "Enter the 'keepalive' context"; description "Enable the keepalive context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Time that LDP waits before tearing down session"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for keepalive"; } } // container keepalive container local-lsr-id { description "Enter the local-lsr-id context"; leaf interface-name { type types-sros:interface-name; description "Name of network IP interface from which to obtain IP address to use as LSR-ID of LDP LSP"; } } // container local-lsr-id } // list peer-template list peer-template-map { key "template-map-name"; max-elements 500; description "Enter the peer-template-map list instance"; leaf template-map-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name to identify the targeted peer template"; } leaf-list policy-map { type types-sros:named-item-64; min-elements 1; max-elements 5; ordered-by user; description "Targeted peer template to apply to the given policies"; } } // list peer-template-map container auto-tx { description "Enter the auto-tx context"; container ipv4 { description "Enter the ipv4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IPv4 capabilities for peers"; } leaf tunneling { type boolean; default "false"; description "Enable tunneling for targeted peers"; } } // container ipv4 } // container auto-tx container auto-rx { description "Enter the auto-rx context"; container ipv4 { description "Enter the ipv4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IPv4 capabilities for peers"; } leaf tunneling { type boolean; default "false"; description "Enable tunneling for targeted peers"; } } // container ipv4 } // container auto-rx } // container targeted-session } // container ldp container mld { presence "Enter the 'mld' context"; description "Enable the mld context"; leaf group-if-query-source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source address in queries for group interfaces when not configured at group interface level"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } units "seconds"; default "1"; description "Time between group-specific query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..10"; } default "2"; description "Robust count to tune for the expected packet loss on a subnet"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MLD operation"; } container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Start of group range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "End of group range"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } // list group-range } // container ssm-translate list interface { key "ip-interface-name"; description "Enter the interface list instance"; leaf ip-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name."; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type types-sros:named-item-64; description "Import policy to filter MLD packets"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-mcast-cac:constraints-level; } description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } description "Bandwidth available for this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..64"; } } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; description "Level ID to associate with number of down LAG ports"; } } // list number-down } // container mc-constraints container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Start of group range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "End of group range"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } // list group-range } // container ssm-translate container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Group address of multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group list group-range { key "start end step"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Start of group range of multicast channel"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "End of group range for multicast channel"; } leaf step { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "Step interval for the group-range addresses"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group-range } // container static } // list interface list group-interface { key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type types-sros:named-item-64; description "Import policy to filter MLD packets"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } leaf subnet-check { type boolean; default "true"; description "Enable subnet checking"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow MLD traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source address for MLD queries"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list group-interface } // container mld container mpls { presence "Enter the 'mpls' context"; description "Enable the mpls context"; leaf admin-group-frr { type boolean; default "false"; description "Use admin group constraints for FRR path computation"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MPLS instance"; } leaf bypass-resignal-timer { type uint32 { range "1..10080"; } units "minutes"; description "Resignal timer for bypass"; } leaf cspf-on-loose-hop { type boolean; default "false"; description "Calculate CSPF until next loose hop on LSR"; } leaf dynamic-bypass { type boolean; default "true"; description "Create dynamic bypass LSPs in FRR"; } leaf exponential-backoff-retry { type boolean; default "false"; description "Use exponential back-off timer when retrying an LSP"; } leaf frr-object { type boolean; default "true"; description "Signal with fast reroute object"; } leaf hold-timer { type uint32 { range "0..1000"; } units "seconds"; default "1"; description "Hold timer value"; } leaf least-fill-min-thd { type types-sros:percent; default "5"; description "Percentage of the least fill minimum threshold value"; } leaf least-fill-reoptim-thd { type types-sros:percent; default "10"; description "Percentage of the least fill reoptimization threshold value"; } leaf logger-event-bundling { type boolean; default "false"; description "Merge and bundle MPLS traps"; } leaf lsp-init-retry-timeout { type uint32 { range "10..600"; } units "seconds"; default "30"; description "LSP initial retry timeout"; } leaf max-bypass-associations { type uint32 { range "100..131072"; } default "1000"; description "Maximum number of LSPs to be associated with a bypass tunnel"; } leaf max-bypass-plr-associations { type uint32 { range "1..16"; } default "16"; description "Maximum number of PLRs per RSVP-TE bypass LSP"; } leaf mbb-prefer-current-hops { type boolean; default "false"; description "Select preference to use the current hops for Make-Before-Break (MBB)"; } leaf p2mp-resignal-timer { type uint32 { range "60..10080"; } units "minutes"; description "Resignal timer for P2MP LSPs"; } leaf p2mp-s2l-fast-retry { type uint32 { range "1..10"; } units "seconds"; description "Fast retry timer for P2MP S2L paths"; } leaf p2p-active-path-fast-retry { type uint32 { range "1..10"; } units "seconds"; description "Fast retry timer for P2P active paths"; } leaf resignal-timer { type uint32 { range "30..10080"; } units "minutes"; description "Resignal timer for RSVP LSPs"; } leaf retry-on-igp-overload { type boolean; default "false"; description "Tear down LSPs when IGP is in overload state"; } leaf secondary-fast-retry-timer { type uint32 { range "1..10"; } units "seconds"; description "Fast retry timer for secondary paths"; } leaf shortcut-local-ttl-propagate { type boolean; default "true"; description "Propagate TTL over LSP shortcut for local packets"; } leaf shortcut-transit-ttl-propagate { type boolean; default "true"; description "Propagate TTL over LSP shortcut for local packets for transit packets"; } leaf srlg-frr { type enumeration { enum "loose" { value 1; } enum "strict" { value 2; } } description "Use of Shared Risk Link Group (SRLG) constraint for FRR path computation"; } leaf static-lsp-fast-retry { type uint32 { range "1..30"; } units "seconds"; default "30"; description "Fast retry timer for static LSPs"; } leaf user-srlg-db { type boolean; default "false"; description "Enable/disable use of user SRLG database."; } leaf resignal-on-igp-overload { type boolean; default "false"; description "Resignal all RSVP-TE LSPs upon IGP overload"; } container lsp-self-ping { description "Enter the lsp-self-ping context"; leaf interval { type uint32 { range "1..10"; } default "1"; description "MPLS periodic LSP Self Ping interval"; } leaf rsvp-te { type boolean; default "false"; description "Activate LSP Self Ping on RSVP-TE LSPs"; } leaf timeout { type uint32 { range "3..3600"; } default "300"; description "MPLS LSP Self Ping timeout"; } leaf timeout-action { type enumeration { enum "retry" { value 1; } enum "switch" { value 2; } } default "retry"; description "Action taken when LSP Self Ping timer expires"; } } // container lsp-self-ping container auto-bandwidth-multipliers { description "Enter the auto-bandwidth-multipliers context"; leaf sample-multiplier { type uint32 { range "1..511"; } default "1"; description "Collection intervals in a sample interval"; } leaf adjust-multiplier { type uint32 { range "1..16383"; } default "288"; description "Collection intervals in a sample interval"; } } // container auto-bandwidth-multipliers container entropy-label { description "Enter the entropy-label context"; leaf rsvp-te { type boolean; description "Apply entropy labels to RSVP-TE LSPs"; } leaf sr-te { type boolean; description "Apply entropy labels to SR-TE LSPs"; } } // container entropy-label container pce-report { description "Enter the pce-report context"; leaf sr-te { type boolean; default "false"; description "Allow PCE reporting for all TE LSPs of SR-TE type"; } leaf rsvp-te { type boolean; default "false"; description "Allow PCE reporting for all TE LSPs of RSVP-TE type"; } } // container pce-report container srlg-database { description "Enter the srlg-database context"; list router-id { key "router-address"; description "Enter the router-id list instance"; leaf router-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Specifies a unique identifier of the router in the Autonomous System."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the interface"; } list interface { key "interface-address srlg-group"; description "Add a list entry for interface"; leaf interface-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Indicates the IP address of the interface."; } leaf srlg-group { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "SRLG group name"; } } // list interface } // list router-id } // container srlg-database list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MPLS"; } leaf te-metric { type uint32 { range "1..16777215"; } description "TE metric for the interface"; } leaf-list admin-group { type types-sros:named-item; max-elements 32; description "Name of the admin group membership of the MPLS interface"; } list srlg-group { key "name"; max-elements 64; description "Add a list entry for srlg-group"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Shared Risk Link Group (SRLG) name"; } } // list srlg-group list label-map { key "in-label"; description "Enter the label-map list instance"; leaf in-label { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mpls-label; } description "Match the incoming MPLS label"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the label map"; } choice label-map-choice { case pop { leaf pop { type empty; sros-ext:immutable; description "Pop (remove) the incoming label and forward packet based on service header"; } } case swap { container swap { presence "Enter the 'swap' context"; description "Enable the swap context"; leaf out-label { type union { type uint32 { range "16..1048575"; } type enumeration { enum "implicit-null-label" { value 3; } } } description "Push specific label onto the top of the outgoing packet's label stack"; } leaf next-hop { type types-sros:ipv4-unicast-address; description "IP address for the next hop"; } } // container swap } } } // list label-map } // list interface list class-forwarding-policy { key "policy-name"; max-elements 15; description "Enter the class-forwarding-policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of class forwarding policy"; } leaf default-set { type uint32 { range "1..6"; } default "1"; description "Default forwarding set ID"; } list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class name for LSP"; } leaf forwarding-set { type uint32 { range "1..6"; } default "1"; description "Forwarding set ID for forwarding classes"; } } // list fc } // list class-forwarding-policy list path { key "path-name"; max-elements 65535; description "Enter the path list instance"; leaf path-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Name for this LSP path"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this tunnel"; } list hop { key "hop-index"; max-elements 255; description "Enter the hop list instance"; leaf hop-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..1024"; } } description "Index to identify a particular hop"; } choice hop-info { case hop-ip-address { leaf ip-address { type types-sros:ip-address; sros-ext:immutable; description "IPv4 address of this hop"; } leaf type { type enumeration { enum "strict" { value 1; } enum "loose" { value 2; } } description "Tunnel hop type"; } } case hop-sid { leaf sid-label { type uint32 { range "32..1048575"; } description "MPLS label for tunnel hop in the path of an SR-TE LSP"; } } } } // list hop } // list path list lsp-template { key "template-name"; max-elements 4096; description "Enter the lsp-template list instance"; leaf template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of the LSP template to automatically create and signal multiple LSP instances"; } leaf type { type enumeration { enum "p2mp-rsvp" { value 1; } enum "p2p-rsvp-one-hop" { value 2; } enum "p2p-rsvp-mesh" { value 3; } enum "p2p-sr-te-one-hop" { value 4; } enum "p2p-sr-te-mesh" { value 5; } enum "p2p-sr-te-pce-init" { value 6; } } sros-ext:immutable; description "Configure type of the LSP template."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of LSP template"; } leaf backup-class-type { type types-mpls:class-type; default "0"; description "Configure backup-class-type for this LSP template."; } leaf bandwidth { type types-mpls:lsp-bandwidth; default "0"; description "Specify bandwidth in mbps for LSP instances created using this LSP template."; } leaf bgp-shortcut { type boolean; description "Enable/disable use of RSVP LSP for IPv4 BGP routes."; } leaf bgp-transport-tunnel { type boolean; default "true"; description "Include/exclude use of RSVP LSP as transport LSP for labeled IPv4 BGP routes."; } leaf default-path { type types-sros:named-item-64; sros-ext:immutable; description "Specify default path to be used for signaling LSP instances created using this LSP template."; } leaf from { type types-sros:ip-address; description "IP address of the ingress router for the LSP template."; } leaf hop-limit { type uint16 { range "2..255"; } description "Configure maximum number of hops that can be traversed by LSP instances created using this LSP template."; } leaf ldp-over-rsvp { type boolean; default "true"; description "Configure if this LSP will be included in LDP over RSVP."; } leaf metric { type uint32 { range "0..16777215"; } default "0"; description "Configure LSP template metric."; } leaf vprn-auto-bind { type boolean; default "true"; description "Configure if this LSP will be included in auto-bind for VPRN services."; } leaf pce-report { type types-sros:bool-with-inherit; description "Specifies whether to override the global configuration of reporting to PCE."; } leaf entropy-label { type types-sros:bool-with-inherit; description "Configure Entropy Label for LSP Template."; } leaf adaptive { type boolean; default "true"; description "Enable/disable make-before-break functionality."; } leaf adspec { type boolean; default "false"; description "Enable/disable inclusion of ADSPEC objects in RSVP messages."; } leaf class-type { type types-mpls:class-type; default "0"; description "Configure class-type."; } leaf least-fill { type boolean; default "false"; description "Configure use of least-fill path selection method."; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load balancing weight."; } leaf main-ct-retry-limit { type uint32 { range "1..10000"; } description "Max number of attempts before switching to backup class type."; } leaf propagate-admin-group { type boolean; default "false"; description "Enable/disable admin groups via session attribute object."; } leaf retry-limit { type uint32 { range "1..10000"; } description "Max number of attempts made to reestablish the LSP after it has failed."; } leaf retry-timer { type uint32 { range "1..600"; } units "seconds"; default "30"; description "Time between attempts to reestablish the LSP after it has failed."; } leaf record { type boolean; default "true"; description "Enable/disable recording of all hops."; } leaf record-label { type boolean; default "true"; description "Enable/disable recording of labels at each node or instance."; } leaf template-id { type union { type uint32 { range "1..max"; } type enumeration { enum "default" { value 0; } } } sros-ext:immutable; description "The value indicates lsp template-id. Configure this if LSP Template is of type p2p-sr-te-pce-init."; } leaf path-computation-method { type enumeration { enum "local-cspf" { value 2; } } description "Configure path computation method"; } leaf family { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 2; } } default "ipv4"; description "Address family that specifies template use in SR-TE LSP"; } leaf metric-type { type enumeration { enum "igp" { value 1; } enum "te" { value 2; } } default "igp"; description "Configure metric type used for LSP path computation."; } leaf local-sr-protection { type enumeration { enum "none" { value 1; } enum "preferred" { value 2; } enum "mandatory" { value 3; } } default "preferred"; description "Configure local SR protection preference for LSP path computation."; } leaf label-stack-reduction { type boolean; default "false"; description "Enable/disable label compression for LSP path."; } leaf lsp-self-ping { type types-sros:bool-with-inherit; description "LSP Self Ping activation status on RSVP-TE LSP template"; } leaf-list include-admin-group { type types-sros:named-item; max-elements 32; description "Admin group name included when LSP is set up"; } leaf-list exclude-admin-group { type types-sros:named-item; max-elements 32; description "Admin group name excluded when LSP is set up"; } container class-forwarding { presence "Enter the 'class-forwarding' context"; description "Enable the class-forwarding context"; choice cbf-choice { default "default-lsp-and-fc"; case default-lsp-and-fc { leaf default-lsp { status obsolete; type boolean; default "false"; description "Use the default LSP configuration for specified LSP or LSP template"; } leaf-list fc { status obsolete; type enumeration { enum "be" { value 0; } enum "l2" { value 1; } enum "af" { value 2; } enum "l1" { value 3; } enum "h2" { value 4; } enum "ef" { value 5; } enum "h1" { value 6; } enum "nc" { value 7; } } max-elements 8; description "One or more forwarding classes for LSP instances"; } } case forwarding-set { container forwarding-set { description "Enter the forwarding-set context"; leaf policy { type types-sros:named-item; description "Name for the class based forwarding policy for LSP instances"; } leaf set { type uint32 { range "1..6"; } description "Forwarding set ID"; } } // container forwarding-set } } } // container class-forwarding container cspf { status obsolete; description "Enter the cspf context"; leaf admin-state { status obsolete; type types-sros:admin-state; default "disable"; description "Administrative state of the CSPF support for LSP"; } leaf use-te-metric { status obsolete; type boolean; default "false"; description "TE metric for the LSP path computation by CSPF"; } } // container cspf container priority { description "Enter the priority context"; leaf setup-priority { type types-mpls:priority; default "7"; description "Setup priority when insufficient bandwidth is available to set up LSP"; } leaf hold-priority { type types-mpls:priority; default "0"; description "Hold priority when insufficient bandwidth is available to set up LSP"; } } // container priority container fast-reroute { presence "Enter the 'fast-reroute' context"; description "Enable the fast-reroute context"; leaf hop-limit { type uint32 { range "0..255"; } default "16"; description "Total number of hops a detour or backup LSP can take before merging back onto the main LSP path"; } leaf propagate-admin-group { type boolean; default "false"; description "Enable signaling of the primary LSP path admin-group constraints in the FRR object at ingress"; } leaf frr-method { type types-mpls:frr-method-type; default "facility"; description "Fast Reroute method for the LSPs that are dynamically created using this LSP template"; } leaf node-protect { type boolean; default "false"; description "Enable node and link protection for the specified LSP"; } } // container fast-reroute container igp-shortcut { description "Enter the igp-shortcut context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RSVP LSP to be used as a shortcut while resolving IGP routes"; } choice igp-choice { case lfa-type { leaf lfa-type { type enumeration { enum "lfa-protect" { value 1; } enum "lfa-only" { value 2; } } description "Specific RSVP LSP by IS-IS and OSPF routing protocols to assign as shortcut or as forwarding adjacency"; } } case relative-metric { leaf relative-metric { type int32 { range "-10..10"; } description "Shortest IGP cost between the endpoints of the LSP plus the configured offset"; } } } } // container igp-shortcut container max-sr-labels { description "Enter the max-sr-labels context"; leaf label-stack-size { type uint32 { range "1..11"; } description "Size for the maximum segment routing label stack"; } leaf additional-frr-labels { type uint32 { range "0..4"; } default "1"; description "Maximum number of additional overhead labels"; } } // container max-sr-labels list admin-tag { key "name"; max-elements 4; description "Add a list entry for admin-tag"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "Name of the admin tags"; } } // list admin-tag container auto-bandwidth { presence "Enter the 'auto-bandwidth' context"; description "Enable the auto-bandwidth context"; leaf max-bandwidth { type types-mpls:lsp-bandwidth; default "100000"; description "Maximum bandwidth of auto-bandwidth to request for the LSP"; } leaf min-bandwidth { type types-mpls:lsp-bandwidth; default "0"; description "Minimum bandwidth of auto-bandwidth to request for the LSP"; } leaf monitor-bandwidth { type boolean; default "false"; description "Collect and display auto-bandwidth measurements for the LSP"; } list fc { key "fc-name"; max-elements 8; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class name for LSP"; } leaf sampling-weight { type types-sros:percent; default "100"; description "Forwarding class weight for LSP"; } } // list fc container adjust-down { description "Enter the adjust-down context"; leaf percent { type types-sros:percent; default "5"; description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate"; } leaf bw { type types-mpls:lsp-bandwidth; default "0"; description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate"; } } // container adjust-down container adjust-up { description "Enter the adjust-up context"; leaf percent { type types-sros:percent; default "5"; description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate"; } leaf bw { type types-mpls:lsp-bandwidth; default "0"; description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate"; } } // container adjust-up container multipliers { description "Enter the multipliers context"; leaf sample-multiplier { type uint32 { range "1..511"; } description "Multiplier for collection intervals in a sample interval"; } leaf adjust-multiplier { type uint32 { range "1..16383"; } description "Number of collection intervals in the adjust interval"; } } // container multipliers container overflow-limit { presence "Enter the 'overflow-limit' context"; description "Enable the overflow-limit context"; leaf threshold { type types-sros:percent; default "0"; description "Minimum difference in percent between the LSP bandwidth and the sampled data rate"; } leaf bw { type types-mpls:lsp-bandwidth { range "1..6400000"; } description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate"; } leaf number { type uint32 { range "1..10"; } description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt"; } } // container overflow-limit container underflow-limit { presence "Enter the 'underflow-limit' context"; description "Enable the underflow-limit context"; leaf threshold { type types-sros:percent; default "0"; description "Minimum difference in percent between the LSP bandwidth and the sampled data rate"; } leaf bw { type types-mpls:lsp-bandwidth { range "1..6400000"; } description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate"; } leaf number { type uint32 { range "1..10"; } description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt"; } } // container underflow-limit } // container auto-bandwidth container egress-statistics { presence "Enter the 'egress-statistics' context"; description "Enable the egress-statistics context"; leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy ID"; } } // container egress-statistics container bfd { description "Enter the bfd context"; leaf bfd-liveness { type boolean; default "false"; description "Enable BFD on the RSVP LSP or S-BFD on the SR-TE LSP"; } leaf bfd-template { type types-sros:named-item; description "BFD template"; } leaf lsp-ping-interval { type union { type uint32 { range "60..300"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "60"; description "Interval for periodic LSP ping for BFD bootstrapping"; } leaf failure-action { type enumeration { enum "none" { value 0; } enum "down" { value 1; } enum "failover-or-down" { value 2; } } default "none"; description "Indicates the action to be taken when LSP BFD session fails"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; default "4"; description "Time to wait for BFD to become operationally available"; } } // container bfd } // list lsp-template list lsp { key "lsp-name"; description "Enter the lsp list instance"; leaf lsp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Labeled Switch path name"; } leaf type { type enumeration { enum "p2p-rsvp" { value 2; } enum "p2p-static-mpls" { value 3; } enum "p2p-rsvp-bypass" { value 4; } enum "p2mp-rsvp" { value 5; } enum "p2mp-rsvp-auto" { value 6; } enum "p2p-rsvp-mesh" { value 8; } enum "p2p-rsvp-one-hop" { value 9; } enum "p2p-sr-te" { value 10; } enum "p2p-sr-te-mesh" { value 11; } enum "p2p-sr-te-one-hop" { value 12; } enum "p2p-sr-te-pce-init" { value 13; } } sros-ext:immutable; description "LSP for bypass protection, point to multipoint, segment routing or MPLS-TP static LSP"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the LSP"; } leaf exclude-node { type types-sros:ip-address; description "Exclude Routers object to be included in the bypass path message"; } leaf from { type types-sros:ip-address; description "Source IP address of this LSP"; } leaf to { type types-sros:ip-address; description "Destination IP address or the egress router for the LSP"; } leaf hop-limit { type uint32 { range "2..255"; } default "255"; description "Maximum number of hops that an LSP can traverse including ingress and egress routers"; } leaf p2mp-id { type uint32 { range "1..65535"; } description "Unique identifier as Point-to-Multipoint (P2MP) identifier"; } leaf pce-control { type boolean; default "false"; description "Control of path (delegation) to Path Computation Engine (PCE) to be used"; } leaf revert-timer { type uint32 { range "1..4320"; } units "minutes"; description "Revert timer for this LSP"; } leaf rsvp-resv-style { type enumeration { enum "se" { value 1; } enum "ff" { value 2; } } default "se"; description "Reservation style for RSVP"; } leaf bgp-shortcut { type boolean; description "Include LSP for BGP routes"; } leaf bgp-transport-tunnel { type boolean; description "Include LSP as transport LSP for labeled BGP routes"; } leaf ldp-over-rsvp { type boolean; description "Include this LSP in LDP over RSVP"; } leaf metric { type uint32 { range "0..16777215"; } description "LSP metric that forces to a constant value"; } leaf vprn-auto-bind { type boolean; description "Include this LSP in auto-bind for VPRN services"; } leaf pce-report { type types-sros:bool-with-inherit; description "Global configuration of reporting to PCE to override"; } leaf entropy-label { type types-sros:bool-with-inherit; description "Entropy label"; } leaf adaptive { type boolean; default "true"; description "Enable/disable make-before-break functionality."; } leaf adspec { type boolean; default "false"; description "Enable/disable inclusion of ADSPEC object in RSVP messages."; } leaf class-type { type types-mpls:class-type; default "0"; description "Configure class type."; } leaf least-fill { type boolean; default "false"; description "Configure use of least-fill path selection method."; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load balancing weight."; } leaf main-ct-retry-limit { type uint32 { range "1..10000"; } description "Max number of attempts before switching to backup class type."; } leaf propagate-admin-group { type boolean; default "false"; description "Enable/disable admin groups via session attribute object."; } leaf retry-limit { type uint32 { range "1..10000"; } description "Max number of attempts made to reestablish the LSP after it has failed."; } leaf retry-timer { type uint32 { range "1..600"; } units "seconds"; default "30"; description "Time between attempts to reestablish the LSP after it has failed."; } leaf path-computation-method { type enumeration { enum "local-cspf" { value 2; } enum "pce" { value 3; } } description "Configure path computation method"; } leaf metric-type { type enumeration { enum "igp" { value 1; } enum "te" { value 2; } } default "igp"; description "Configure metric type used for LSP path computation."; } leaf local-sr-protection { type enumeration { enum "none" { value 1; } enum "preferred" { value 2; } enum "mandatory" { value 3; } } default "preferred"; description "Configure local SR protection preference for LSP path computation."; } leaf label-stack-reduction { type boolean; default "false"; description "Enable/disable label compression for LSP path."; } leaf lsp-self-ping { type types-sros:bool-with-inherit; description "LSP Self Ping activation status on the RSVP-TE LSP"; } leaf fallback-path-computation-method { type enumeration { enum "none" { value 1; } enum "local-cspf" { value 2; } } description "Fallback path computation method"; } leaf-list include-admin-group { type types-sros:named-item; max-elements 32; description "Admin group name included when LSP is set up"; } leaf-list exclude-admin-group { type types-sros:named-item; max-elements 32; description "Name of admin group excluded when LSP is set up"; } leaf pce-computation { status obsolete; type boolean; default "false"; description "LSP path computation request sent to local CSPF or to PCE"; } container class-forwarding { presence "Enter the 'class-forwarding' context"; description "Enable the class-forwarding context"; choice cbf-choice { default "default-lsp-and-fc"; case default-lsp-and-fc { leaf default-lsp { status obsolete; type boolean; default "false"; description "Use the default LSP configuration for specified LSP or LSP template"; } leaf-list fc { status obsolete; type enumeration { enum "be" { value 0; } enum "l2" { value 1; } enum "af" { value 2; } enum "l1" { value 3; } enum "h2" { value 4; } enum "ef" { value 5; } enum "h1" { value 6; } enum "nc" { value 7; } } max-elements 8; description "One or more forwarding classes for LSP instances"; } } case forwarding-set { container forwarding-set { description "Enter the forwarding-set context"; leaf policy { type types-sros:named-item; description "Name for the class based forwarding policy for LSP instances"; } leaf set { type uint32 { range "1..6"; } description "Forwarding set ID"; } } // container forwarding-set } } } // container class-forwarding container cspf { status obsolete; presence "Enter the 'cspf' context"; description "Enable the cspf context"; leaf use-te-metric { status obsolete; type boolean; default "false"; description "TE metric to the LSP path computation by CSPF"; } } // container cspf container igp-shortcut { description "Enter the igp-shortcut context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of the LSP to be used as a shortcut while resolving IGP routes"; } choice igp-choice { case lfa-type { leaf lfa-type { type enumeration { enum "lfa-protect" { value 1; } enum "lfa-only" { value 2; } } description "Specific RSVP LSP by IS-IS and OSPF routing protocols to assign as shortcut or as forwarding adjacency"; } } case relative-metric { leaf relative-metric { type int32 { range "-10..10"; } description "Shortest IGP cost between the endpoints of the LSP plus the configured offset"; } } } } // container igp-shortcut container fast-reroute { presence "Enter the 'fast-reroute' context"; description "Enable the fast-reroute context"; leaf hop-limit { type uint32 { range "0..255"; } default "16"; description "Total number of hops a detour or backup LSP can take before merging back onto the main LSP path"; } leaf propagate-admin-group { type boolean; default "false"; description "Enable signaling of the primary LSP path admin-group constraints in the FRR object at ingress"; } leaf frr-method { type types-mpls:frr-method-type; description "Fast Reroute method"; } leaf node-protect { type boolean; description "Enable node and link protection for the specified LSP"; } } // container fast-reroute container max-sr-labels { description "Enter the max-sr-labels context"; leaf label-stack-size { type uint32 { range "1..11"; } description "Maximum Label Stack size"; } leaf additional-frr-labels { type uint32 { range "0..4"; } default "1"; description "Value for the maximum additional overhead labels"; } } // container max-sr-labels list admin-tag { key "name"; max-elements 4; description "Add a list entry for admin-tag"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "Name of the admin tags"; } } // list admin-tag container auto-bandwidth { presence "Enter the 'auto-bandwidth' context"; description "Enable the auto-bandwidth context"; leaf max-bandwidth { type types-mpls:lsp-bandwidth; default "100000"; description "Maximum bandwidth of auto-bandwidth to request for the LSP"; } leaf min-bandwidth { type types-mpls:lsp-bandwidth; default "0"; description "Minimum bandwidth of auto-bandwidth to request for the LSP"; } leaf monitor-bandwidth { type boolean; default "false"; description "Collect and display auto-bandwidth measurements for the LSP"; } list fc { key "fc-name"; max-elements 8; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class name for LSP"; } leaf sampling-weight { type types-sros:percent; default "100"; description "Forwarding class weight for LSP"; } } // list fc container adjust-down { description "Enter the adjust-down context"; leaf percent { type types-sros:percent; default "5"; description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate"; } leaf bw { type types-mpls:lsp-bandwidth; default "0"; description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate"; } } // container adjust-down container adjust-up { description "Enter the adjust-up context"; leaf percent { type types-sros:percent; default "5"; description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate"; } leaf bw { type types-mpls:lsp-bandwidth; default "0"; description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate"; } } // container adjust-up container multipliers { description "Enter the multipliers context"; leaf sample-multiplier { type uint32 { range "1..511"; } description "Multiplier for collection intervals in a sample interval"; } leaf adjust-multiplier { type uint32 { range "1..16383"; } description "Number of collection intervals in the adjust interval"; } } // container multipliers container overflow-limit { presence "Enter the 'overflow-limit' context"; description "Enable the overflow-limit context"; leaf threshold { type types-sros:percent; default "0"; description "Minimum difference in percent between the LSP bandwidth and the sampled data rate"; } leaf bw { type types-mpls:lsp-bandwidth { range "1..6400000"; } description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate"; } leaf number { type uint32 { range "1..10"; } description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt"; } } // container overflow-limit container underflow-limit { presence "Enter the 'underflow-limit' context"; description "Enable the underflow-limit context"; leaf threshold { type types-sros:percent; default "0"; description "Minimum difference in percent between the LSP bandwidth and the sampled data rate"; } leaf bw { type types-mpls:lsp-bandwidth { range "1..6400000"; } description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate"; } leaf number { type uint32 { range "1..10"; } description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt"; } } // container underflow-limit container use-last-adj-bw { presence "Enter the 'use-last-adj-bw' context"; description "Enable the use-last-adj-bw context"; leaf secondary-retry-limit { type types-mpls:retry-limit; default "5"; description "Specify the max number of retry attempts that will be made to signal the secondary path with the last adjusted bandwidth."; } } // container use-last-adj-bw } // container auto-bandwidth container egress-statistics { presence "Enter the 'egress-statistics' context"; description "Enable the egress-statistics context"; leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for LSP"; } } // container egress-statistics container bfd { description "Enter the bfd context"; leaf bfd-liveness { type boolean; default "false"; description "Enable BFD on the RSVP LSP or S-BFD on the SR-TE LSP"; } leaf bfd-template { type types-sros:named-item; description "BFD template"; } leaf lsp-ping-interval { type union { type uint32 { range "60..300"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "60"; description "Interval for periodic LSP ping for BFD bootstrapping"; } leaf failure-action { type enumeration { enum "none" { value 0; } enum "down" { value 1; } enum "failover" { value 2; } enum "failover-or-down" { value 3; } } default "none"; description "Action when LSP BFD fails on the RSVP SR-TE LSP"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; default "4"; description "Time to wait for BFD to become operationally available"; } } // container bfd list path-profile { key "profile-id"; max-elements 5; description "Enter the path-profile list instance"; leaf profile-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..max"; } } description "Profile ID for the specified LSP"; } leaf path-group { type uint32; default "0"; description "Profile ID for the specified LSP"; } } // list path-profile list primary { key "path-name"; max-elements 1; description "Enter the primary list instance"; leaf path-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Path name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LSP path"; } leaf adaptive { type boolean; description "Enable/disable make-before-break functionality."; } leaf bandwidth { type types-mpls:lsp-bandwidth; default "0"; description "Amount of bandwidth to be reserved."; } leaf hop-limit { type uint32 { range "2..255"; } description "The maximum number of hops that an LSP will traverse including the ingress and egress LSRs."; } leaf record { type boolean; default "true"; description "Enable/disable recording of all hops."; } leaf record-label { type boolean; default "true"; description "Enable/disable recording of labels at each node or instance."; } leaf class-type { type types-mpls:class-type; description "Class-type"; } leaf backup-class-type { type types-mpls:class-type; description "Class-type for the LSP or LSP path"; } container priority { description "Enter the priority context"; leaf setup-priority { type types-mpls:priority; default "7"; description "Setup priority when insufficient bandwidth is available to set up LSP"; } leaf hold-priority { type types-mpls:priority; default "0"; description "Hold priority when insufficient bandwidth is available to set up LSP"; } } // container priority container include-admin-group { presence "Enter the 'include-admin-group' context"; description "Enable the include-admin-group context"; leaf-list group { type types-sros:named-item; min-elements 1; max-elements 32; description "Groups that are included when LSP path is setup"; } } // container include-admin-group container exclude-admin-group { presence "Enter the 'exclude-admin-group' context"; description "Enable the exclude-admin-group context"; leaf-list group { type types-sros:named-item; min-elements 1; max-elements 32; description "Groups to exclude when the LSP path is setup"; } } // container exclude-admin-group container bfd { description "Enter the bfd context"; leaf bfd-liveness { type boolean; default "false"; description "Enable BFD on the RSVP LSP or S-BFD on the SR-TE LSP"; } leaf bfd-template { type types-sros:named-item; description "BFD template"; } leaf lsp-ping-interval { type union { type uint32 { range "60..300"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "60"; description "Interval for periodic LSP ping for BFD bootstrapping"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; default "4"; description "Time to wait for BFD to become operationally available"; } } // container bfd } // list primary list secondary { key "path-name"; max-elements 8; description "Enter the secondary list instance"; leaf path-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Path name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LSP path"; } leaf adaptive { type boolean; description "Enable/disable make-before-break functionality."; } leaf bandwidth { type types-mpls:lsp-bandwidth; default "0"; description "Amount of bandwidth to be reserved."; } leaf hop-limit { type uint32 { range "2..255"; } description "The maximum number of hops that an LSP will traverse including the ingress and egress LSRs."; } leaf record { type boolean; default "true"; description "Enable/disable recording of all hops."; } leaf record-label { type boolean; default "true"; description "Enable/disable recording of labels at each node or instance."; } leaf class-type { type types-mpls:class-type; description "Class-type"; } leaf path-preference { type int32 { range "1..255"; } default "255"; description "Path preference for the secondary standby path"; } leaf srlg { type boolean; default "false"; description "Use SRLG constraint in secondary path computation for an LSP at the head-end LER"; } leaf standby { type boolean; default "false"; description "Maintain secondary path LSP indefinitely in hot standby state"; } container priority { description "Enter the priority context"; leaf setup-priority { type types-mpls:priority; default "7"; description "Setup priority when insufficient bandwidth is available to set up LSP"; } leaf hold-priority { type types-mpls:priority; default "0"; description "Hold priority when insufficient bandwidth is available to set up LSP"; } } // container priority container include-admin-group { presence "Enter the 'include-admin-group' context"; description "Enable the include-admin-group context"; leaf-list group { type types-sros:named-item; min-elements 1; max-elements 32; description "Groups that are included when LSP path is setup"; } } // container include-admin-group container exclude-admin-group { presence "Enter the 'exclude-admin-group' context"; description "Enable the exclude-admin-group context"; leaf-list group { type types-sros:named-item; min-elements 1; max-elements 32; description "Groups to exclude when the LSP path is setup"; } } // container exclude-admin-group container bfd { description "Enter the bfd context"; leaf bfd-liveness { type boolean; default "false"; description "Enable BFD on the RSVP LSP or S-BFD on the SR-TE LSP"; } leaf bfd-template { type types-sros:named-item; description "BFD template"; } leaf lsp-ping-interval { type union { type uint32 { range "60..300"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "60"; description "Interval for periodic LSP ping for BFD bootstrapping"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; default "4"; description "Time to wait for BFD to become operationally available"; } } // container bfd } // list secondary list primary-p2mp-instance { key "instance-name"; max-elements 1; description "Enter the primary-p2mp-instance list instance"; leaf instance-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "The unique name which identifies this P2MP LSP for this virtual router."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LSP path"; } leaf adaptive { type boolean; description "Enable/disable make-before-break functionality."; } leaf bandwidth { type types-mpls:lsp-bandwidth; default "0"; description "Amount of bandwidth to be reserved."; } leaf hop-limit { type uint32 { range "2..255"; } description "The maximum number of hops that an LSP will traverse including the ingress and egress LSRs."; } leaf record { type boolean; default "true"; description "Enable/disable recording of all hops."; } leaf record-label { type boolean; default "true"; description "Enable/disable recording of labels at each node or instance."; } container include-admin-group { presence "Enter the 'include-admin-group' context"; description "Enable the include-admin-group context"; leaf-list group { type types-sros:named-item; min-elements 1; max-elements 32; description "Groups that are included when LSP path is setup"; } } // container include-admin-group container exclude-admin-group { presence "Enter the 'exclude-admin-group' context"; description "Enable the exclude-admin-group context"; leaf-list group { type types-sros:named-item; min-elements 1; max-elements 32; description "Groups to exclude when the LSP path is setup"; } } // container exclude-admin-group list s2l-path { key "path-name to"; max-elements 650; description "Enter the s2l-path list instance"; leaf path-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "A label switch path (P2MP LSP) name."; } leaf to { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "The IP address of the destination address of the S2L sub LSP."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the S2L sub-LSP for a P2MP LSP"; } } // list s2l-path } // list primary-p2mp-instance } // list lsp list auto-lsp { key "template-name"; max-elements 500; description "Enter the auto-lsp list instance"; leaf template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of the LSP template used to automatically create and signal multiple LSP instances"; } choice auto-lsp-choice { case one-hop { leaf one-hop { type boolean; default "false"; description "Enable the automatic signaling of one-hop point-to-point LSPs"; } } case policy { leaf-list policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Specify policies to bind to this LSP template to enable automatic creation of mesh point to point (P2P) LSPs."; } } } } // list auto-lsp list static-lsp { key "lsp-name"; max-elements 1000; description "Enter the static-lsp list instance"; leaf lsp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Labeled Switch path name"; } leaf metric { type uint32 { range "1..16777215"; } description "MPLS static LSP metric to select an LSP"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static LSP"; } leaf to { type types-sros:ipv4-unicast-address; description "Destination IP address or the egress router for the LSP"; } container push { presence "Enter the 'push' context"; description "Enable the push context"; leaf out-label { type union { type uint32 { range "16..1048575"; } type enumeration { enum "implicit-null-label" { value 3; } } } description "Push specific label onto the top of the outgoing packet's label stack"; } leaf next-hop { type types-sros:ipv4-unicast-address; description "IP address for the next hop"; } } // container push } // list static-lsp container forwarding-policies { presence "Enter the 'forwarding-policies' context"; description "Enable the forwarding-policies context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MPLS forwarding policies"; } leaf reserved-label-block { type types-sros:named-item-64; description "Reserved label block"; } list forwarding-policy { key "policy-name"; max-elements 65536; description "Enter the forwarding-policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Forwarding policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the forwarding policy"; } leaf binding-label { type types-sros:mpls-label-or-zero; description "Binding label"; } leaf endpoint { type types-sros:ip-unicast-address; description "Configure endpoint address."; } leaf revert-timer { type uint32 { range "1..600"; } units "seconds"; description "Revert timer"; } leaf preference { type uint32 { range "1..255"; } default "255"; description "Preference number"; } leaf metric { type uint32 { range "1..16777215"; } description "Configure metric."; } leaf tunnel-table-pref { type uint32 { range "1..255"; } default "255"; description "Configure tunnel table preference."; } list next-hop-group { key "index"; max-elements 32; description "Enter the next-hop-group list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32"; } } description "Index for next hop group"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of next hop group"; } leaf resolution-type { type enumeration { enum "direct" { value 1; } enum "indirect" { value 2; } } sros-ext:immutable; description "Resolution type for next hop group"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load balancing weight."; } container primary-next-hop { presence "Enter the 'primary-next-hop' context"; description "Enable the primary-next-hop context"; leaf next-hop { type types-sros:ip-unicast-address; description "Next hop address"; } list pushed-labels { key "index"; max-elements 10; description "Enter the pushed-labels list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..10"; } } description "Index for push-label."; } leaf label { type uint32 { range "1..1048575"; } description "Push label value."; } } // list pushed-labels } // container primary-next-hop container backup-next-hop { presence "Enter the 'backup-next-hop' context"; description "Enable the backup-next-hop context"; leaf next-hop { type types-sros:ip-unicast-address; description "Next hop address"; } list pushed-labels { key "index"; max-elements 10; description "Enter the pushed-labels list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..10"; } } description "Index for push-label."; } leaf label { type uint32 { range "1..1048575"; } description "Push label value."; } } // list pushed-labels } // container backup-next-hop } // list next-hop-group container ingress-statistics { presence "Enter the 'ingress-statistics' context"; description "Enable the ingress-statistics context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of egress or ingress statistics"; } } // container ingress-statistics container egress-statistics { presence "Enter the 'egress-statistics' context"; description "Enable the egress-statistics context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of egress or ingress statistics"; } } // container egress-statistics } // list forwarding-policy } // container forwarding-policies container pce-init-lsp { presence "Enter the 'pce-init-lsp' context"; description "Enable the pce-init-lsp context"; container sr-te { presence "Enter the 'sr-te' context"; description "Enable the sr-te context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of SR-TE PCE-initiated LSP support"; } } // container sr-te } // container pce-init-lsp container ingress-statistics { description "Enter the ingress-statistics context"; list lsp { key "sender lsp-name"; description "Enter the lsp list instance"; leaf sender { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "Sender address"; } leaf lsp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Administrative name for Labeled Switch Path."; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for LSP"; } } // list lsp list p2mp-template-lsp { key "sender rsvp-session-name"; description "Enter the p2mp-template-lsp list instance"; leaf sender { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "Sender address"; } leaf rsvp-session-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "RSVP session name"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for LSP"; } leaf max-stats { type uint32 { range "1..8191"; } default "8191"; description "Maximum number of statistic indices"; } } // list p2mp-template-lsp list p2p-template-lsp { key "sender rsvp-session-name"; description "Enter the p2p-template-lsp list instance"; leaf sender { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "Sender address"; } leaf rsvp-session-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "RSVP session name"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for LSP"; } leaf max-stats { type uint32 { range "1..8191"; } default "8191"; description "Maximum number of statistic indices"; } } // list p2p-template-lsp } // container ingress-statistics container aux-stats { presence "Enter the 'aux-stats' context"; description "Enable the aux-stats context"; leaf sr { type boolean; default "false"; description "Count Segment Routing (SR) traffic in the auxiliary MPLS statistics table"; } } // container aux-stats container sr-te-resignal { description "Enter the sr-te-resignal context"; leaf resignal-timer { type uint32 { range "30..10080"; } units "minutes"; description "Resignal timer for SR-TE LSPs"; } leaf resignal-on-igp-event { type boolean; default "false"; description "Re-optimize SR-TE LSPs upon IGP link events"; } } // container sr-te-resignal } // container mpls container msdp { presence "Enter the 'msdp' context"; description "Enable the msdp context"; leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf data-encapsulation { type boolean; default "true"; description "Enable/Disable encapsulation of multicast data used by MSDP"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "The route table(s) for RPF lookup."; } leaf source-active-cache-lifetime { type uint32 { range "90..600"; } units "seconds"; default "90"; description "Lifetime given to SA cache entries when created or refreshed"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate list group { key "name"; description "Enter the group list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "The peer group name"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf mode { type enumeration { enum "standard" { value 1; } enum "mesh-group" { value 2; } } default "standard"; description "Topology of groups of peers"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "The local end of an MSDP session"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf default-peer { type boolean; default "false"; description "Enable/Disable default peer as MSDP peer"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "The authentication key to be used for a specific MSDP peer group peering session"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate } // list peer } // list group list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "The local end of an MSDP session"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf default-peer { type boolean; default "false"; description "Enable/Disable default peer as MSDP peer"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "The authentication key to be used for a specific MSDP peering session"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate } // list peer list source { key "ip-prefix"; description "Enter the source list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "The IP address of the sources from which the source active messages would be accepted"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP source"; } } // list source } // container msdp container nat { presence "Enter the 'nat' context"; description "Enable the nat context"; container inside { description "Enter the inside context"; container l2-aware { description "Enter the l2-aware context"; list subscribers { key "prefix"; description "Add a list entry for subscribers"; leaf prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-prefix-with-host-bits; } description "Layer-2 Aware NAT subscriber prefix"; } } // list subscribers } // container l2-aware container large-scale { description "Enter the large-scale context"; leaf nat-policy { type types-sros:external-named-item; sros-ext:isa-auto-clear-on-modify; description "NAT policy for LSN"; } container nat44 { description "Enter the nat44 context"; leaf max-subscriber-limit { type types-nat:lsn-max-subscriber-limit; sros-ext:isa-auto-clear-on-modify; description "Largest value for all subscriber limits in each deterministic pool"; } list destination-prefix { key "ip-prefix-length"; max-elements 6144; description "Enter the destination-prefix list instance"; leaf ip-prefix-length { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "Traffic sent to destinations within this prefix will be NATed"; } leaf nat-policy { type types-sros:external-named-item; sros-ext:isa-auto-clear-on-modify; description "NAT policy"; } } // list destination-prefix container deterministic { description "Enter the deterministic context"; list policy-map { key "source-prefix"; description "Enter the policy-map list instance"; leaf source-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "Source prefix that adds traffic to NAT pool"; } leaf nat-policy { type types-sros:external-named-item; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "NAT policy"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this prefix"; } list map { key "from to"; description "Enter the map list instance"; leaf from { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Beginning of the range for IPv4 addresses that is mapped on the inside to outside IPv4 addresses"; } leaf to { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Ending of the range for IPv4 addresses that is mapped on the inside to outside IPv4 addresses"; } leaf first-outside-address { type types-sros:ipv4-address; sros-ext:immutable; description "IPv6 address range that is mapped to outside IPv4 address"; } } // list map } // list policy-map } // container deterministic } // container nat44 container dual-stack-lite { description "Enter the dual-stack-lite context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Dual Stack Lite"; } leaf max-subscriber-limit { type types-nat:lsn-max-subscriber-limit; sros-ext:isa-auto-clear-on-modify; description "Largest value for all subscriber limits in each deterministic pool"; } leaf subscriber-prefix-length { type types-nat:ipv6-subscriber-prefix-length; sros-ext:isa-auto-clear-on-modify; description "IPv6 prefix length of the Dual Stack Lite subscribers"; } list endpoint { key "address"; max-elements 128; description "Enter the endpoint list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "Dual Stack Lite IPv6 address"; } leaf ip-fragmentation { type types-nat:ip-fragmentation; description "Fragmentation control of the AFTR originated downstream IPv6 traffic"; } leaf tunnel-mtu { type uint32 { range "512..9212"; } default "1500"; description "Maximum size of IPv4 packet inside of DS-Lite tunnel"; } leaf reassembly { type boolean; default "false"; description "Reassembly of IPv6 payload datagrams"; } } // list endpoint container deterministic { description "Enter the deterministic context"; list policy-map { key "source-prefix"; description "Enter the policy-map list instance"; leaf source-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-prefix; } description "Source prefix that adds traffic to NAT pool"; } leaf nat-policy { type types-sros:external-named-item; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "NAT policy"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this prefix"; } list map { key "from to"; description "Enter the map list instance"; leaf from { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "Beginning of the range for IPv6 addresses that is mapped on the inside to outside IPv6addresses"; } leaf to { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "Ending of the range for IPv6 addresses that is mapped on the inside to outside IPv6 addresses"; } leaf first-outside-address { type types-sros:ipv4-address; sros-ext:immutable; description "IPv6 address range that is mapped to outside IPv4 address"; } } // list map } // list policy-map } // container deterministic } // container dual-stack-lite container nat64 { presence "Enter the 'nat64' context"; description "Enable the nat64 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NAT64"; } leaf drop-zero-ipv4-checksum { type boolean; default "false"; description "Drop UDP datagrams with zero IPv4 checksum"; } leaf insert-ipv6-fragment-header { type boolean; default "false"; description "Include IPv6 fragment header to indicate that the sender allows fragmentation"; } leaf ip-fragmentation { type types-nat:ip-fragmentation; description "Control fragmentation of originated downstream IPv6 traffic"; } leaf ipv6-mtu { type uint32 { range "1280..9212"; } default "1520"; description "Size of the IPv6 downstream packet in NAT64"; } leaf prefix { type types-sros:ipv6-prefix; sros-ext:isa-auto-clear-on-modify; default "64:ff9b::/96"; description "IPv6 prefix to derive the IPv6 address from the IPv4 address"; } leaf subscriber-prefix-length { type types-nat:ipv6-subscriber-prefix-length; sros-ext:isa-auto-clear-on-modify; description "IPv6 prefix length for the NAT64 subscribers"; } container tos { description "Enter the tos context"; container upstream { description "Enter the upstream context"; leaf set-tos { type union { type enumeration { enum "use-ipv6" { value -1; } } type uint32 { range "0..255"; } } default "use-ipv6"; description "TOS/DSCP bits in IPv4 frame in the upstream direction"; } } // container upstream container downstream { description "Enter the downstream context"; leaf use-ipv4 { type boolean; default "false"; description "Copy TOS/DSCP bits from the incoming IPv4 frame to the outgoing IPv6 frame"; } } // container downstream } // container tos } // container nat64 container subscriber-identification { description "Enter the subscriber-identification context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of subscriber identification"; } leaf description { type types-sros:description; description "Text description"; } leaf drop-unidentified-traffic { type boolean; default "false"; description "Drop traffic from unidentified flows"; } container attribute { description "Enter the attribute context"; leaf vendor { type types-nat:nat-subscriber-identification-attr-vendor-id; default "nokia"; description "The RADIUS Vendor"; } leaf type { type types-nat:nat-subscriber-identification-attr-type; default "alc-sub-string"; description "The RADIUS Vendor-Id value corresponding with this vendor."; } } // container attribute container radius-proxy-server { presence "Enter the 'radius-proxy-server' context"; description "Enable the radius-proxy-server context"; leaf router-instance { type string; description "Router instance"; } leaf server { type types-sros:named-item; description "Server name"; } } // container radius-proxy-server } // container subscriber-identification container dnat-only { description "Enter the dnat-only context"; leaf source-prefix-list { type types-sros:named-item; description "NAT prefix list that contains source IP addresses"; } } // container dnat-only container redundancy { description "Enter the redundancy context"; leaf peer { type types-sros:ipv4-unicast-address; description "IP address of the NAT redundancy peer for this virtual router instance"; } leaf peer6 { type types-sros:ipv6-unicast-address; description "IPv6 address of the NAT redundancy peer for this virtual router instance"; } leaf steering-route { type types-sros:ipv4-unicast-prefix; description "IP address and prefix length of the steering route"; } } // container redundancy } // container large-scale } // container inside container outside { description "Enter the outside context"; leaf mtu { type uint32 { range "512..9000"; } description "MTU for downstream traffic"; } container filters { description "Enter the filters context"; container downstream { description "Enter the downstream context"; leaf ipv4 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container downstream container upstream { description "Enter the upstream context"; leaf ipv4 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container upstream } // container filters container dnat-only { description "Enter the dnat-only context"; leaf route-limit { type uint32 { range "1..131072"; } default "32768"; description "Number that is used to limit internal routes for downstream traffic"; } } // container dnat-only list pool { key "name"; max-elements 4096; description "Enter the pool list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "NAT pool name"; } leaf type { type types-nat:pool-type; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "NAT pool type"; } leaf description { type types-sros:description; description "Text description"; } leaf mode { type types-nat:pool-mode; sros-ext:isa-auto-clear-on-modify; description "Mode of operation of this NAT address pool"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the outside NAT pool"; } choice isa { case nat { leaf nat-group { type uint32 { range "1..4"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "Create a NAT group"; } } case wlan-gw { leaf wlan-gw-group { type types-isa:wlan-gw-group-id; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "Create a WLAN GW group for NAT"; } } } container applications { description "Enter the applications context"; leaf agnostic { type boolean; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; default "false"; description "NAT pool to create in the outside routing context"; } } // container applications container port-forwarding { description "Enter the port-forwarding context"; leaf dynamic-block-reservation { type boolean; sros-ext:isa-auto-clear-on-modify; default "false"; description "Dynamic block to reserve for each subscriber with a forwarding port"; } leaf range-end { type uint16 { range "0|1023..65535"; } sros-ext:isa-auto-clear-on-modify; description "End of the wildcard range for port forwards"; } } // container port-forwarding container port-reservation { description "Enter the port-reservation context"; choice port-reservation { default "port-blocks"; case port-blocks { leaf port-blocks { type uint16 { range "1..64512"; } sros-ext:isa-auto-clear-on-modify; description "Number of dynamic port blocks per outside IP address"; } } case ports { leaf ports { type uint16 { range "1..32256"; } sros-ext:isa-auto-clear-on-modify; description "Number of ports in each dynamic port block within the pool"; } } } } // container port-reservation container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; description "Percentage for high watermark"; } leaf low { type types-sros:percent; description "Percentage for low watermark"; } } // container watermarks container large-scale { description "Enter the large-scale context"; leaf subscriber-limit { type uint32 { range "1..65535"; } sros-ext:isa-auto-clear-on-modify; description "Maximum number of subscribers per IP address"; } container redundancy { description "Enter the redundancy context"; choice redundancy { default "export-monitor-route"; case follow-pool { container follow { description "Enter the follow context"; leaf router-instance { type string; description "The virtual router instance of the pool."; } leaf name { type types-sros:named-item; description "NAT pool name"; } } // container follow } case export-monitor-route { leaf export-route { type types-sros:ipv4-unicast-prefix; description "Route to export to the peer"; } leaf monitor-route { type types-sros:ipv4-unicast-prefix; description "Monitor the peer route"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multi-chassis redundancy"; } } } } // container redundancy container deterministic { description "Enter the deterministic context"; leaf port-reservation { type types-nat:port-number; sros-ext:isa-auto-clear-on-modify; description "Number of ports per deterministic port-block"; } } // container deterministic } // container large-scale container l2-aware { description "Enter the l2-aware context"; leaf external-assignment { type boolean; sros-ext:isa-auto-clear-on-modify; default "false"; description "External IP address for Layer-2-aware"; } } // container l2-aware list address-range { key "start end"; max-elements 4096; description "Enter the address-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Start address of this range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "End address of this range"; } leaf description { type types-sros:description; description "Text description"; } leaf drain { type boolean; default "false"; description "Start or stop draining this NAT address range"; } } // list address-range } // list pool } // container outside container map { description "Enter the map context"; list map-domain { key "domain-name"; description "Add a list entry for map-domain"; leaf domain-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "MAP domain name"; } } // list map-domain } // container map } // container nat container origin-validation { description "Enter the origin-validation context"; list static-entry { key "ip-prefix upto origin-as"; description "Enter the static-entry list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "IP address prefix to match for the origin validation."; } leaf upto { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..128"; } } description "The max value of the prefix length for ip-prefix address."; } leaf origin-as { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type inet:as-number; } description "The autonomous system number to be advertised to this peer."; } leaf valid { type boolean; default "true"; description "Specifies whether the route entry corresponding to the autonomous number is valid (true) or invalid (false)."; } } // list static-entry list rpki-session { key "ip-address"; description "Enter the rpki-session list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "IPv4, IPv6 or link local address of a local cache server."; } leaf connect-retry { type uint32 { range "1..65535"; } units "seconds"; default "120"; description "RPKI Connect Retry timer value"; } leaf description { type types-sros:description; description "Text description"; } leaf local-address { type types-sros:ip-address; description "Address of the local end of the RPKI session."; } leaf port { type uint32 { range "0..65535"; } default "323"; description "Destination port number to be used to connect the cache server."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the RPKI session"; } leaf stale-time { type uint32 { range "60..3600"; } units "seconds"; default "3600"; description "Specifies the maximum length of time that prefix origin records learned from the cache server remain valid after the session with the cache server goes down."; } container refresh-time { description "Enter the refresh-time context"; leaf value { type uint32 { range "30..32767"; } units "seconds"; default "300"; description "Triggers the sending of periodic Serial Query PDUs for purposes of liveness detection."; } leaf hold-time { type uint32 { range "60..65535"; } units "seconds"; default "600"; description "Specifies the length of time in seconds that the session is to be considered UP without any indication that the cache server is alive and reachable."; } } // container refresh-time } // list rpki-session } // container origin-validation list ospf { key "ospf-instance"; max-elements 32; description "Enter the ospf list instance"; leaf ospf-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..31"; } } description "Value for the integrated OSPF instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the OSPF instance"; } leaf router-id { type types-igp:router-id; description "Unique router ID for the OSPF instance"; } leaf advertise-router-capability { type types-ospf:advertise-router-capability-type; default "false"; description "Allow router advertisement capabilities"; } leaf advertise-tunnel-link { type boolean; default "false"; description "Allow router advertisement capabilities"; } leaf external-preference { type int32 { range "1..255"; } default "150"; description "Preference for OSPF external routes"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf ldp-over-rsvp { type boolean; default "false"; description "Allow LSP over RSVP in this OSPF instance"; } leaf ldp-sync { type boolean; default "true"; description "Use IGP-LDP synchronization feature on all interfaces participating in routing protocol"; } leaf multicast-import { type boolean; default "false"; description "Submit routes into the multicast Route Table Manager"; } leaf overload-include-ext-1 { type boolean; default "false"; description "Advertise external type-1 routes with maximum metric value in cases of overload"; } leaf overload-include-ext-2 { type boolean; default "false"; description "Advertise external type-2 routes with maximum metric value in cases of overload"; } leaf overload-include-stub { type boolean; default "false"; description "Advertise all stub interfaces with maximum metric value in cases of overload"; } leaf overload { type boolean; default "false"; description "Change overload state of the local router to appear to be overloaded"; } leaf preference { type int32 { range "1..255"; } default "10"; description "Preference for OSPF internal routes"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; default "100000000"; description "Bandwidth to reference the default costing of interfaces"; } leaf traffic-engineering { type boolean; default "false"; description "Calculate traffic engineering route"; } leaf unicast-import { type boolean; default "true"; description "Submit routes into the unicast Route Table Manager"; } leaf compatible-rfc1583 { type boolean; default "true"; description "OSPF summary and external route calculations"; } leaf multi-instance { type boolean; default "false"; description "Enable/disable OSPF Multi Instance Extensions"; } container external-db-overflow { presence "Enter the 'external-db-overflow' context"; description "Enable the external-db-overflow context"; leaf limit { type uint32 { range "0..2147483647"; } default "0"; description "Number of external LSA at which overload is triggered"; } leaf interval { type uint32 { range "0..2147483647"; } units "seconds"; default "0"; description "Time during which the router operates in overload"; } } // container external-db-overflow container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "1..1800"; } units "seconds"; description "Time during which the router operates in overload state before reestablishing normal operations"; } } // container overload-on-boot container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; leaf prefix-list { type types-sros:named-item; description "List used to select routes processed at higher priority through OSPF route calculation process"; } } // container high } // container rib-priority container rtr-adv-lsa-limit { presence "Enter the 'rtr-adv-lsa-limit' context"; description "Enable the rtr-adv-lsa-limit context"; leaf max-lsa-count { type uint32 { range "1..max"; } description "Maximum number of LSAs allowed to be advertised by one router"; } leaf log-only { type boolean; default "false"; description "Log the event without triggering overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Percentage of the maximum LSA count at which a warning is given"; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Maximum timeout for overload when the maximum LSA count is reached"; } } // container rtr-adv-lsa-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for OSPF"; } leaf strict-lsa-checking { type boolean; default "true"; description "Perform strict LSA checking during graceful restart helper"; } } // container graceful-restart container traffic-engineering-options { description "Enter the traffic-engineering-options context"; leaf sr-te { type enumeration { enum "false" { value 0; } enum "legacy" { value 1; } enum "application-specific-link-attributes" { value 2; } } default "false"; description "Advertisement of link attributes for SR-TE"; } } // container traffic-engineering-options container timers { description "Enter the timers context"; leaf incremental-spf-wait { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time before an incremental SPF calculation is started"; } leaf lsa-accumulate { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time for accumulating multiple LSAs before advertising them to neighbors"; } leaf lsa-arrival { type uint32 { range "0..600000"; } units "milliseconds"; default "1000"; description "Minimum delay between receipt of the same LSAs arriving from neighbors"; } leaf redistribute-delay { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Hold down timer for external routes that are redistributed in OSPF"; } container lsa-generate { description "Enter the lsa-generate context"; leaf max-lsa-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of an LSA being generated"; } leaf lsa-initial-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "First waiting period between link state advertisements LSA originates"; } leaf lsa-second-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Hold time between the first and second LSA generation"; } } // container lsa-generate container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after a topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between the first and second SPF calculation"; } } // container spf-wait } // container timers container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude container remote-lfa { presence "Enter the 'remote-lfa' context"; description "Enable the remote-lfa context"; leaf max-pq-cost { type uint32; default "65535"; description "Maximum cost of a destination node during reverse SPF calculation"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; leaf max-pq-nodes { type uint32 { range "1..32"; } default "16"; description "Specifies the maximum number of PQ nodes."; } } // container node-protect } // container remote-lfa container ti-lfa { presence "Enter the 'ti-lfa' context"; description "Enable the ti-lfa context"; leaf max-sr-frr-labels { type uint32 { range "0..3"; } default "2"; description "Maximum number of labels that TI-LFA backup next hop can use"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; } // container node-protect } // container ti-lfa } // container loopfree-alternate container database-export { presence "Enter the 'database-export' context"; description "Enable the database-export context"; leaf igp-identifier { type uint64; description "Unique identifier for the IGP instance in the BGP-LS NLRI"; } container bgp-ls-identifier { presence "Enter the 'bgp-ls-identifier' context"; description "Enable the bgp-ls-identifier context"; leaf value { type uint32; default "0"; description "BGP-LS identifier that is sent in the BGP-LS NLRI"; } } // container bgp-ls-identifier } // container database-export container asbr { presence "Enter the 'asbr' context"; description "Enable the asbr context"; leaf trace-path { type union { type int32 { range "0..31"; } type enumeration { enum "none" { value -1; } } } default "none"; description "Domain identity"; } } // container asbr container entropy-label { description "Enter the entropy-label context"; leaf override-tunnel-elc { type boolean; default "false"; description "Received entropy label capability advertisement to override"; } } // container entropy-label container segment-routing { description "Enter the segment-routing context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing"; } leaf adj-sid-hold { type types-igp:adj-sid-hold-type; units "seconds"; default "15"; description "Adjacency SID hold time"; } leaf entropy-label { type boolean; description "Entropy label capability"; } leaf export-tunnel-table { type types-igp:export-tunnel-table-type; description "Export tunnel table"; } leaf srlb { type types-sros:named-item-64; description "Segment routing local block"; } leaf tunnel-mtu { type types-router:ip-mtu-ext; description "Tunnel MTU size"; } leaf tunnel-table-pref { type uint32 { range "1..255"; } default "10"; description "Preference of SR tunnels created by the IGP instance"; } leaf class-forwarding { type boolean; default "false"; description "Allow CBF with ECMP over RSVP-TE LSPs as IGP shortcuts"; } container prefix-sid-range { presence "Enter the 'prefix-sid-range' context"; description "Enable the prefix-sid-range context"; choice type { case global { leaf global { type empty; description "Allows BGP global SR range"; } } case local { leaf start-label { type uint32 { range "0..524287"; } default "0"; description "Lower bound value for the local label offset"; } leaf max-index { type uint32 { range "0..524287"; } default "1"; description "Upper bound value for the local SID index"; } } } } // container prefix-sid-range container backup-node-sid { presence "Enter the 'backup-node-sid' context"; description "Enable the backup-node-sid context"; leaf ip-prefix { type types-sros:ipv4-unicast-prefix; description "IP prefix and prefix length for the backup-node-sid"; } choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container backup-node-sid container egress-statistics { description "Enter the egress-statistics context"; leaf adj-set { type boolean; default "false"; description "Enable statistics on Adjacency Sets"; } leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container egress-statistics container ingress-statistics { description "Enter the ingress-statistics context"; leaf adj-set { type boolean; default "false"; description "Enable statistics on Adjacency Sets"; } leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container ingress-statistics container maximum-sid-depth { description "Enter the maximum-sid-depth context"; leaf override-bmi { type int32 { range "0..12"; } description "Value to override the announced node MSD-BMI value"; } leaf override-erld { type int32 { range "0..15"; } description "Value to override the announced node MSD-ERLD value"; } } // container maximum-sid-depth list adjacency-set { key "id"; description "Enter the adjacency-set list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..max"; } } description "Non-zero identifier for a given adjacency set"; } leaf parallel { type boolean; default "true"; description "Require all members of the adjacency set to terminate on the same neighboring node"; } leaf advertise { type boolean; default "true"; description "Advertise the adjacency set when all links terminate on the same neighboring node"; } container sid { presence "Enter the 'sid' context"; description "Enable the sid context"; choice type { case label { leaf label { type int64 { range "1..1048575"; } description "Adjacency SID"; } } } } // container sid } // list adjacency-set container mapping-server { description "Enter the mapping-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the OSPF segment routing mapping server"; } list node-sid-map { key "sid-index"; description "Enter the node-sid-map list instance"; leaf sid-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32; } description "Start SID index for the node SID mapping"; } leaf range { type uint32 { range "1..65535"; } sros-ext:immutable; default "1"; description "Number of prefixes to be mapped by the Extended Range Prefix TLV"; } leaf ip-prefix { type types-sros:ipv4-prefix; sros-ext:immutable; description "Starting prefix of the mapping"; } container scope { description "Enter the scope context"; choice scope { default "as"; case area { leaf area { type types-sros:ipv4-address; description "Area ID in which the advertise Extended Range TLV is advertised"; } } case as { leaf as { type empty; description "Advertise Extended Range TLV in whole autonomous system"; } } } } // container scope } // list node-sid-map } // container mapping-server } // container segment-routing container igp-shortcut { description "Enter the igp-shortcut context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IGP shortcuts"; } container tunnel-next-hop { description "Enter the tunnel-next-hop context"; list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-igp:tunn-next-hop-family-type-v4-only; } description "Address family type for tunnel next-hop"; } leaf resolution { type types-sros:resolution-type; description "Resolution state for IGP shortcut tunnels"; } container resolution-filter { description "Enter the resolution-filter context"; leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } } // container resolution-filter } // list family } // container tunnel-next-hop } // container igp-shortcut list area { key "area-id"; description "Enter the area list instance"; leaf area-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Area-ID attribute"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf blackhole-aggregate { type boolean; default "true"; description "Install a low priority blackhole route to avoid loops"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Route that is exported as Type 3 Summary-LSAs or OSPFv3 Inter-Area-Prefix-LSA between areas"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Route that is imported as summary type 3/inter-area-prefix-LSA from another area into this area"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude specific interface or all interfaces participating in all OSPF areas in SPF LFA computation"; } leaf database-export-exclude { type boolean; default "false"; description "Exclude IGP link-state information of OSPF area from being exported into extended TE-DB"; } container stub { presence "Enter the 'stub' context"; description "Enable the stub context"; leaf default-metric { type uint32 { range "1..16777214"; } default "1"; description "Metric used by the ABR for the default route into the stub area"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the stub area on an ABR"; } } // container stub container bier { description "Enter the bier context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BIER"; } leaf template { type types-sros:named-item; description "BIER template name"; } } // container bier container nssa { presence "Enter the 'nssa' context"; description "Enable the nssa context"; leaf redistribute-external { type boolean; default "true"; description "Redistribute external routes into the NSSA"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the NSSA on an ABR"; } list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "ip-prefix a.b.c.d (host bits must be 0) mask [0..32]"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } } // list area-range container originate-default-route { presence "Enter the 'originate-default-route' context"; description "Enable the originate-default-route context"; leaf type-nssa { type boolean; default "false"; description "Generate a default route using NSSA-LSA type"; } leaf adjacency-check { type boolean; default "true"; description "Default route to remove if there is no adjacency"; } } // container originate-default-route } // container nssa list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "ip-prefix a.b.c.d (host bits must be 0) mask [0..32]"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } } // list area-range list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf advertise-subnet { type boolean; default "true"; description "Advertise point-to-point interfaces as subnet routes"; } leaf interface-type { type types-ospf:interface-type; sros-ext:immutable; description "Interface type to broadcast or point-to-point"; } leaf lsa-filter-out { type types-ospf:lsa-filter-out; default "none"; description "LSA flooding reduction"; } leaf metric { type uint32 { range "1..65535"; } description "Explicit route cost metric that is applied to the interface"; } leaf mtu { type types-router:ip-mtu-ext; description "MTU for the OSPF to use on the interface"; } leaf passive { type boolean; description "Allow interface to be advertised as an OSPF interface without running the OSPF protocol"; } leaf poll-interval { type uint32; units "seconds"; default "120"; description "Time between two Hello packets to a non-adjacent OSPF NBMA neighbor"; } leaf priority { type uint16 { range "0..255"; } default "1"; description "Priority of the interface to apply in the designated router election on the subnet"; } leaf rib-priority { type types-ospf:rib-priority; description "RIB priority for OSPF"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load-balancing-weight."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "40"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf authentication-keychain { type types-sros:named-item; description "Configure TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Authentication key"; } leaf authentication-type { type types-ospf:authentication-type; description "Authentication type used on OSPF interface"; } leaf sid-protection { type boolean; default "true"; description "Allow adjacency SID protection by LFA and remote LFA"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf remain-down-on-failure { type boolean; default "false"; description "Force adjacency down on BFD failure and remain down until BFD session returns"; } } // container bfd-liveness container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable fast re-route capability for OSPF at interface level (only valid for primary interface)"; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type types-sros:named-item; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate container node-sid { presence "Enter the 'node-sid' context"; description "Enable the node-sid context"; leaf clear-n-flag { type boolean; default "false"; description "Specifies whether the node-sid flag (N-flag) should be cleared."; } choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container node-sid container adjacency-sid { presence "Enter the 'adjacency-sid' context"; description "Enable the adjacency-sid context"; choice type { case label { leaf label { type int64 { range "1..1048575"; } description "Adjacency SID"; } } } } // container adjacency-sid list message-digest-key { key "key-id"; description "Enter the message-digest-key list instance"; leaf key-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint16 { range "1..255"; } } description "Message digest index"; } leaf md5 { type types-sros:encrypted-leaf { length "1..51"; } description "MD5 hash key"; } } // list message-digest-key list neighbor { key "address"; description "Add a list entry for neighbor"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Neighbor address"; } } // list neighbor list adjacency-set { key "id"; max-elements 1024; description "Add a list entry for adjacency-set"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..max"; } } description "Adjacency set identity"; } } // list adjacency-set } // list interface list virtual-link { key "router-id transit-area"; description "Enter the virtual-link list instance"; leaf router-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Router identity of the virtual link neighbor"; } leaf transit-area { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Transit area that links backbone area to area without physical connection with the backbone"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "60"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf authentication-keychain { type types-sros:named-item; description "Configure TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Authentication key"; } leaf authentication-type { type types-ospf:authentication-type; description "Authentication type used on OSPF interface"; } list message-digest-key { key "key-id"; description "Enter the message-digest-key list instance"; leaf key-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint16 { range "1..255"; } } description "Message digest index"; } leaf md5 { type types-sros:encrypted-leaf { length "1..51"; } description "key - [16 chars max] hash/hash2-key - [44 chars max] (for hash scheme)"; } } // list message-digest-key } // list virtual-link } // list area } // list ospf list ospf3 { key "ospf-instance"; max-elements 32; description "Enter the ospf3 list instance"; leaf ospf-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..31|64..95"; } } description "Value for the integrated OSPF instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the OSPF instance"; } leaf router-id { type types-igp:router-id; description "Unique router ID for the OSPF instance"; } leaf advertise-router-capability { type types-ospf:advertise-router-capability-type; default "false"; description "Allow router advertisement capabilities"; } leaf external-preference { type int32 { range "1..255"; } default "150"; description "Preference for OSPF external routes"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf ldp-sync { type boolean; default "true"; description "Use IGP-LDP synchronization feature on all interfaces participating in routing protocol"; } leaf multicast-import { type boolean; default "false"; description "Submit routes into the multicast Route Table Manager"; } leaf overload-include-ext-1 { type boolean; default "false"; description "Advertise external type-1 routes with maximum metric value in cases of overload"; } leaf overload-include-ext-2 { type boolean; default "false"; description "Advertise external type-2 routes with maximum metric value in cases of overload"; } leaf overload-include-stub { type boolean; default "false"; description "Advertise all stub interfaces with maximum metric value in cases of overload"; } leaf overload { type boolean; default "false"; description "Change overload state of the local router to appear to be overloaded"; } leaf preference { type int32 { range "1..255"; } default "10"; description "Preference for OSPF internal routes"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; default "100000000"; description "Bandwidth to reference the default costing of interfaces"; } leaf unicast-import { type boolean; default "true"; description "Submit routes into the unicast Route Table Manager"; } leaf extended-lsa { type types-ospf:extended-lsa-mode; default "sparse"; description "Extended LSA format in an OSPFv3 area"; } container external-db-overflow { presence "Enter the 'external-db-overflow' context"; description "Enable the external-db-overflow context"; leaf limit { type uint32 { range "0..2147483647"; } default "0"; description "Number of external LSA at which overload is triggered"; } leaf interval { type uint32 { range "0..2147483647"; } units "seconds"; default "0"; description "Time during which the router operates in overload"; } } // container external-db-overflow container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "60..1800"; } units "seconds"; description "Time during which the router operates in overload state before reestablishing normal operations"; } } // container overload-on-boot container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; leaf prefix-list { type types-sros:named-item; description "List used to select routes processed at higher priority through OSPF route calculation process"; } } // container high } // container rib-priority container rtr-adv-lsa-limit { presence "Enter the 'rtr-adv-lsa-limit' context"; description "Enable the rtr-adv-lsa-limit context"; leaf max-lsa-count { type uint32 { range "1..max"; } description "Maximum number of LSAs allowed to be advertised by one router"; } leaf log-only { type boolean; default "false"; description "Log the event without triggering overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Percentage of the maximum LSA count at which a warning is given"; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Maximum timeout for overload when the maximum LSA count is reached"; } } // container rtr-adv-lsa-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for OSPF"; } leaf strict-lsa-checking { type boolean; default "true"; description "Perform strict LSA checking during graceful restart helper"; } } // container graceful-restart container timers { description "Enter the timers context"; leaf incremental-spf-wait { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time before an incremental SPF calculation is started"; } leaf lsa-accumulate { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time for accumulating multiple LSAs before advertising them to neighbors"; } leaf lsa-arrival { type uint32 { range "0..600000"; } units "milliseconds"; default "1000"; description "Minimum delay between receipt of the same LSAs arriving from neighbors"; } leaf redistribute-delay { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Hold down timer for external routes that are redistributed in OSPF"; } container lsa-generate { description "Enter the lsa-generate context"; leaf max-lsa-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of an LSA being generated"; } leaf lsa-initial-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "First waiting period between link state advertisements LSA originates"; } leaf lsa-second-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Hold time between the first and second LSA generation"; } } // container lsa-generate container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after a topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between the first and second SPF calculation"; } } // container spf-wait } // container timers container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude container remote-lfa { presence "Enter the 'remote-lfa' context"; description "Enable the remote-lfa context"; leaf max-pq-cost { type uint32; default "65535"; description "Maximum cost of a destination node during reverse SPF calculation"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; leaf max-pq-nodes { type uint32 { range "1..32"; } default "16"; description "Specifies the maximum number of PQ nodes."; } } // container node-protect } // container remote-lfa container ti-lfa { presence "Enter the 'ti-lfa' context"; description "Enable the ti-lfa context"; leaf max-sr-frr-labels { type uint32 { range "0..3"; } default "2"; description "Maximum number of labels that TI-LFA backup next hop can use"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; } // container node-protect } // container ti-lfa } // container loopfree-alternate container database-export { presence "Enter the 'database-export' context"; description "Enable the database-export context"; leaf igp-identifier { type uint64; description "Specifies the value of the unique identifier of the IGP instance in the BGP-LS NLRI."; } container bgp-ls-identifier { presence "Enter the 'bgp-ls-identifier' context"; description "Enable the bgp-ls-identifier context"; leaf value { type uint32; default "0"; description "BGP-LS identifier that is sent in the BGP-LS NLRI"; } } // container bgp-ls-identifier } // container database-export container asbr { presence "Enter the 'asbr' context"; description "Enable the asbr context"; } // container asbr container segment-routing { description "Enter the segment-routing context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing"; } leaf adj-sid-hold { type types-igp:adj-sid-hold-type; units "seconds"; default "15"; description "Adjacency SID hold time"; } leaf tunnel-mtu { type types-router:ip-mtu-ext; description "Tunnel MTU size"; } leaf tunnel-table-pref { type uint32 { range "1..255"; } default "10"; description "Preference of SR tunnels created by the IGP instance"; } container prefix-sid-range { presence "Enter the 'prefix-sid-range' context"; description "Enable the prefix-sid-range context"; choice type { case global { leaf global { type empty; description "Allows BGP global SR range"; } } case local { leaf start-label { type uint32 { range "0..524287"; } default "0"; description "Lower bound value for the local label offset"; } leaf max-index { type uint32 { range "0..524287"; } default "1"; description "Upper bound value for the local SID index"; } } } } // container prefix-sid-range container egress-statistics { description "Enter the egress-statistics context"; leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container egress-statistics container ingress-statistics { description "Enter the ingress-statistics context"; leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container ingress-statistics } // container segment-routing container igp-shortcut { description "Enter the igp-shortcut context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IGP shortcuts"; } container tunnel-next-hop { description "Enter the tunnel-next-hop context"; list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-igp:tunn-next-hop-family-type; } description "Specifies the address family for tunnel next hop."; } leaf resolution { type types-sros:resolution-type; description "Resolution state for IGP shortcut tunnels"; } container resolution-filter { description "Enter the resolution-filter context"; leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } } // container resolution-filter } // list family } // container tunnel-next-hop } // container igp-shortcut list area { key "area-id"; description "Enter the area list instance"; leaf area-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Area-ID attribute"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf blackhole-aggregate { type boolean; default "true"; description "Install a low priority blackhole route to avoid loops"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Route that is exported as Type 3 Summary-LSAs or OSPFv3 Inter-Area-Prefix-LSA between areas"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Route that is imported as summary type 3/inter-area-prefix-LSA from another area into this area"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude specific interface or all interfaces participating in all OSPF areas in SPF LFA computation"; } leaf database-export-exclude { type boolean; default "false"; description "Exclude IGP link-state information of OSPF area from being exported into extended TE-DB"; } leaf extended-lsa { type types-ospf:area-extended-lsa-mode; description "Extended LSA format in an OSPFv3 area"; } leaf key-rollover-interval { type uint32 { range "10..300"; } units "seconds"; default "10"; description "Key rollover interval"; } container stub { presence "Enter the 'stub' context"; description "Enable the stub context"; leaf default-metric { type uint32 { range "1..16777214"; } default "1"; description "Metric used by the ABR for the default route into the stub area"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the stub area on an ABR"; } } // container stub container nssa { presence "Enter the 'nssa' context"; description "Enable the nssa context"; leaf redistribute-external { type boolean; default "true"; description "Redistribute external routes into the NSSA"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the NSSA on an ABR"; } list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Address ranges to create on an ABR for route summarization or suppression"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } } // list area-range container originate-default-route { presence "Enter the 'originate-default-route' context"; description "Enable the originate-default-route context"; leaf type-nssa { type boolean; default "false"; description "Generate a default route using NSSA-LSA type"; } leaf adjacency-check { type boolean; default "true"; description "Default route to remove if there is no adjacency"; } } // container originate-default-route } // container nssa list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Address ranges to create on an ABR for route summarization or suppression"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } } // list area-range list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf interface-type { type types-ospf:interface-type; sros-ext:immutable; description "Interface type to broadcast or point-to-point"; } leaf lsa-filter-out { type types-ospf:lsa-filter-out; default "none"; description "LSA flooding reduction"; } leaf metric { type uint32 { range "1..65535"; } description "Explicit route cost metric that is applied to the interface"; } leaf mtu { type types-router:ip-mtu-ext; description "MTU for the OSPF to use on the interface"; } leaf passive { type boolean; description "Allow interface to be advertised as an OSPF interface without running the OSPF protocol"; } leaf poll-interval { type uint32; units "seconds"; default "120"; description "Time between two Hello packets to a non-adjacent OSPF NBMA neighbor"; } leaf priority { type uint16 { range "0..255"; } default "1"; description "Priority of the interface to apply in the designated router election on the subnet"; } leaf rib-priority { type types-ospf:rib-priority; description "RIB priority for OSPF"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load-balancing-weight."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "40"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf sid-protection { type boolean; default "true"; description "Allow adjacency SID protection by LFA and remote LFA"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf remain-down-on-failure { type boolean; default "false"; description "Force adjacency down on BFD failure and remain down until BFD session returns"; } } // container bfd-liveness container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable fast re-route capability for OSPF at interface level (only valid for primary interface)"; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type types-sros:named-item; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate container node-sid { presence "Enter the 'node-sid' context"; description "Enable the node-sid context"; leaf clear-n-flag { type boolean; default "false"; description "Specifies whether the node-sid flag (N-flag) should be cleared."; } choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "IPvX node SID index for this interface"; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container node-sid container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf inbound { type types-sros:named-item; description "sa-name"; } leaf outbound { type types-sros:named-item; description "sa-name"; } } // container authentication list neighbor { key "address"; description "Add a list entry for neighbor"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "Neighbor link local address"; } } // list neighbor } // list interface list virtual-link { key "router-id transit-area"; description "Enter the virtual-link list instance"; leaf router-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Router ID of the virtual link neighbor"; } leaf transit-area { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Transit area that links backbone area to area without physical connection with the backbone"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "60"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf inbound { type types-sros:named-item; description "sa-name"; } leaf outbound { type types-sros:named-item; description "sa-name"; } } // container authentication } // list virtual-link } // list area } // list ospf3 container pcep { description "Enter the pcep context"; container pcc { presence "Enter the 'pcc' context"; description "Enable the pcc context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the PCEP session element"; } leaf keepalive { type uint32 { range "1..255"; } units "seconds"; default "30"; description "Configure keepalive"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Configure local IP"; } leaf local-address-ipv6 { type types-sros:ipv6-unicast-address; description "Configure local IPV6"; } leaf unknown-message-rate { type uint32 { range "1..255"; } default "10"; description "Configure unknown message rate"; } leaf report-path-constraints { type boolean; default "true"; description "Specify whether to enable/disable path constraints in PCC report"; } leaf dead-timer { type uint32 { range "1..255"; } units "seconds"; default "120"; description "Configure dead timer"; } leaf redelegation-timer { type uint32 { range "1..3600"; } units "seconds"; default "90"; description "Configure redelegation-timer"; } leaf max-srte-pce-init-lsps { type uint32 { range "0..8191"; } default "8191"; description "Configure max sr te pce init LSP"; } container state-timer { description "Enter the state-timer context"; leaf timer { type uint32 { range "1..3600"; } units "seconds"; default "180"; description "Configure state-timer"; } leaf timer-action { type enumeration { enum "none" { value 0; } enum "remove" { value 1; } } default "remove"; description "State timer action remove/none"; } } // container state-timer list peer { key "ip-address"; max-elements 2; description "Enter the peer list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "This value specifies the address of the PCE peer"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PCC peer"; } leaf preference { type uint32 { range "0..100"; } sros-ext:immutable; default "0"; description "The value indicates the preference value of this peer. If higher preference PCE is unavailable or not connected, PCE with the next preference is used."; } } // list peer } // container pcc container pce { presence "Enter the 'pce' context"; description "Enable the pce context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the PCEP session element"; } leaf keepalive { type uint32 { range "1..255"; } units "seconds"; default "30"; description "Configure keepalive"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Configure local IP"; } leaf local-address-ipv6 { type types-sros:ipv6-unicast-address; description "Configure local IPV6"; } leaf unknown-message-rate { type uint32 { range "1..255"; } default "10"; description "Configure unknown message rate"; } leaf dead-timer { type uint32 { range "1..255"; } units "seconds"; default "120"; description "Configure dead timer"; } } // container pce } // container pcep container pim { presence "Enter the 'pim' context"; description "Enable the pim context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PIM"; } leaf apply-to { type enumeration { enum "ies" { value 1; } enum "non-ies" { value 2; } enum "all" { value 3; } enum "none" { value 4; } } default "none"; description "IES and non-IES interfaces to create in PIM"; } leaf mdt-spt { type boolean; default "false"; description "Use SPT switchover for default MDT"; } leaf lag-usage-optimization { type boolean; default "false"; description "Optimize LAG usage"; } leaf mc-ecmp-balance { type boolean; default "true"; description "Enable multicast balancing of traffic over ECMP links"; } leaf mc-ecmp-balance-hold { type uint32 { range "2..600"; } units "minutes"; description "Hold time for multicast balancing over ECMP links"; } leaf non-dr-attract-traffic { type boolean; default "false"; description "Attract traffic when the router is not the designated one"; } leaf pim-ssm-scaling { type boolean; default "false"; description "Enable PIM-SSM scaling"; } container ipv4 { description "Enter the ipv4 context"; leaf ssm-assert-compatible-mode { type boolean; default "false"; description "Enable SSM assert compatible mode"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PIM operation for IPv4"; } leaf multicast-fast-failover { type boolean; default "false"; description "Use Multicast-Only Fast Reroute (MoFRR) functionality"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "Route table(s) for the Reverse Path Forwarding (RPF) lookup"; } leaf ssm-default-range { type boolean; default "true"; description "SSM default range"; } container gtm { description "Enter the gtm context"; leaf auto-discovery { type enumeration { enum "bgp" { value 1; } } description "Method for multicast VPN membership auto-discovery"; } } // container gtm } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PIM operation for IPv6"; } leaf multicast-fast-failover { type boolean; default "false"; description "Use Multicast-Only Fast Reroute (MoFRR) functionality"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "Route table(s) for the Reverse Path Forwarding (RPF) lookup"; } leaf ssm-default-range { type boolean; default "true"; description "SSM default range"; } } // container ipv6 container mc-ecmp-hashing { presence "Enter the 'mc-ecmp-hashing' context"; description "Enable the mc-ecmp-hashing context"; leaf rebalance { type boolean; default "false"; description "Rebalance flows to newly added links immediately instead of waiting until they are pruned"; } } // container mc-ecmp-hashing container import { description "Enter the import context"; leaf-list join-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Character limit for policy name"; } leaf-list register-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Character limit for policy name"; } } // container import list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf assert-period { type int32 { range "1..300"; } default "60"; description "Time for periodic refreshes of PIM Assert messages on an interface"; } leaf hello-interval { type int32 { range "0..255"; } default "30"; description "Frequency at which PIM Hello messages are sent over this interface"; } leaf hello-multiplier { type uint32 { range "20..100"; } default "35"; description "Multiplier of Hello in multiples of 0.1"; } leaf instant-prune-echo { type boolean; default "false"; description "Allow PIM to send an instant prune echo when router starts the prune pending timer for PIM interface"; } leaf max-groups { type uint32 { range "0|1..16000"; } default "0"; description "Max number of groups for which PIM can have local receiver information based on received PIM reports"; } leaf priority { type uint32 { range "1..max"; } default "1"; description "DR election priority for this interface"; } leaf three-way-hello { type boolean; default "false"; description "Allow three-way hello compatibility mode"; } leaf tracking-support { type boolean; default "false"; description "Allow upstream routers to explicitly track join membership"; } leaf bsm-check-rtr-alert { type boolean; default "false"; description "Check router alert option in bootstrap messages received"; } leaf improved-assert { type boolean; default "true"; description "Allow improved assert processing on interface"; } leaf multicast-senders { type enumeration { enum "auto" { value 0; } enum "always" { value 1; } enum "never" { value 2; } } default "auto"; description "Subnet matching for the incoming data packets"; } container p2mp-ldp-tree-join { description "Enter the p2mp-ldp-tree-join context"; leaf ipv4 { type boolean; default "false"; description "Allow dynamic mLDP in-band signaling for IPv4 PIM joins"; } leaf ipv6 { type boolean; default "false"; description "Allow dynamic mLDP in-band signaling for IPv6 PIM joins"; } } // container p2mp-ldp-tree-join container bfd-liveness { description "Enter the bfd-liveness context"; leaf ipv4 { type boolean; default "false"; description "Use Bidirectional Forwarding Detection for IPv4 on PIM interface"; } leaf ipv6 { type boolean; default "false"; description "Use Bidirectional Forwarding Detection for IPv6 on PIM interface"; } } // container bfd-liveness container ipv4 { description "Enter the ipv4 context"; leaf multicast { type boolean; default "true"; description "Enable PIM interface operation"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf name { type types-sros:named-item; description "Operational group to monitor for address family"; } leaf operation { type enumeration { enum "add" { value 1; } enum "subtract" { value 2; } enum "set" { value 3; } } description "Perform given operation when oper-group is active."; } leaf priority-delta { type uint32 { range "1..4294967295"; } description "Delta priority with operation when operational group is active"; } } // container monitor-oper-group } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf multicast { type boolean; default "true"; description "Enable PIM interface operation"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf name { type types-sros:named-item; description "Operational group to monitor for address family"; } leaf operation { type enumeration { enum "add" { value 1; } enum "subtract" { value 2; } enum "set" { value 3; } } description "Perform given operation when oper-group is active."; } leaf priority-delta { type uint32 { range "1..4294967295"; } description "Delta priority with operation when operational group is active"; } } // container monitor-oper-group } // container ipv6 container sticky-dr { presence "Enter the 'sticky-dr' context"; description "Enable the sticky-dr context"; leaf priority { type uint32 { range "1..max"; } default "1024"; description "DR election priority for this interface"; } } // container sticky-dr container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of constraint for multicast CAC policy"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-mcast-cac:constraints-level; } description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } description "Bandwidth available for this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..64"; } } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; description "Level ID to associate with number of down LAG ports"; } } // list number-down } // container mc-constraints } // container mcac container bier-signaling-type { description "Enter the bier-signaling-type context"; leaf ipv4 { type boolean; default "false"; description "Whether ipv4 bier-signaling-type is enabled."; } leaf ipv6 { type boolean; default "false"; description "Whether ipv6 bier-signaling-type is enabled."; } } // container bier-signaling-type } // list interface container rp { description "Enter the rp context"; container bootstrap { description "Enter the bootstrap context"; leaf-list import { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Character limit for policy name"; } leaf-list export { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Character limit for policy name"; } } // container bootstrap container ipv4 { description "Enter the ipv4 context"; leaf auto-rp-discovery { type boolean; default "false"; description "Enable auto RP discovery"; } leaf candidate { type boolean; default "false"; description "Enable the auto-RP to advertise candidate RP information"; } leaf mapping-agent { type boolean; default "false"; description "Enable the mapping agent on the node"; } list anycast { key "ipv4-address rp-set-peer"; description "Add a list entry for anycast"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Anycast RP address"; } leaf rp-set-peer { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Configure a peer in the anycast rp-set."; } } // list anycast container bsr-candidate { description "Enter the bsr-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate BSR"; } leaf priority { type int32 { range "0..255"; } default "0"; description "Bootstrap priority of the router"; } leaf address { type types-sros:ipv4-unicast-address; description "Candidate BSR IP address for Bootstrap Router election"; } leaf hash-mask-len { type int32 { range "0..32"; } default "30"; description "Length for bootstrap hash mask"; } } // container bsr-candidate container rp-candidate { description "Enter the rp-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate RP"; } leaf holdtime { type int32 { range "5..255"; } units "seconds"; default "150"; description "Time during which the neighboring router considers this router to be up"; } leaf priority { type int32 { range "0..255"; } default "192"; description "Candidate RP priority"; } leaf address { type types-sros:ipv4-unicast-address; description "Local RP address"; } list group-range { key "ipv4-prefix"; description "Add a list entry for group-range"; leaf ipv4-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-prefix; } description "IPv4 address and prefix length"; } } // list group-range } // container rp-candidate container static { description "Enter the static context"; list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Configure the address of the statically configured RP."; } leaf override { type boolean; default "false"; description "Change the precedence for static RP over dynamically learnt RP"; } list group-prefix { key "ipv4-prefix"; description "Add a list entry for group-prefix"; leaf ipv4-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-prefix; } description "IPv4 address and prefix length"; } } // list group-prefix } // list address } // container static } // container ipv4 container ipv6 { description "Enter the ipv6 context"; list anycast { key "ipv6-address rp-set-peer"; description "Add a list entry for anycast"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Anycast RP address"; } leaf rp-set-peer { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Configure a peer in the anycast rp-set."; } } // list anycast container bsr-candidate { description "Enter the bsr-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate BSR"; } leaf priority { type int32 { range "0..255"; } default "0"; description "Bootstrap priority of the router"; } leaf address { type types-sros:ipv6-unicast-address; description "Candidate BSR IP address for Bootstrap Router election"; } leaf hash-mask-len { type int32 { range "0..128"; } default "126"; description "Length for bootstrap hash mask"; } } // container bsr-candidate container embedded-rp { presence "Enter the 'embedded-rp' context"; description "Enable the embedded-rp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of embedded RP"; } list group-range { key "ipv6-prefix"; description "Add a list entry for group-range"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-prefix; } description "IPv6 address and prefix length"; } } // list group-range } // container embedded-rp container rp-candidate { description "Enter the rp-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate RP"; } leaf holdtime { type int32 { range "5..255"; } units "seconds"; default "150"; description "Time during which the neighboring router considers this router to be up"; } leaf priority { type int32 { range "0..255"; } default "192"; description "Candidate RP priority"; } leaf address { type types-sros:ipv6-unicast-address; description "Local RP address"; } list group-range { key "ipv6-prefix"; description "Add a list entry for group-range"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-prefix; } description "IPv6 address and prefix length"; } } // list group-range } // container rp-candidate container static { description "Enter the static context"; list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Static IP address of the RP"; } leaf override { type boolean; default "false"; description "Change the precedence for static RP over dynamically learnt RP"; } list group-prefix { key "ipv6-prefix"; description "Add a list entry for group-prefix"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-prefix; } description "IPv6 address and prefix length"; } } // list group-prefix } // list address } // container static } // container ipv6 } // container rp container rpfv { description "Enter the rpfv context"; leaf mvpn { type boolean; default "false"; description "Include proxy RPF vector for Inter-AS Rosen MVPN"; } leaf core { type boolean; default "false"; description "Include proxy RPF vector for core"; } } // container rpfv list spt-switchover { key "ip-prefix"; description "Enter the spt-switchover list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-multicast-prefix; } description "IP address and mask length"; } leaf threshold { type union { type uint32 { range "1..4294967294"; } type enumeration { enum "infinity" { value -1; } } } units "kilobps"; description "SPT switchover threshold"; } } // list spt-switchover container ssm-groups { description "Enter the ssm-groups context"; list group-range { key "ip-prefix"; description "Add a list entry for group-range"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-multicast-prefix; } description "IP address and mask length"; } } // list group-range } // container ssm-groups } // container pim container radius { description "Enter the radius context"; list server { key "name"; max-elements 64; description "Enter the server list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RADIUS server name"; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; description "IP address for server"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Secret key associated with this RADIUS server"; } leaf accept-coa { type boolean; default "false"; description "Allow the server to send Change of Authorization (CoA) messages"; } leaf acct-port { type types-sros:tcp-udp-port-non-zero; default "1813"; description "UDP port number of the RADIUS for accounting events"; } leaf auth-port { type types-sros:tcp-udp-port-non-zero; default "1812"; description "UDP port number of the RADIUS to be used as match criteria"; } leaf pending-requests-limit { type uint32 { range "1..4096"; } default "4096"; description "Limit of the number for pending RADIUS requests"; } leaf python-policy { type types-sros:named-item; description "Python script policy to modify CoA messages"; } } // list server list proxy { key "name"; max-elements 8; description "Enter the proxy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RADIUS proxy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RADIUS proxy"; } leaf description { type types-sros:description; description "Text description"; } leaf purpose { type enumeration { enum "accounting" { value 1; } enum "authentication" { value 2; } enum "accounting-authentication" { value 3; } } sros-ext:immutable; description "Purpose of the RADIUS proxy"; } leaf wlan-gw-group { type types-isa:wlan-gw-group-id; sros-ext:immutable; description "ISA WLAN gateway group"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Format of the secret key to access the RADIUS proxy server"; } leaf send-accounting-response { type boolean; default "false"; description "Allow RADIUS proxy server to respond to Accounting-Response messages"; } leaf python-policy { type types-sros:named-item; description "Python policy"; } container load-balance-key { description "Enter the load-balance-key context"; choice load-balance-key { case source-ip-udp { leaf source-ip-udp { type empty; description "Key to consist of the source IP address and source UDP port of the RADIUS message"; } } case attributes { container attribute-1 { description "Enter the attribute-1 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-1 container attribute-2 { description "Enter the attribute-2 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-2 container attribute-3 { description "Enter the attribute-3 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-3 container attribute-4 { description "Enter the attribute-4 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-4 container attribute-5 { description "Enter the attribute-5 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-5 } } } // container load-balance-key container cache { description "Enter the cache context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the RADIUS proxy cache"; } leaf track-delete-hold-time { type types-sros:time-duration { range "0..6000"; } default "0"; description "Delete hold time"; } leaf timeout { type types-sros:time-duration { range "60..3600"; } default "300"; description "Idle timeout value"; } container key { presence "Enter the 'key' context"; description "Enable the key context"; leaf packet-type { type enumeration { enum "access-request" { value 1; } enum "access-accept" { value 2; } } description "Packet type of the RADIUS messages to generate the key for the cache of this RADIUS proxy server"; } leaf attribute-type { type types-radius:radius-attribute-type; description "RADIUS attribute type to cache for this RADIUS proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "RADIUS Vendor ID"; } } // container key container track-accounting { description "Enter the track-accounting context"; leaf start { type boolean; default "false"; description "Update the ESM host with the RADIUS client that generated the accounting-start"; } leaf stop { type boolean; default "false"; description "Remove the ESM host and forward the accounting-stop packet to the external RADIUS server"; } leaf interim-update { type boolean; default "false"; description "Update the ESM host with the RADIUS client that generated the interim update"; } leaf accounting-on { type boolean; default "false"; description "Remove all ESM hosts associated with the RADIUS client"; } leaf accounting-off { type boolean; default "false"; description "Remove all ESM hosts associated with the RADIUS client"; } } // container track-accounting container track-authentication { description "Enter the track-authentication context"; leaf accept { type boolean; default "true"; description "Track Access-Accept message for mobility"; } } // container track-authentication } // container cache container attribute-matching { description "Enter the attribute-matching context"; leaf type { type types-radius:radius-attribute-type; description "Matching attribute type to RADIUS server policy"; } leaf vendor { type types-radius:radius-vendor-id; description "Matching Vendor ID to RADIUS server policy"; } list entry { key "index"; description "Enter the entry list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32"; } } description "Index of this entry"; } leaf prefix-string { type types-sros:display-string { length "1..128"; } description "Prefix string"; } leaf suffix-string { type types-sros:display-string { length "1..128"; } description "Prefix string"; } leaf accounting-server-policy { type types-sros:named-item; description "Accounting server policy"; } leaf authentication-server-policy { type types-sros:named-item; description "Authentication server policy"; } } // list entry } // container attribute-matching container wlan-gw { description "Enter the wlan-gw context"; leaf address { type types-sros:ipv4-unicast-address; description "IP address of this RADIUS proxy server"; } leaf ipv6-address { type types-sros:ipv6-unicast-without-local-address; description "IPv6 address of this RADIUS proxy server"; } } // container wlan-gw container defaults { description "Enter the defaults context"; leaf authentication-server-policy { type types-sros:named-item; description "Default authentication RADIUS server policy"; } leaf accounting-server-policy { type types-sros:named-item; description "Default accounting RADIUS server policy"; } } // container defaults list interface { key "interface-name"; description "Add a list entry for interface"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Specifies the interface name"; } } // list interface } // list proxy } // container radius container rib-api { description "Enter the rib-api context"; container mpls { description "Enter the mpls context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MPLS for RIB-API gRPC service"; } leaf label-name { type types-sros:named-item-64; description "Configure reserved label block."; } } // container mpls } // container rib-api container rip { presence "Enter the 'rip' context"; description "Enable the rip context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIP instance"; } leaf description { type types-sros:description; description "Text description"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; default "none"; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; default "false"; description "Check for zero values in must-be-zero fields."; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf message-size { type types-rip:message-size; default "25"; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; default "1"; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; default "1"; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; default "100"; description "Route preference."; } leaf receive { type types-rip:receive; default "both"; description "Accepted version on received packets."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } } default "broadcast"; description "RIP version and method used to send RIP updates."; } leaf split-horizon { type boolean; default "true"; description "Enable split-horizon."; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RIP group name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RIP neighbor interface group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to group peers."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from group peers."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-rip:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; description "Route preference."; } leaf receive { type types-rip:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } } description "RIP version and method used to send RIP updates."; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list neighbor { key "interface-name"; description "Enter the neighbor list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIP neighbor interface"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to peers."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from peers."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-rip:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; description "Route preference."; } leaf receive { type types-rip:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } enum "unicast" { value 6; } } description "RIP version and method used to send RIP updates."; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list unicast-address { key "address"; description "Add a list entry for unicast-address"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Create a unicast-address for the neighbor."; } } // list unicast-address } // list neighbor } // list group } // container rip container ripng { presence "Enter the 'ripng' context"; description "Enable the ripng context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIPng instance"; } leaf description { type types-sros:description; description "Text description"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; default "false"; description "Check for zero values in must-be-zero fields."; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf message-size { type types-ripng:message-size; default "25"; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; default "1"; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; default "1"; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; default "100"; description "Route preference."; } leaf receive { type types-ripng:receive; default "ripng"; description "Accepted version on received packets."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } } default "ripng"; description "RIPng version and method used to send RIPng updates."; } leaf split-horizon { type boolean; default "true"; description "Enable split-horizon."; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RIP group name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RIPng neighbor interface group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to group peers."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from group peers."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-ripng:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; description "Route preference."; } leaf receive { type types-ripng:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } } description "RIPng version and method used to send RIPng updates."; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list neighbor { key "interface-name"; description "Enter the neighbor list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the neighbor."; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to peers."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from peers."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-ripng:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; description "Route preference."; } leaf receive { type types-ripng:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } enum "unicast" { value 6; } } description "RIPng version and method used to send RIPng updates."; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list unicast-address { key "address"; description "Add a list entry for unicast-address"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Create a unicast-address for the neighbor."; } } // list unicast-address } // list neighbor } // list group } // container ripng container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf entropy-label-capability { type boolean; default "false"; description "Allow receiving and processing of the entropy label and ELI on incoming packets of RSVP LSPs"; } leaf graceful-shutdown { type boolean; default "false"; description "Initiate a graceful shutdown of all RSVP interfaces on the node"; } leaf implicit-null-label { type boolean; default "false"; description "Signal the implicit null option for all RSVP LSPs"; } leaf keep-multiplier { type uint32 { range "1..255"; } default "3"; description "Value for the keep-multiplier to declare a reservation or neighbor as down"; } leaf include-node-id-in-rro { type boolean; default "false"; description "Include the node-id sub-object in the RRO (Record Route Object) on the RSVP instance"; } leaf p2mp-merge-point-abort-timer { type uint32 { range "1..65535"; } units "seconds"; description "Merge pointer timer for abort timer"; } leaf p2p-merge-point-abort-timer { type uint32 { range "1..65535"; } units "seconds"; description "Merge pointer timer for P2P paths"; } leaf preemption-timer { type uint32 { range "0..1800"; } units "seconds"; default "300"; description "Preemption timer for the MPLS instance"; } leaf rapid-retransmit-time { type uint32 { range "1..100"; } units "deciseconds"; default "5"; description "Rapid retransmission interval to reliably deliver RSVP messages"; } leaf rapid-retry-limit { type uint32 { range "1..6"; } default "3"; description "Rapid retry limit to reliably deliver RSVP messages"; } leaf refresh-reduction-over-bypass { type boolean; default "false"; description "Enable/disable refresh reduction capabilities over all bypass tunnels."; } leaf refresh-time { type uint32 { range "1..65535"; } units "seconds"; default "30"; description "Interval between refresh messages"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RSVP"; } leaf-list te-down-threshold { type types-rsvp:rsvp-te-threshold-level; max-elements 16; ordered-by user; description "Value for the te-down-threshold"; } leaf-list te-up-threshold { type types-rsvp:rsvp-te-threshold-level; max-elements 16; ordered-by user; description "Value for the te-up-threshold"; } container graceful-restart { description "Enter the graceful-restart context"; leaf max-recovery { type uint32 { range "1..1800"; } units "seconds"; default "300"; description "Maximum time to wait before a graceful helper recovers the session"; } leaf max-restart { type uint32 { range "1..300"; } units "seconds"; default "120"; description "Maximum time that a graceful helper waits for session restart after the neighbor is considered down"; } } // container graceful-restart container msg-pacing { presence "Enter the 'msg-pacing' context"; description "Enable the msg-pacing context"; leaf max-burst { type uint32 { range "100..1000"; } default "650"; description "Maximum RSVP messages that are sent over a specified period when message pacing is enabled"; } leaf period { type uint32 { range "100..1000"; } units "milliseconds"; default "100"; description "Time for RSVP message pacing"; } } // container msg-pacing container te-threshold-update { presence "Enter the 'te-threshold-update' context"; description "Enable the te-threshold-update context"; leaf on-cac-failure { type boolean; default "false"; description "CAC (Call Admission Control) failure-triggered IGP update"; } leaf update-timer { type uint32 { range "1..300"; } units "seconds"; description "Timer-based IGP updates"; } } // container te-threshold-update container dbw-accounting { presence "Enter the 'dbw-accounting' context"; description "Enable the dbw-accounting context"; leaf dbw-multiplier { type uint32 { range "0..1000"; } units "percent"; default "100"; description "Dark Bandwidth multiplier"; } leaf sample-interval { type uint32 { range "10..600"; } units "seconds"; default "30"; description "Dark Bandwidth sample interval"; } leaf sample-multiplier { type uint32 { range "1..10"; } default "3"; description "Dark Bandwidth sample multiplier"; } container up-threshold { description "Enter the up-threshold context"; leaf percent { type types-sros:percent; default "0"; description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update"; } leaf bw { type int32 { range "0..1000000"; } units "megabps"; description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update"; } } // container up-threshold container down-threshold { description "Enter the down-threshold context"; leaf percent { type types-sros:percent; default "0"; description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update"; } leaf bw { type int32 { range "0..1000000"; } units "megabps"; description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update"; } } // container down-threshold } // container dbw-accounting container diffserv-te { presence "Enter the 'diffserv-te' context"; description "Enable the diffserv-te context"; leaf admission-control-model { type enumeration { enum "mam" { value 1; } enum "rdm" { value 2; } } description "Parameters for the DiffServ TE node"; } container class-type-bw { description "Enter the class-type-bw context"; leaf ct0 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 0"; } leaf ct1 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 1"; } leaf ct2 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 2"; } leaf ct3 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 3"; } leaf ct4 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 4"; } leaf ct5 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 5"; } leaf ct6 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 6"; } leaf ct7 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 7"; } } // container class-type-bw list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class for this mapping"; } leaf class-type { type types-mpls:class-type; description "Diff-Serv Class Type (CT) for an LSP"; } } // list fc list te-class { key "te-class-number"; description "Enter the te-class list instance"; leaf te-class-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..7"; } } description "Unique value that identifies the TE class."; } leaf class-type { type types-mpls:class-type; sros-ext:immutable; description "Class type (CT) associated with the TE class"; } leaf priority { type types-mpls:priority; sros-ext:immutable; description "TE class priority"; } } // list te-class } // container diffserv-te list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Index for router RSVP interface"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RSVP on the interface"; } leaf authentication-keychain { type types-sros:named-item; description "Configure TCP authentication keychain to use for the session."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf graceful-restart-helper-mode { type boolean; default "false"; description "Enable graceful restart helper for the RSVP interface"; } leaf graceful-shutdown { type boolean; default "false"; description "Initiate a graceful shutdown of RSVP interface"; } leaf hello-interval { type uint32 { range "0..60"; } units "seconds"; default "3"; description "Time between RSVP Hello messages"; } leaf subscription { type uint32 { range "0..1000"; } default "100"; description "Percentage of the link bandwidth to use for reservation"; } leaf dbw-multiplier { type int32 { range "0..1000"; } units "percent"; description "Configure the Dark Bandwidth multiplier."; } leaf implicit-null-label { type boolean; description "Signal the implicit null label value for all LSPs"; } container class-type-bw { presence "Enter the 'class-type-bw' context"; description "Enable the class-type-bw context"; leaf ct0 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 0"; } leaf ct1 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 1"; } leaf ct2 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 2"; } leaf ct3 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 3"; } leaf ct4 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 4"; } leaf ct5 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 5"; } leaf ct6 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 6"; } leaf ct7 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 7"; } } // container class-type-bw container refresh-reduction { presence "Enter the 'refresh-reduction' context"; description "Enable the refresh-reduction context"; leaf reliable-delivery { type boolean; default "false"; description "Reliable delivery of RSVP messages over the RSVP interface"; } } // container refresh-reduction container dbw-up-threshold { presence "Enter the 'dbw-up-threshold' context"; description "Enable the dbw-up-threshold context"; leaf percent { type int32 { range "0..100"; } units "percent"; description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update"; } leaf bw { type int32 { range "0..1000000"; } units "megabps"; description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update"; } } // container dbw-up-threshold container dbw-down-threshold { presence "Enter the 'dbw-down-threshold' context"; description "Enable the dbw-down-threshold context"; leaf percent { type int32 { range "0..100"; } units "percent"; description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update"; } leaf bw { type int32 { range "0..1000000"; } units "megabps"; description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update"; } } // container dbw-down-threshold container te-down-threshold { presence "Enter the 'te-down-threshold' context"; description "Enable the te-down-threshold context"; leaf-list value { type types-rsvp:rsvp-te-threshold-level; min-elements 1; max-elements 16; ordered-by user; description "Specifies down TE threshold levels."; } } // container te-down-threshold container te-up-threshold { presence "Enter the 'te-up-threshold' context"; description "Enable the te-up-threshold context"; leaf-list value { type types-rsvp:rsvp-te-threshold-level; min-elements 1; max-elements 16; ordered-by user; description "Specifies up TE threshold levels."; } } // container te-up-threshold } // list interface } // container rsvp container segment-routing { description "Enter the segment-routing context"; list maintenance-policy { key "policy-name"; description "Enter the maintenance-policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Maintenance policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the maintenance policy"; } leaf bfd-liveness { type boolean; default "false"; description "Enable seamless BFD for segment lists of candidate path"; } leaf bfd-template { type types-sros:named-item; description "BFD template to be used by seamless BFD"; } leaf mode { type enumeration { enum "none" { value 0; } enum "ecmp-protected" { value 1; } enum "linear" { value 2; } } default "none"; description "Protection mode for SR policy candidate paths"; } leaf threshold { type uint32 { range "1..32"; } default "1"; description "Minimum number of up S-BFD sessions for up path status"; } leaf hold-down-timer { type uint32 { range "0..5000"; } units "deciseconds"; default "0"; description "Hold down timer for SR policy candidate paths"; } leaf revert-timer { type uint32 { range "0..4320"; } units "minutes"; default "0"; description "Revert timer for SR policy candidate paths"; } } // list maintenance-policy container sr-policies { description "Enter the sr-policies context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing policy system"; } leaf reserved-label-block { type types-sros:named-item-64; description "Reserved local block for segment routing policies"; } container ingress-statistics { presence "Enter the 'ingress-statistics' context"; description "Enable the ingress-statistics context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for the segment routing policies"; } } // container ingress-statistics container egress-statistics { presence "Enter the 'egress-statistics' context"; description "Enable the egress-statistics context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for the segment routing policies"; } } // container egress-statistics list static-policy { key "name"; max-elements 8192; description "Enter the static-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Name for the segment routing static policy"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing static policy"; } leaf color { type int64 { range "0..4294967295"; } description "Traffic flows to be steered by this policy"; } leaf endpoint { type types-sros:ip-address; description "Destination of the source-routed path"; } leaf preference { type uint32; default "100"; description "Preference value of this static policy"; } leaf head-end { type union { type types-sros:ip-address; type enumeration { enum "local" { value 1; } } } description "Head end address for this static policy"; } leaf binding-sid { type types-sros:mpls-label-or-zero; description "Segment ID that opaquely represents an SR policy to upstream routers"; } leaf distinguisher { type uint32 { range "1..max"; } description "Unique value for a policy"; } leaf maintenance-policy { type types-sros:named-item; description "Policy name"; } list segment-list { key "seg-list-index"; max-elements 32; description "Enter the segment-list list instance"; leaf seg-list-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32"; } } description "Index for identifying a particular segment list"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the segment list of a static policy"; } leaf weight { type uint32; default "1"; description "Weight of this segment list"; } list segment { key "segment-index"; max-elements 11; description "Enter the segment list instance"; leaf segment-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..11"; } } description "Index for identifying a particular segment list"; } leaf mpls-label { type uint32 { range "0..1048575"; } description "Value for the MPLS label"; } } // list segment } // list segment-list } // list static-policy } // container sr-policies } // container segment-routing container static-routes { description "Enter the static-routes context"; container hold-down { presence "Enter the 'hold-down' context"; description "Enable the hold-down context"; leaf initial { type uint32 { range "1..65535"; } description "Value for the initial hold down time"; } leaf multiplier { type uint32 { range "1..10"; } description "Value by which the previous hold-down time is multiplied to calculate the new one"; } leaf max-value { type uint32 { range "1..65535"; } description "Maximum value of the hold down time"; } } // container hold-down list route { key "ip-prefix route-type"; description "Enter the route list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "IP prefix and prefix length for the static routes"; } leaf route-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:unicast-multicast; } description "Static route type for unicast or multicast RPF"; } leaf-list community { type types-sros:community; max-elements 12; ordered-by user; description "Community ID associated with the static route"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf backup-tag { type uint32 { range "1..max"; } description "Configure static route backup tag."; } container blackhole { presence "Enter the 'blackhole' context"; description "Enable the blackhole context"; leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf dynamic-bgp { type boolean; default "false"; description "Derive static route's next-hop from the best BGP route for the exact same IP prefix"; } leaf generate-icmp { type boolean; default "false"; description "Send ICMP unreachable messages when received packets match a static route with black-hole next-hop"; } container prefix-list { description "Enter the prefix-list context"; leaf name { type types-sros:named-item; description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list } // container blackhole list indirect { key "ip-address"; description "Enter the indirect list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "Indirect next hop for static routes"; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type types-sros:named-item; description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "IP address of the target CPE device"; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } } // list cpe-check container tunnel-next-hop { description "Enter the tunnel-next-hop context"; leaf disallow-igp { type boolean; default "false"; description "Do not resolve indirect static routes using IGP next-hops in RTM if no tunnel next-hops found in TTM"; } leaf resolution { type enumeration { enum "none" { value 0; } enum "filter" { value 1; } enum "any" { value 2; } } default "none"; description "Tunnel next hop resolution to resolve indirect static route"; } leaf flex-algo { type types-router:flex-algo-id; description "Flexible Algorithm ID"; } container resolution-filter { description "Enter the resolution-filter context"; leaf ldp { type boolean; default "false"; description "Use LDP Route Forwarding Equivalence Class (FEC) tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use the SR ISIS tunneling mechanism to resolve next hop for the static route"; } leaf sr-ospf { type boolean; default "false"; description "Use SR OSPF tunneling for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Specifies if SR OSPFv3 tunneling mechanism will be used to resolve next-hop for the static-route or not."; } leaf rib-api { type boolean; default "false"; description "Enable/disable setting RIB API type for tunnel-next-hop."; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for tunnel-next-hop"; } container rsvp-te { presence "Enter the 'rsvp-te' context"; description "Enable the rsvp-te context"; list lsp { key "lsp-name"; description "Add a list entry for lsp"; leaf lsp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Labeled Switch Path name"; } } // list lsp } // container rsvp-te container sr-te { presence "Enter the 'sr-te' context"; description "Enable the sr-te context"; list lsp { key "lsp-name"; description "Add a list entry for lsp"; leaf lsp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Labeled Switch Path name"; } } // list lsp } // container sr-te } // container resolution-filter } // container tunnel-next-hop } // list indirect list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name"; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Load-balancing weight for all of the ECMP next hops"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type types-sros:named-item; description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "IP address of the target CPE device"; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } } // list cpe-check } // list interface list next-hop { key "ip-address"; description "Enter the next-hop list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address-with-zone; } description "IP address for the next hop"; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf bfd-liveness { type boolean; default "false"; description "Use Bidirectional Forwarding Detection on this static route"; } leaf validate-next-hop { type boolean; default "false"; description "Track the state of the next hop in the IPv4 ARP Cache or the IPv6 Neighbor Cache"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Load-balancing weight for all of the ECMP next hops"; } leaf ldp-sync { type boolean; default "false"; description "Use LDP synchronization feature for a static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type types-sros:named-item; description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list container backup-next-hop { description "Enter the backup-next-hop context"; leaf address { type types-sros:ip-address; description "This is the backup next-hop ip address."; } } // container backup-next-hop list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "IP address of the target CPE device"; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } } // list cpe-check } // list next-hop } // list route } // container static-routes container twamp-light { description "Enter the twamp-light context"; container reflector { presence "Enter the 'reflector' context"; description "Enable the reflector context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of TWAMP Light functionality"; } leaf description { type types-sros:description; description "Text description"; } leaf udp-port { type types-sros:tcp-udp-port-non-zero { range "862|64364..64373"; } description "UDP port on which the specified TWAMP-Light reflector listens for TWAMP PDUs"; } list prefix { key "ip-prefix"; max-elements 50; description "Enter the prefix list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Source prefix for the TWAMP-Light reflector"; } leaf description { type types-sros:description; description "Text description"; } } // list prefix } // container reflector } // container twamp-light container wpp { presence "Enter the 'wpp' context"; description "Enable the wpp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WPP"; } list portal { key "name"; description "Enter the portal list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "WPP portal name"; } leaf address { type types-sros:ip-unicast-without-local-address; sros-ext:immutable; description "WPP portal address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the WPP portal"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Message authentication between portal and BRAS by applying the secret used by WPPv2"; } leaf version { type uint32 { range "1|2"; } default "1"; description "Protocol version to be expected by the WPP portal"; } leaf retry-interval { type uint32 { range "10..2000"; } units "milliseconds"; default "2000"; description "Time between two consecutive retransmissions"; } leaf ntf-logout-retry-count { type uint32 { range "0..5"; } default "5"; description "Number of retransmissions of an NTF_LOGOUT message"; } leaf ack-auth-retry-count { type uint32 { range "0..5"; } default "5"; description "Number of retransmissions of an ACK_OUT message"; } leaf port-format { type enumeration { enum "standard" { value 1; } enum "vendor-specific" { value 2; } } default "standard"; description "Format of the port in the ACK_INO message"; } } // list portal } // container wpp } // list router container routing-options { description "Enter the routing-options context"; leaf ip-fast-reroute { type boolean; default "false"; description "Enable IP fast reroute capability"; } container flexible-algorithm-definitions { description "Enter the flexible-algorithm-definitions context"; list flex-algo { key "flex-algo-name"; max-elements 256; description "Enter the flex-algo list instance"; leaf flex-algo-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Flexible Algorithm Definition (FAD) name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the FAD"; } leaf description { type types-sros:description; description "Text description"; } leaf flags-tlv { type boolean; default "true"; description "Advertise the FAD Flags TLV"; } leaf metric-type { type enumeration { enum "igp" { value 0; } enum "delay" { value 1; } enum "te-metric" { value 2; } } default "igp"; description "FAD metric type"; } leaf priority { type int32 { range "0..255"; } default "100"; description "FAD priority"; } container exclude { description "Enter the exclude context"; list admin-group { key "group-name"; description "Add a list entry for admin-group"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Administrative group name"; } } // list admin-group } // container exclude container include-any { description "Enter the include-any context"; list admin-group { key "group-name"; description "Add a list entry for admin-group"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Administrative group name"; } } // list admin-group } // container include-any container include-all { description "Enter the include-all context"; list admin-group { key "group-name"; description "Add a list entry for admin-group"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Administrative group name"; } } // list admin-group } // container include-all } // list flex-algo } // container flexible-algorithm-definitions container if-attribute { description "Enter the if-attribute context"; list admin-group { key "group-name"; max-elements 32; description "Enter the admin-group list instance"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Specifies interface admin group name."; } leaf value { type uint32 { range "0..31"; } sros-ext:immutable; description "Specifies the group value associated with this administrative group."; } } // list admin-group list srlg-group { key "name"; max-elements 1024; description "Enter the srlg-group list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Specifies a name defined for the Shared Risk Link Group (SRLG)."; } leaf value { type int64 { range "0..4294967295"; } sros-ext:immutable; description "Specifies the group value associated with this SRLG."; } leaf penalty-weight { type uint32 { range "0..65535"; } default "0"; description "Specifies the penalty weight associated with this SRLG group."; } } // list srlg-group } // container if-attribute container policy-accounting { description "Enter the policy-accounting context"; list policy-acct-template { key "name"; max-elements 1024; description "Enter the policy-acct-template list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy accounting template name"; } list source-class { key "index"; max-elements 255; description "Add a list entry for source-class"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:class-index; } description "Source-class index"; } } // list source-class list dest-class { status obsolete; key "index"; max-elements 255; description "Enter the dest-class list instance"; leaf index { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:class-index; } description "Dest-class index to use with the template"; } leaf policer { status obsolete; type uint32 { range "1..63"; } description "Policer index to use with the template"; } } // list dest-class list destination-class { key "index"; max-elements 255; description "Enter the destination-class list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:class-index; } description "Destination class index"; } leaf policer { type uint32 { range "1..63"; } description "Policer ID"; } } // list destination-class list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..63"; } } description "Policer ID"; } leaf peak-rate { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } default "max"; description "Peak rate of the policy accounting policer"; } leaf max-burst-size { type union { type int32 { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold to drop packets from PIR leaky bucket"; } } // list policer } // list policy-acct-template } // container policy-accounting container admin-tags { description "Enter the admin-tags context"; list admin-tag { key "tag"; max-elements 256; description "Add a list entry for admin-tag"; leaf tag { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "Specifies admin-tag."; } } // list admin-tag list route-admin-tag-policy { key "policy-name"; max-elements 2048; description "Enter the route-admin-tag-policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..64"; } } description "Policy name"; } list exclude { key "tag"; max-elements 8; description "Add a list entry for exclude"; leaf tag { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "Specifies admin-tag."; } } // list exclude list include { key "tag"; max-elements 8; description "Add a list entry for include"; leaf tag { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "Specifies admin-tag."; } } // list include } // list route-admin-tag-policy } // container admin-tags container route-next-hop-policy { description "Enter the route-next-hop-policy context"; list template { key "template-name"; description "Enter the template list instance"; leaf template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Template name"; } leaf description { type types-sros:description; description "Text description"; } leaf srlg { type boolean; default "false"; description "Select next hops from the SRLG"; } leaf nh-type { type enumeration { enum "ip" { value 1; } enum "tunnel" { value 2; } } default "ip"; description "Preferred next hop"; } leaf protection-type { type enumeration { enum "link" { value 1; } enum "node" { value 2; } } default "node"; description "Protection type used"; } list exclude-group { key "group-name"; max-elements 32; description "Add a list entry for exclude-group"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Group name out of which the next-hop link is selected"; } } // list exclude-group list include-group { key "group-name"; max-elements 32; description "Enter the include-group list instance"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Group name out of which the next-hop link is selected"; } leaf preference { type int32 { range "1..255"; } default "255"; description "Preference number for configured admin-group."; } } // list include-group } // list template } // container route-next-hop-policy } // container routing-options container saa { description "Enter the saa context"; list owner { key "owner-name test"; description "Enter the owner list instance"; leaf owner-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "An owner-name identifies a set of SAA tests."; } leaf test { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "An owner-name and a test-name identify an SAA test."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the SAA test"; } leaf description { type types-sros:description; description "Text description"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy used to record the results of an SAA test."; } leaf continuous { type boolean; default "false"; description "Repeat the test automatically while it is administratively enabled."; } leaf probe-history { type enumeration { enum "keep" { value 1; } enum "drop" { value 2; } enum "auto" { value 3; } } default "auto"; description "Keep or drop the per-probe test results after a test run completes. 'auto' allows SROS to decide."; } list jitter-event { key "direction threshold-type"; description "Enter the jitter-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-oam:saa-threshold-direction; } description "Inbound, outbound, or round trip packet flow."; } leaf threshold-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "rising" { value 1; } enum "falling" { value 2; } } } description "Rising or falling threshold."; } leaf threshold { type uint32 { range "0..2147483647"; } units "microseconds"; description "Rising or falling threshold (in microseconds) for jitter."; } } // list jitter-event list latency-event { key "direction threshold-type"; description "Enter the latency-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-oam:saa-threshold-direction; } description "Inbound, outbound, or round trip packet flow."; } leaf threshold-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "rising" { value 1; } enum "falling" { value 2; } } } description "Rising or falling threshold."; } leaf threshold { type uint32 { range "0..2147483647"; } units "microseconds"; description "Rising or falling threshold (in microseconds) for packet latency."; } } // list latency-event list loss-event { key "direction threshold-type"; description "Enter the loss-event list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-oam:saa-threshold-direction; } description "Inbound, outbound, or round trip packet flow."; } leaf threshold-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "rising" { value 1; } enum "falling" { value 2; } } } description "Rising or falling threshold."; } leaf threshold { type uint32 { range "0..2147483647"; } units "packets"; description "Rising or falling threshold for packet loss."; } } // list loss-event container type { description "Enter the type context"; choice saa-types { case saa-icmp-ping { container icmp-ping { presence "Enter the 'icmp-ping' context"; description "Enable the icmp-ping context"; leaf destination-address { type union { type types-sros:ip-address; type types-sros:string-not-all-spaces { length "1..128"; } } description "IP address or DNS name to be pinged."; } leaf count { type uint32 { range "1..100000"; } units "packets"; default "5"; description "Number of ICMP Echo Request packet(s) to send."; } leaf do-not-fragment { type boolean; default "false"; description "Do not allow the ICMP Echo Request packet(s) to be fragmented (valid for IPv4 only)."; } leaf interval { type union { type uint32 { range "1..10000"; } type decimal64 { range "0.01..100.00"; fraction-digits 2; } } units "seconds"; default "1"; description "Interval (in seconds) between ICMP Echo Request packets sent."; } leaf pattern { type types-oam:padding-pattern; default "sequential"; description "Two byte value used to pad the ICMP Echo Request packet(s). 'sequential' indicates bytes increasing by one."; } leaf router-instance { type string; default "Base"; description "Router used for the test ('Base', 'management', or a VPRN service name)."; } leaf size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Number of bytes in the combined ICMP Header (8 bytes) and ICMP Payload (variable size) of the ICMP Echo Request packet(s)."; } leaf source-address { type types-sros:ip-address; description "Source IP address to be loaded into the IP header of the ICMP Echo Request packet(s). Default: a system-selected address."; } leaf timeout { type uint32 { range "1..10"; } units "seconds"; default "5"; description "Maximum time (in seconds) to wait for ICMP Echo Reply packet(s). The timer is started when the last ICMP Echo Request is sent."; } leaf ttl { type uint32 { range "1..128"; } default "64"; description "Time To Live value (IPv4) or Hop Limit value (IPv6) to be loaded into the IP header of the ICMP Echo Request packet(s)."; } choice saa-icmp-ping-routing { default "case-bypass-routing"; case case-bypass-routing { leaf bypass-routing { type boolean; default "false"; description "Bypass the routing table when sending to a host on a directly attached network."; } } case case-interface { leaf interface { type types-sros:interface-name; description "Sending interface for the ICMP Echo Request packet(s)."; } } case case-next-hop-address { leaf next-hop-address { type types-sros:ip-address; description "Next hop IP address used when sending ICMP Echo Request packet(s)."; } } } container qos { description "Enter the qos context"; leaf fc { type types-sros:fc-name; default "nc"; description "Forwarding Class for the transmitted ICMP Echo Request packet(s)."; } leaf tos { type uint32 { range "0..255"; } default "0"; description "Type of Service value to be loaded into the DSCP and ECN fields of the IP header of the ICMP Echo Request packet(s)."; } } // container qos } // container icmp-ping } } } // container type } // list owner } // container saa container satellite { description "Enter the satellite context"; container file-transfer { description "Enter the file-transfer context"; leaf ftp { type boolean; default "true"; description "Whether or not FTP will be enabled for file transfer to/from satellites for the purposes of management"; } leaf scp { type boolean; default "false"; description "Whether or not SCP will be enabled for file transfer to/from satellites for the purposes of management"; } } // container file-transfer list port-template { key "template-name"; description "Enter the port-template list instance"; leaf template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Template name of the port template."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Admin state of the port template."; } leaf sat-type { type types-chassis:sat-type; sros-ext:immutable; description "The satellite type for the port template to use."; } list port { key "sat-phys-port-id"; description "Enter the port list instance"; leaf sat-phys-port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string; } description "Physical satellite port identifier."; } leaf role { type enumeration { enum "none" { value 0; } enum "uplink" { value 1; } enum "client" { value 2; } } sros-ext:immutable; description "Role of the physical satellite port."; } leaf uplink { type string; sros-ext:immutable; description "Uplink of the physical satellite port."; } } // list port } // list port-template list ethernet-satellite { key "satellite-id"; description "Enter the ethernet-satellite list instance"; leaf satellite-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..20"; } } description "The unique index identifying this satellite"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "The MAC address of the satellite."; } leaf sat-type { type types-chassis:sat-type; sros-ext:immutable; description "The satellite provisioned type."; } leaf software-repository { type types-sros:named-item; description "The software repository used for the satellite."; } leaf sync-e { type boolean; default "false"; description "Whether SyncE is enabled or not on the satellite."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the satellite."; } leaf-list feature { type enumeration { enum "local-forward" { value 0; } enum "ptp-tc" { value 1; } } max-elements 2; description "The feature(s) to be enabled on the satellite."; } leaf port-template { type types-sros:named-item; sros-ext:immutable; description "Port template name"; } leaf ptp-tc { type boolean; default "false"; description "Whether PTP transparent clock is enabled or not on the satellite."; } leaf client-down-delay { type int32 { range "0..1800"; } description "This command sets the delay between the last available uplink becoming unavailable and the disabling of the associated ethernet satellite client ports."; } leaf console-access { type types-sros:admin-state; default "disable"; description "Satellite console interface access"; } list port-map { key "client-port-id"; description "Enter the port-map list instance"; leaf client-port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port; } description "The client port to uplink map."; } leaf primary { type types-sros:port; description "The primary uplink for the port map."; } leaf secondary { type types-sros:port; description "The secondary uplink for the port map."; } } // list port-map } // list ethernet-satellite list port-topology { key "local-port-id"; description "Enter the port-topology list instance"; leaf local-port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port; } description "Local port identifier."; } leaf far-end-port-id { type types-sros:port; sros-ext:immutable; description "Far end port identifier."; } } // list port-topology } // container satellite container service { description "Enter the service context"; container sdp-group { description "Enter the sdp-group context"; list group-name { key "group-name"; description "Enter the group-name list instance"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service Distribution Point (SDP) Group name."; } leaf value { type uint32 { range "0..31"; } sros-ext:immutable; description "Value associated with SDP Group."; } } // list group-name } // container sdp-group list customer { key "customer-name"; description "Enter the customer list instance"; leaf customer-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:customer-name; } description "Customer name for a service"; } leaf customer-id { type types-services:customer-id; sros-ext:immutable; description "Customer ID"; } leaf description { type types-sros:description; description "Text description"; } leaf contact { type types-sros:description; description "Service customer contact information"; } leaf phone { type types-sros:description; description "Service customer telephone number information"; } list multi-service-site { key "multi-service-site-name"; description "Enter the multi-service-site list instance"; leaf multi-service-site-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service customer multi-service site name"; } leaf description { type types-sros:description; description "Text description"; } container assignment { description "Enter the assignment context"; choice assignment { case port { leaf port { type types-sros:port-named; description "Port for this binding."; } } case card { leaf card { type uint32 { range "1..20"; } description "Card for this binding."; } } case fpe { leaf fpe { type uint32 { range "1..64"; } description "Multi-service-site assignment to the FPE object"; } } } } // container assignment container ingress { description "Enter the ingress context"; leaf policer-control-policy { type types-sros:named-item; description "Policer control policy"; } container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Specify a scheduler-policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Multi-service site ingress scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Administrative PIR."; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Administrative CIR."; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container ingress container egress { description "Enter the egress context"; leaf policer-control-policy { type types-sros:named-item; description "Policer control policy"; } container agg-rate { description "Enter the agg-rate context"; leaf rate { type types-services:agg-rate-rate; description "Rate limit"; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } } // container agg-rate container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Specify a scheduler-policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Multi-service site egress scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Administrative PIR."; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Administrative CIR."; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container egress } // list multi-service-site } // list customer container mrp { description "Enter the mrp context"; list policy { key "policy-name"; description "Enter the policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Specify the policy name associated with the MRP"; } leaf description { type types-sros:description; description "Specify a description about the policy associated with the MRP"; } leaf scope { type types-services:item-scope; default "template"; description "Specify the scope of the mrp-policy definition"; } leaf default-action { type types-services:mrp-policy-default-action; default "allow"; description "Specify the action to take for packets that do no match any mrp-policy entries"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:entry-id; } description "Sepcify an id for the MRP policy entry"; } leaf action { type types-services:mrp-policy-action; description "Specify the action to take for packets that match this mrp-policy entry"; } leaf description { type types-sros:description; description "Specify a description about the entry associated with the mrp-policy"; } container match { description "Enter the match context"; list isid { key "value"; description "Enter the isid list instance"; leaf value { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:svc-isid; } description "Specify the lowest value of service instance identifier for this service that matches this entry"; } leaf higher-value { type types-sros:svc-isid; description "Specify the highest value of service instance identifier for this service that matches this entry"; } } // list isid } // container match } // list entry } // list policy } // container mrp list oper-group { key "name"; max-elements 16384; description "Enter the oper-group list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service operational group name"; } container hold-time { description "Enter the hold-time context"; leaf down { type uint32 { range "1..3600"; } units "seconds"; description "Oper group hold down time"; } leaf up { type uint32 { range "0..3600"; } units "seconds"; default "4"; description "Oper group hold up time"; } } // container hold-time container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf router-instance { type string; sros-ext:immutable; description "Routing context used for route lookup."; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Destination interface name for BFD"; } leaf dest-ip { type types-sros:ipv4-unicast-address; sros-ext:immutable; description "Destination address for BFD"; } } // container bfd-liveness } // list oper-group container pbb { description "Enter the pbb context"; container source-bmac { description "Enter the source-bmac context"; leaf address { type types-sros:mac-unicast-address-no-zero; description "Source B-VPLS MAC address to use with PBB"; } leaf evpn-etree-leaf-address { type types-sros:mac-unicast-address-no-zero; description "Source Backbone VPLS MAC address to use with Provider Backbone Bridging (PBB)"; } } // container source-bmac list mac { key "name"; description "Enter the mac list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "MAC address name"; } leaf address { type types-sros:mac-unicast-address-no-zero; description "IEEE address for the MAC name"; } } // list mac container mac-notification { description "Enter the mac-notification context"; leaf interval { type uint32 { range "1..100"; } units "deciseconds"; default "1"; description "Interval for MAC-notification messages"; } leaf count { type uint32 { range "1..10"; } default "3"; description "MAC notification messages count"; } } // container mac-notification } // container pbb container upnp { description "Enter the upnp context"; list policy { key "name"; max-elements 255; description "Enter the policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:external-named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf port { type types-sros:tcp-udp-port-non-zero; default "5000"; description "HTTP TCP port to which this UPnP IGD listens"; } leaf mapping-limit { type uint32 { range "1..256"; } default "256"; description "Maximum number of UPnP mappings per subscriber"; } leaf strict-mode { type boolean; default "false"; description "Allow changes to existing UPnP mapping only from same UPnP client"; } } // list policy } // container upnp container proxy-arp-nd { description "Enter the proxy-arp-nd context"; container mac-list { description "Enter the mac-list context"; list list { key "list-name"; description "Enter the list list instance"; leaf list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Specify name for mac list"; } list mac { key "address"; max-elements 10; description "Add a list entry for mac"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address-no-zero; } description "MAC address to be added to the list"; } } // list mac } // list list } // container mac-list } // container proxy-arp-nd list pw-template { key "pw-template-name"; max-elements 2048; description "Enter the pw-template list instance"; leaf pw-template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:pw-template-name; } description "PW template name"; } leaf pw-template-id { type types-services:pw-template-id; sros-ext:immutable; description "PW Template Id"; } leaf provisioned-sdp { type types-services:provisioned-sdp; sros-ext:immutable; description "Provisioned SDP type"; } leaf allow-fragmentation { type boolean; default "false"; description "Whether to allow gre encapsulated packets to be sent without setting the DF bit."; } leaf auto-gre-sdp { type boolean; sros-ext:immutable; default "false"; description "Use a GRE tunnel to automatically create an SDP"; } leaf vc-type { type types-services:pw-template-sdp-bind-vc-type; default "ether"; description "Type of virtual circuit associated with the SDP bind."; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf vlan-vc-tag { type types-services:vlan-vc-tag; description "VLAN VC tag"; } leaf force-vc-forwarding { type enumeration { enum "vlan" { value 1; } enum "qinq-c-tag-c-tag" { value 2; } enum "qinq-s-tag-c-tag" { value 3; } } description "VC forwarding action"; } leaf control-word { type boolean; default "false"; description "Enable/Disable the use of ControlWord"; } leaf block-on-peer-fault { type boolean; default "false"; description "Enable block traffic on peer fault"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "Hash label capability that is signaled to the remote PE"; } } // container hash-label } } container split-horizon-group { description "Enter the split-horizon-group context"; leaf name { type types-sros:named-item; description "Specify name of the split-horizon group"; } leaf description { type types-sros:description; description "Text description"; } container fdb { description "Enter the fdb context"; container saps { description "Enter the saps context"; leaf auto-learn-mac-protect { type boolean; default "false"; description "Enable automatic update of MAC protect list"; } leaf protected-src-mac-violation-action { type types-services:sap-protected-src-mac-violation-action; description "Action for protected source MAC restriction"; } leaf discard-unprotected-dest-mac { type boolean; default "false"; description "Enable/disable unprotected dest MAC restriction"; } } // container saps } // container fdb } // container split-horizon-group container ingress { description "Enter the ingress context"; container filter { description "Enter the filter context"; leaf mac { type types-sros:named-item-64; description "MAC filter policy name"; } leaf ip { type types-sros:named-item-64; description "IPv4 filter policy name"; } leaf ipv6 { type types-sros:named-item-64; description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-sros:named-item-64; description "Network policy identifier"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "FP redirect group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance for FP ingress queue group"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container igmp-snooping { description "Enter the igmp-snooping context"; leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf import-policy { type types-sros:named-item; description "Import policy that filters IGMP packets"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf maximum-number-groups { type uint32 { range "1..1000"; } description "Maximum multicast groups"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP version"; } } // container igmp-snooping container stp { description "Enter the stp context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of STP"; } leaf auto-edge { type boolean; default "true"; description "Enable/disable automatic detection of edge-port."; } leaf edge-port { type boolean; default "false"; description "Configure as edge-port."; } leaf link-type { type types-services:stp-link-type; default "pt-pt"; description "Configure STP link-type"; } leaf path-cost { type types-services:stp-path-cost; default "10"; description "Configure path-cost"; } leaf priority { type int32 { range "0..255"; } default "128"; description "Configure STP priority"; } leaf root-guard { type boolean; default "false"; description "Enable/disable STP root-guard"; } } // container stp container l2pt { description "Enter the l2pt context"; container termination { presence "Enter the 'termination' context"; description "Enable the termination context"; container protocols { description "Enter the protocols context"; leaf stp { type boolean; default "true"; description "Enable/disable spanning tree protocols stp/mstp/pvst/rstp."; } leaf cdp { type boolean; default "false"; description "Enable Cisco discovery protocol"; } leaf vtp { type boolean; default "false"; description "Enable/disable virtual trunk protocol."; } leaf dtp { type boolean; default "false"; description "Enable dynamic trunking protocol"; } leaf pagp { type boolean; default "false"; description "Enable/disable port aggregation protocol."; } leaf udld { type boolean; default "false"; description "Enable/disable unidirectional link detection."; } } // container protocols } // container termination } // container l2pt container encryption-keygroup { description "Enter the encryption-keygroup context"; leaf inbound { type types-services:keygroup-id; description "Keygroup identifier in the inbound direction"; } leaf outbound { type types-services:keygroup-id; description "Keygroup identifier in the outbound direction"; } } // container encryption-keygroup container fdb { description "Enter the fdb context"; leaf discard-unknown-source { type boolean; default "false"; description "Discard frames with unknown source"; } leaf limit-mac-move { type types-services:vpls-limit-mac-move; default "blockable"; description "MAC move limit"; } leaf mac-pinning { type boolean; default "false"; description "Enable MAC address pinning on this spoke SDP"; } leaf maximum-mac-addresses { type uint32 { range "1..511999"; } description "Maximum number of MAC entries in the FDB"; } leaf auto-learn-mac-protect { type boolean; default "false"; description "Enable automatic update of MAC protect list"; } leaf auto-learn-mac-protect-exclude-list { type types-sros:named-item; description "Name of the MAC protect exclusion list"; } leaf protected-src-mac-violation-action { type types-services:sdp-protected-src-mac-violation-action; description "Action for protected source MAC restriction"; } container mac-learning { description "Enter the mac-learning context"; leaf learning { type boolean; default "true"; description "Enable learning of new MAC addresses"; } leaf aging { type boolean; default "true"; description "Enable aging of MAC addresses"; } } // container mac-learning } // container fdb container egress { description "Enter the egress context"; container filter { description "Enter the filter context"; leaf mac { type types-sros:named-item-64; description "MAC filter policy name"; } leaf ip { type types-sros:named-item-64; description "IPv4 filter policy name"; } leaf ipv6 { type types-sros:named-item-64; description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-sros:named-item-64; description "Network policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Port redirect group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance for FP ingress queue group"; } } // container port-redirect-group } // container network } // container qos container mfib-allowed-mda-destinations { description "Enter the mfib-allowed-mda-destinations context"; list mda { key "mda-id"; description "Add a list entry for mda"; leaf mda-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-isa:slot-mda; } description "MFIB allowed MDA destination"; } } // list mda } // container mfib-allowed-mda-destinations } // container egress list sdp-include { key "group-name"; description "Add a list entry for sdp-include"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service Distribution Point (SDP) SDP Group Name."; } } // list sdp-include list sdp-exclude { key "group-name"; description "Add a list entry for sdp-exclude"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service Distribution Point (SDP) SDP Group Name."; } } // list sdp-exclude } // list pw-template container system { description "Enter the system context"; leaf extended-default-qinq-sap-lookup { type boolean; description "Control the forwarding of the packets"; } leaf vpn-gre-source-ip { type types-sros:ipv4-unicast-address; description "VPN GRE source ip-address"; } container pw-port-list { description "Enter the pw-port-list context"; list port { key "port-id"; description "Add a list entry for port"; leaf port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port; } description "The identifier which uniquely identifies the port."; } } // list port } // container pw-port-list container bgp-auto-rd-range { description "Enter the bgp-auto-rd-range context"; leaf ip-address { type types-sros:ipv4-address; description "IP address used for selecting route-distinguisher."; } container community-value { description "Enter the community-value context"; leaf start { type int32 { range "1..65535"; } description "Start of BGP route-distinguisher community value."; } leaf end { type int32 { range "1..65535"; } description "End of BGP route-distinguisher community value."; } } // container community-value } // container bgp-auto-rd-range container fdb { description "Enter the fdb context"; leaf table-size { type uint32 { range "4095..2047999"; } description "Maximum FDB entries in the system"; } } // container fdb container vxlan { description "Enter the vxlan context"; container assisted-replication { description "Enter the assisted-replication context"; leaf ip-address { type types-sros:ipv4-unicast-address; description "VXLAN assisted replication address"; } } // container assisted-replication list tunnel-termination { key "ip-address"; description "Enter the tunnel-termination list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "Non system IP address to terminate the VXLAN"; } leaf fpe-id { type uint32 { range "1..64"; } sros-ext:immutable; description "FPE id for this entry"; } } // list tunnel-termination } // container vxlan container gre-eth-bridged { description "Enter the gre-eth-bridged context"; list tunnel-termination { key "ip-address"; description "Enter the tunnel-termination list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "Non system IP address to terminate the GRE tunnel"; } leaf fpe-id { type uint32 { range "1..64"; } sros-ext:immutable; description "FPE ID"; } } // list tunnel-termination } // container gre-eth-bridged container bgp { description "Enter the bgp context"; container evpn { description "Enter the evpn context"; leaf etree-leaf-label { type boolean; default "false"; description "E-Tree leaf label for PE"; } leaf route-distinguisher { type types-services:vpn-route-distinguisher; description "Route distinguisher for ES routes"; } leaf ingress-replication-bum-label-block { type types-sros:named-item-64; description "Reserved label block name for BUM traffic"; } leaf multicast-leave-sync-propagation { type int32 { range "0..300"; } units "seconds"; default "5"; description "Multicast leave group synchronization delay"; } list ethernet-segment { key "ethernet-segment-name"; max-elements 4095; description "Enter the ethernet-segment list instance"; leaf ethernet-segment-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Specify name for Ethernet segment"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Ethernet segment instance"; } leaf type { type enumeration { enum "none" { value 1; } enum "virtual" { value 2; } } sros-ext:immutable; default "none"; description "Type of the ethernet segment."; } leaf esi { type types-services:ethernet-segment-id-mac-based; description "Ethernet segment identifier"; } leaf orig-ip { type types-sros:ip-unicast-address; description "Specifies the ES route's originating IP address"; } leaf route-next-hop { type types-sros:ip-unicast-address; description "Specifies the next-hop IP for ES and AD per-ES routes"; } leaf multi-homing-mode { type enumeration { enum "none" { value 0; } enum "single-active" { value 1; } enum "single-active-no-esi-label" { value 2; } enum "all-active" { value 3; } } default "none"; description "Multi-homing mode of the Ethernet segment"; } leaf oper-group { type types-sros:named-item; description "Operational-Group identifier."; } container df-election { description "Enter the df-election context"; leaf es-activation-timer { type int32 { range "0..100"; } units "seconds"; description "Activation timer per Ethernet segment"; } leaf service-carving-mode { type enumeration { enum "auto" { value 1; } enum "manual" { value 2; } enum "off" { value 3; } } default "auto"; description "Mode of service carving enabled per EVPN associated with this Ethernet segment entry"; } container manual { description "Enter the manual context"; list evi { key "start"; description "Enter the evi list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65535"; } } description "Starting value of the EVI range associated with service-carving of the associated ethernet segment"; } leaf end { type uint32 { range "1..65535"; } description "Ending value of the EVI range associated with service-carving of the associated ethernet segment"; } } // list evi list isid { key "start"; description "Enter the isid list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:svc-isid-non-zero; } description "Starting value of the ISID range associated with service-carving of the associated ethernet segment"; } leaf end { type types-sros:svc-isid-non-zero; description "Ending value of the ISID range associated with service-carving of the associated ethernet segment"; } } // list isid container preference { presence "Enter the 'preference' context"; description "Enable the preference context"; leaf mode { type enumeration { enum "revertive" { value 1; } enum "non-revertive" { value 2; } } sros-ext:immutable; default "revertive"; description "Method used to elect the DF"; } leaf value { type uint32 { range "0..65535"; } default "32767"; description "Preference that is used to elect the designated forwarder"; } } // container preference } // container manual } // container df-election container association { description "Enter the association context"; choice object { description "Object being multi homed with this Ethernet segment"; case port { list port { key "port-id"; max-elements 1; description "Enter the port list instance"; leaf port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port; } description "Port multi-homed with this Ethernet segment entry"; } container virtual-ranges { description "Enter the virtual-ranges context"; container dot1q { description "Enter the dot1q context"; list q-tag { key "start"; max-elements 8; description "Enter the q-tag list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap; } description "Starting value of the dot1q range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; description "Ending value of the dot1q range associated with a virtual ethernet segment"; } } // list q-tag } // container dot1q container qinq { description "Enter the qinq context"; list s-tag-c-tag { key "s-tag c-tag-start"; max-elements 8; description "Enter the s-tag-c-tag list instance"; leaf s-tag { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap-with-null; } description "Starting value of the qinq s-tag range associated with a virtual ethernet segment"; } leaf c-tag-start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap-with-null; } description "Starting value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } leaf c-tag-end { type types-services:ethernet-segment-vlan-range-encap-with-null; description "Ending value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } } // list s-tag-c-tag list s-tag { key "start"; max-elements 8; description "Enter the s-tag list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap; } description "Starting value of the qinq stag range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; description "Ending value of the qinq stag range associated with a virtual ethernet segment"; } } // list s-tag } // container qinq } // container virtual-ranges } // list port } case lag { list lag { key "lag-name"; max-elements 1; description "Enter the lag list instance"; leaf lag-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:lag-interface; } description "LAG multi-homed with the Ethernet segment entry"; } container virtual-ranges { description "Enter the virtual-ranges context"; container dot1q { description "Enter the dot1q context"; list q-tag { key "start"; max-elements 8; description "Enter the q-tag list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap; } description "Starting value of the dot1q range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; description "Ending value of the dot1q range associated with a virtual ethernet segment"; } } // list q-tag } // container dot1q container qinq { description "Enter the qinq context"; list s-tag-c-tag { key "s-tag c-tag-start"; max-elements 8; description "Enter the s-tag-c-tag list instance"; leaf s-tag { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap-with-null; } description "Starting value of the qinq s-tag range associated with a virtual ethernet segment"; } leaf c-tag-start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap-with-null; } description "Starting value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } leaf c-tag-end { type types-services:ethernet-segment-vlan-range-encap-with-null; description "Ending value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } } // list s-tag-c-tag list s-tag { key "start"; max-elements 8; description "Enter the s-tag list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap; } description "Starting value of the qinq stag range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; description "Ending value of the qinq stag range associated with a virtual ethernet segment"; } } // list s-tag } // container qinq } // container virtual-ranges } // list lag } case sdp { list sdp { key "sdp-id"; max-elements 1; description "Enter the sdp list instance"; leaf sdp-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-id; } description "Sdp multi-homed with this Ethernet segment entry"; } container virtual-ranges { description "Enter the virtual-ranges context"; list vc-id { key "start"; max-elements 8; description "Enter the vc-id list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:vc-id; } description "Starting value of the vc-id range associated with a virtual ethernet segment"; } leaf end { type types-services:vc-id; description "Ending value of the vc-id range associated with a virtual ethernet segment"; } } // list vc-id } // container virtual-ranges } // list sdp } case network-interconnect-vxlan { list network-interconnect-vxlan { key "network-interconnect-vxlan-id"; max-elements 1; description "Enter the network-interconnect-vxlan list instance"; leaf network-interconnect-vxlan-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1"; } } description "Vxlan instance id multi-homed with this Ethernet segment entry."; } container virtual-ranges { description "Enter the virtual-ranges context"; list service-id { key "start"; max-elements 8; description "Enter the service-id list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:external-service-id; } description "Starting value of the service id range associated with a virtual ethernet segment"; } leaf end { type types-services:external-service-id; description "Ending value of the service id range associated with a virtual ethernet segment"; } } // list service-id } // container virtual-ranges } // list network-interconnect-vxlan } case pw-port { list pw-port { key "pw-port-id"; max-elements 1; description "Enter the pw-port list instance"; leaf pw-port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:pw-port; } description "Pw-port multi-homed with this Ethernet segment entry"; } container virtual-ranges { description "Enter the virtual-ranges context"; container dot1q { description "Enter the dot1q context"; list q-tag { key "start"; max-elements 8; description "Enter the q-tag list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap; } description "Starting value of the dot1q range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; description "Ending value of the dot1q range associated with a virtual ethernet segment"; } } // list q-tag } // container dot1q container qinq { description "Enter the qinq context"; list s-tag-c-tag { key "s-tag c-tag-start"; max-elements 8; description "Enter the s-tag-c-tag list instance"; leaf s-tag { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap-with-null; } description "Starting value of the qinq s-tag range associated with a virtual ethernet segment"; } leaf c-tag-start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap-with-null; } description "Starting value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } leaf c-tag-end { type types-services:ethernet-segment-vlan-range-encap-with-null; description "Ending value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } } // list s-tag-c-tag list s-tag { key "start"; max-elements 8; description "Enter the s-tag list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:ethernet-segment-vlan-range-encap; } description "Starting value of the qinq stag range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; description "Ending value of the qinq stag range associated with a virtual ethernet segment"; } } // list s-tag } // container qinq } // container virtual-ranges } // list pw-port } } } // container association container pbb { description "Enter the pbb context"; leaf source-bmac-lsb { type types-services:bmac-lsb-no-zero; description "16 least significant bits (lsb) which when combined with the 32 most significant bits of the PBB source-bmac in the associated service, forms the virtual backbone MAC address"; } leaf es-bmac-table-size { type uint32 { range "1..511999"; } default "8"; description "Size of virtual backbone mac table for this ethernet segment"; } } // container pbb } // list ethernet-segment container ad-per-es-route { description "Enter the ad-per-es-route context"; leaf route-target-type { type enumeration { enum "evi-route-target" { value 1; } enum "evi-route-target-set" { value 2; } } default "evi-route-target"; description "Method for the AD per-ES routes advertisement"; } leaf route-distinguisher-ip-address { type types-sros:ipv4-address; description "IP address for route distinguisher for EVPN AD-ES routes"; } } // container ad-per-es-route container ip-prefix-routes { description "Enter the ip-prefix-routes context"; leaf iff-attribute-uniform-propagation { type boolean; default "false"; description "Enable uniform propagation of BGP attributes"; } leaf iff-bgp-path-selection { type boolean; default "false"; description "Enable BGP path selection for EVPN-IFF routes"; } } // container ip-prefix-routes } // container evpn } // container bgp } // container system list mac-list { key "name"; description "Enter the mac-list list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "MAC list name"; } leaf description { type types-sros:description; description "Text description"; } list mac { key "address"; description "Enter the mac list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type yang:mac-address; } description "MAC address"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "Mask for the MAC address"; } } // list mac } // list mac-list container md-auto-id { description "Enter the md-auto-id context"; container service-id-range { presence "Enter the 'service-id-range' context"; description "Enable the service-id-range context"; leaf start { type types-services:external-service-id; sros-ext:immutable; description "Lower value of the ID range, must be less than or equal to end value"; } leaf end { type types-services:external-service-id; sros-ext:immutable; description "Upper value of the ID range, must be greater than or equal to start value"; } } // container service-id-range container customer-id-range { presence "Enter the 'customer-id-range' context"; description "Enable the customer-id-range context"; leaf start { type types-services:customer-id { range "2..2147483647"; } sros-ext:immutable; description "Lower value of the ID range, must be less than or equal to end value"; } leaf end { type types-services:customer-id { range "2..2147483647"; } sros-ext:immutable; description "Upper value of the ID range, must be greater than or equal to start value"; } } // container customer-id-range container pw-template-id-range { presence "Enter the 'pw-template-id-range' context"; description "Enable the pw-template-id-range context"; leaf start { type types-services:pw-template-id { range "1..2147483647"; } sros-ext:immutable; description "Lower value of the ID range, must be less than or equal to end value"; } leaf end { type types-services:pw-template-id { range "1..2147483647"; } sros-ext:immutable; description "Upper value of the ID range, must be greater than or equal to start value"; } } // container pw-template-id-range } // container md-auto-id container template { description "Enter the template context"; list epipe-sap-template { key "name"; description "Enter the epipe-sap-template list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "SAP template name"; } container egress { description "Enter the egress context"; container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type types-qos:qos-policy-name; description "Sap-egress policy name applied to this SAP"; } } // container qos } // container egress container ingress { description "Enter the ingress context"; container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type types-qos:qos-policy-name; description "Sap-ingress policy name applied to this SAP"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } } // container qos } // container ingress } // list epipe-sap-template } // container template list cpipe { key "service-name"; description "Enter the cpipe list instance"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type types-services:customer-name; sros-ext:immutable; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf vpn-id { type types-services:vpn-id; sros-ext:immutable; description "VPN identifier for the service"; } leaf vc-type { type types-services:cpipe-vc-type; sros-ext:immutable; default "satop-e1"; description "Specify PIPE service type"; } leaf vc-switching { type boolean; sros-ext:immutable; default "false"; description "PW switching signaling to be used by the spokes in the service"; } leaf test { type boolean; sros-ext:immutable; default "false"; description "Designate as a test service"; } leaf service-mtu { type int32 { range "1..9194"; } default "1514"; description "MTU size"; } list endpoint { key "name"; max-elements 2; description "Enter the endpoint list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service endpoint name"; } leaf description { type types-sros:description; description "Text description"; } leaf revert-time { type types-services:revert-time; default "immediate"; description "Time to wait before reverting back to the primary spoke-sdp defined on this service endpoint"; } leaf hold-time-active { type types-services:hold-time-active; description "Time to hold the active state before entering standby when a local MC-LAG SAP goes down"; } leaf standby-signaling { type enumeration { enum "master" { value 1; } enum "slave" { value 2; } } description "Whether PW standby bit will be sent to T-LDP peer whenever spoke-SDPs of this endpoint are selected as standby."; } } // list endpoint list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy for SAP"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf endpoint { type types-sros:named-item; description "Name of the endpoint"; } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container overrides { description "Enter the overrides context"; container ip-criteria { description "Enter the ip-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Configure tag-id for IP-Criteria"; } } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv6 criteria"; } } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-queue-id; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos } // container ingress container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } container overrides { description "Enter the overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type types-sros:named-item; description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:sap-egress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate } // container egress container cem { description "Enter the cem context"; leaf rtp-header { type boolean; default "false"; description "Status whether RTP header to be used when packets are transmitted to the Packet Service Network"; } container packet { description "Enter the packet context"; leaf payload-size { type uint32 { range "16..2048"; } units "bytes"; description "The payload size (in bytes) of packets transmitted to the Packet Service Network (PSN) by the CEM SAP."; } leaf jitter-buffer { type uint32 { range "1..250"; } units "milliseconds"; description "The jitter buffer size in milliseconds (ms)."; } } // container packet container report-alarm { description "Enter the report-alarm context"; leaf stray-packets { type boolean; default "true"; description "Report alarm for stray-packets"; } leaf malformed-packets { type boolean; default "true"; description "Report alarm for malformed-packets"; } leaf packet-loss { type boolean; default "true"; description "Report alarm for packet-loss"; } leaf buffer-overrun { type boolean; default "true"; description "Report alarm for buffer-overrun"; } leaf buffer-underrun { type boolean; default "true"; description "Report alarm for buffer-underrun"; } leaf remote-packet-loss { type boolean; default "false"; description "Report alarm for remote-packet-loss"; } leaf remote-fault { type boolean; default "false"; description "Report alarm for remote-fault"; } leaf remote-rdi { type boolean; default "false"; description "Report alarm for remote-rdi indication"; } } // container report-alarm } // container cem } // list sap list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf control-word { type boolean; default "true"; description "Whether the use of the control-word is preferred or not. This bit is exchanged with LDP peer during pseudowire negotiation time."; } leaf bandwidth { type types-services:sdp-bind-bandwidth; units "kilobps"; default "0"; description "Bandwidth that is reserved for this SDP binding"; } leaf bfd-template { status obsolete; type types-sros:named-item; description "BFD template associated with SDP binding"; } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos } // container egress container endpoint { description "Enter the endpoint context"; leaf name { type types-sros:named-item; description "Name of endpoint to which this SDP bind is attached."; } leaf precedence { type types-services:sdp-precedence; default "4"; description "Precedence of this SDP bind when there are multiple SDP binds attached to one service endpoint"; } leaf icb { type boolean; default "false"; description "Bind SDP as type Inter-Chassis Backup (ICB)"; } } // container endpoint container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type types-sros:named-item; description "BFD template associated with the SDP binding"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd } // list spoke-sdp } // list cpipe list epipe { key "service-name"; description "Enter the epipe list instance"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type types-services:customer-name; sros-ext:immutable; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf vpn-id { type types-services:vpn-id; sros-ext:immutable; description "VPN identifier for the service"; } leaf vc-switching { type boolean; sros-ext:immutable; default "false"; description "PW switching signaling to be used by the spokes in the service"; } leaf test { type boolean; sros-ext:immutable; default "false"; description "Designate as a test service"; } leaf service-mtu { type int32 { range "1..9782"; } default "1514"; description "MTU size"; } leaf oper-group { type types-sros:named-item; description "Oper-group name"; } list bgp { key "bgp-instance"; description "Enter the bgp list instance"; leaf bgp-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1"; } } description "BGP instance"; } leaf route-distinguisher { type types-services:vpn-route-distinguisher-or-auto-rd; description "High-order 6 bytes that are used as string to compose VSI-ID for use in NLRI"; } leaf-list vsi-import { type types-sros:named-item-64; max-elements 5; ordered-by user; description "VSI import policies"; } leaf-list vsi-export { type types-sros:named-item-64; max-elements 5; ordered-by user; description "VSI export policies"; } container route-target { description "Enter the route-target context"; leaf export { type types-services:route-target; description "Extended community name for default import policy"; } leaf import { type types-services:route-target; description "Extended community name for default import policy"; } } // container route-target list pw-template-binding { key "pw-template-name"; max-elements 100; description "Enter the pw-template-binding list instance"; leaf pw-template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:pw-template-name; } description "PW template policy name"; } leaf bfd-template { type types-sros:named-item; description "BFD template name for PW-Template binding"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf-list import-rt { type types-services:route-target; max-elements 5; description "Import route-target communities"; } leaf endpoint { type types-sros:named-item; sros-ext:immutable; description "Endpoint name associated with the BGP PW template"; } } // list pw-template-binding } // list bgp container bgp-vpws { presence "Enter the 'bgp-vpws' context"; description "Enable the bgp-vpws context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the VPWS edge instance"; } container local-ve { description "Enter the local-ve context"; leaf name { type types-sros:named-item; description "VPWS edge name"; } leaf id { type types-services:site-id; description "Local VPWS edge ID"; } } // container local-ve list remote-ve { key "name"; max-elements 2; description "Enter the remote-ve list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "VPWS edge name"; } leaf id { type types-services:site-id; description "Remote VPWS edge ID"; } } // list remote-ve } // container bgp-vpws list endpoint { key "name"; max-elements 2; description "Enter the endpoint list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service endpoint name"; } leaf description { type types-sros:description; description "Text description"; } leaf revert-time { type types-services:revert-time; default "immediate"; description "Time to wait before reverting back to the primary spoke-sdp defined on this service endpoint"; } leaf hold-time-active { type types-services:hold-time-active; description "Time to hold the active state before entering standby when a local MC-LAG SAP goes down"; } leaf standby-signaling { type enumeration { enum "master" { value 1; } enum "slave" { value 2; } } description "PW standby bit that is sent to T-LDP peer when spoke-SDPs are selected as standby"; } } // list endpoint container eth-cfm { description "Enter the eth-cfm context"; } // container eth-cfm container load-balancing { description "Enter the load-balancing context"; leaf per-service-hashing { type boolean; default "false"; description "Service level hashing for Ethernet services"; } } // container load-balancing list nat-outside { key "nat-group"; description "Enter the nat-outside list instance"; leaf nat-group { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4"; } } description "NAT group"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Epipe as a NAT outside service"; } } // list nat-outside container pbb { description "Enter the pbb context"; leaf force-qtag-forwarding { type boolean; default "false"; description "Add an IEEE 802.1q tag after the Customer MAC address when the PBB header is built"; } container tunnel { presence "Enter the 'tunnel' context"; description "Enable the tunnel context"; leaf backbone-vpls-service-name { type types-services:service-name; sros-ext:immutable; description "Backbone VPLS service"; } leaf isid { type types-services:isid; sros-ext:immutable; description "Service instance ID"; } choice backbone-mac { case backbone-dest-mac { leaf backbone-dest-mac { type types-sros:mac-unicast-address-no-zero; description "Backbone Destination MAC address"; } } case backbone-dest-mac-name { leaf backbone-dest-mac-name { type types-sros:named-item; description "Name for backbone Destination MAC address"; } } } } // container tunnel } // container pbb list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf vlan-vc-tag { type types-services:vlan-vc-tag; description "SDP bind VC tag"; } leaf collect-stats { type boolean; default "false"; description "Allow agent to collect accounting statistics"; } leaf accounting-policy { type types-log:log-policy-id; description "Policy to collect accounting statistics"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf force-vc-forwarding { type enumeration { enum "vlan" { value 1; } enum "qinq-c-tag-c-tag" { value 2; } enum "qinq-s-tag-c-tag" { value 3; } } description "VC forwarding action"; } leaf bandwidth { type types-services:sdp-bind-bandwidth; units "kilobps"; default "0"; description "Bandwidth that is reserved for this SDP binding"; } leaf vc-type { type types-services:epipe-sdp-bind-vc-type; default "ether"; description "Type of virtual circuit (VC) associated with the SDP binding"; } leaf bfd-template { status obsolete; type types-sros:named-item; description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } choice oper-group-association { case oper-group { leaf oper-group { type types-sros:named-item; description "Operational group identifier"; } } case monitor-oper-group { leaf monitor-oper-group { type types-sros:named-item; description "Operational group identifier that affect the state of this SDP bind"; } } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos container l2tpv3 { description "Enter the l2tpv3 context"; container cookie { description "Enter the cookie context"; leaf cookie1 { type types-services:cookie-value; description "Value of cookie-1 for the tunnel"; } leaf cookie2 { type types-services:cookie-value; description "Value of cookie-1 for the tunnel"; } } // container cookie } // container l2tpv3 } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos container l2tpv3 { description "Enter the l2tpv3 context"; leaf cookie { type types-services:cookie-value; description "Cookie parameters"; } } // container l2tpv3 } // container egress container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list squelch-ingress-ctag-levels { type uint32 { range "0..7"; } max-elements 8; description "Squelch levels using additional VLAN C-Tag space"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf primary-vlan { type boolean; sros-ext:immutable; default "false"; description "MEP provisioned using MA primary VLAN ID"; } leaf direction { type types-eth-cfm:mp-direction; sros-ext:immutable; description "Direction the MEP faces"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container endpoint { description "Enter the endpoint context"; leaf name { type types-sros:named-item; description "Name of endpoint to which this SDP bind is attached"; } leaf precedence { type types-services:sdp-precedence; default "4"; description "Precedence of this SDP bind when there are multiple SDP binds attached to one service endpoint"; } leaf icb { type boolean; default "false"; description "Bind SDP as type Inter-Chassis Backup (ICB)"; } } // container endpoint container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } } } // container cpu-protection container pw-status { description "Enter the pw-status context"; leaf signaling { type boolean; default "true"; description "Allow SDP binding to support pseudowire status signaling"; } choice sdp-bind-pw-status { case block-on-peer-fault { leaf block-on-peer-fault { type boolean; default "false"; description "Block the user traffic on this SDP bind when peer PW status has fault bits set"; } } case standby-signaling-slave { leaf standby-signaling-slave { type boolean; default "false"; description "Block spoke transmission when the spoke receives standby status notification from peer"; } } } } // container pw-status container source-bmac { description "Enter the source-bmac context"; leaf use-sdp-bmac-lsb { type boolean; default "false"; description "Allow the spoke SDP to be part of a redundant pseudo-wire within PBB Epipe service"; } } // container source-bmac container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type types-sros:named-item; description "BFD template associated with the SDP binding"; } leaf failure-action { type types-services:sbind-bfd-fail-action; default "none"; description "VCCV BFD action taken on the SDP binding"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; description "Time to wait for BFD up status"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd } // list spoke-sdp list bgp-mh-site { key "site-name"; max-elements 1; description "Enter the bgp-mh-site list instance"; leaf site-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for the specific site"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the site"; } leaf id { type types-services:site-id; description "Site ID for the service"; } leaf sap { type types-sros:sap; description "SAP to be associated with this site"; } leaf boot-timer { type types-services:site-boot-timer; units "seconds"; description "Time that system waits after node reboot and before it runs DF election algorithm"; } leaf activation-timer { type types-services:site-activation-timer; units "seconds"; description "Time that the local sites are in standby status, waiting for BGP updates"; } leaf preference { type uint32 { range "1..65535"; } description "Preference value to advertise in the NLRI L2 extended community"; } leaf min-down-timer { type types-services:site-min-down-timer; units "seconds"; description "Minimum downtime for BGP multi-homing site after transition from up to down"; } } // list bgp-mh-site list sap { key "sap-id"; max-elements 2; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf cflowd { type boolean; default "false"; description "Enable Cflowd collection and analysis on this SAP"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy for SAP"; } leaf ignore-oper-down { type boolean; default "false"; description "Ignore operational down state of the SAP on SAP failure"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf endpoint { type types-sros:named-item; description "Name of the endpoint"; } choice oper-group-association { case oper-group { leaf oper-group { type types-sros:named-item; description "Operational group"; } } case monitor-oper-group { leaf monitor-oper-group { type types-sros:named-item; description "Monitor operational group"; } } } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Queue group instance"; } } // container fp-redirect-group container overrides { description "Enter the overrides context"; container ip-criteria { description "Enter the ip-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv4 criteria"; } } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv6 criteria"; } } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-queue-id; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qtag-manipulation { if-feature nokia-features:sros-qtag-manipulation; description "Enter the qtag-manipulation context"; choice tags { case push-dot1q-vlan { leaf push-dot1q-vlan { type types-services:qtag-manipulation-info; description "VLAN translation information"; } } case push-qinq-vlan { leaf s-tag { type int32 { range "0..4094"; } description "Outer ingress VLN translation for two service delimiting VLAN values"; } leaf c-tag { type int32 { range "0..4094"; } description "Inner ingress VLAN translation for two service delimiting VLAN values"; } } } } // container qtag-manipulation container vlan-manipulation { if-feature nokia-features:sros-vlan-manipulation; description "Enter the vlan-manipulation context"; leaf action { type types-services:vlan-manipulation-ingress-action-type; description "Action to manipulate the VLAN tag(s) of the packets."; } leaf outer-tag { type types-services:vlan-manipulate-ingress-vlan-type; default "null"; description "Outer VLAN tag to be applied."; } leaf inner-tag { type types-services:vlan-manipulate-ingress-vlan-type; default "null"; description "Inner VLAN tag to be applied in case of QinQ encapsulation."; } } // container vlan-manipulation container aggregate-policer { description "Enter the aggregate-policer context"; leaf rate { type types-qos:aggr-policer-rate; default "max"; description "Aggregate policer rate to be used in kbps"; } leaf burst { type types-qos:aggr-policer-burst; default "default"; description "Aggregate policer burst"; } leaf cir { type types-qos:aggr-policer-cir; description "Aggregate policer cir to be used in kbps"; } leaf cbs { type types-qos:aggr-policer-cbs; description "Aggregate policer cbs"; } } // container aggregate-policer } // container ingress container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port redirect queue group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of port queue group"; } } // container port-redirect-group container overrides { description "Enter the overrides context"; leaf hs-secondary-shaper { type types-sros:named-item; description "HS Secondary Shaper"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf secondary-shaper { status obsolete; type types-sros:named-item; description "Secondary shaper for the HSMDA queue"; } leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Packet byte offset for HSMDA queue"; } leaf wrr-policy { status obsolete; type types-sros:named-item; description "WRR policy for the HSMDA queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Egress HSMDA queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; description "Administrative PIR rate."; } leaf slope-policy { status obsolete; type types-sros:named-item; description "Name of the slope-policy which is used to override the default slope-policy for the named buffer pool."; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "Weight value for the HSMDA queue"; } } // list queue } // container hsmda-queues list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type types-sros:named-item; description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:sap-egress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hs-wrr-group-id; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Weight of scheduling class."; } choice rate-or-percent-rate { case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "Administrative PIR."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent."; } } } } // list hs-wrr-group } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Egress vlan-qos-policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Egress-remark-policy name"; } } // container egress-remark-policy } // container qos container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate container vlan-manipulation { if-feature nokia-features:sros-vlan-manipulation; description "Enter the vlan-manipulation context"; leaf action { type types-services:vlan-manipulation-egress-action-type; description "Action to manipulate the VLAN tag(s) of the packets."; } leaf tag { type types-services:vlan-manipulation-egress-vlan-type; default "null"; description "VLAN tag to be applied by action."; } } // container vlan-manipulation } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "Configure LAG link map profile."; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container l2tpv3-session { presence "Enter the 'l2tpv3-session' context"; description "Enable the l2tpv3-session context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the session for the service"; } leaf vc-id { type types-services:vc-id; description "VC identifier."; } container pseudo-wire { description "Enter the pseudo-wire context"; choice type { case ethernet { leaf ethernet { type empty; description "Ethernet type."; } } case ethernet-vlan-id { leaf ethernet-vlan-id { type int32 { range "0..4095"; } description "Ethernet VLAN identifier."; } } } } // container pseudo-wire container router { description "Enter the router context"; leaf group { type types-sros:named-item; description "Tunnel group name."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance hosting the l2tpv3 session."; } } // container router } // container l2tpv3-session container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list squelch-ingress-ctag-levels { type uint32 { range "0..7"; } max-elements 8; description "Squelch levels using additional VLAN C-Tag space"; } leaf ais { type boolean; default "false"; description "Generate AIS frames for the SAP based on a facility fault."; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf primary-vlan { type boolean; sros-ext:immutable; default "false"; description "MEP provisioned using MA primary VLAN ID"; } leaf direction { type types-eth-cfm:mp-direction; sros-ext:immutable; description "Direction the MEP faces"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container mc-ring { presence "Enter the 'mc-ring' context"; description "Enable the mc-ring context"; leaf ring-node { type types-sros:named-item; description "Name for the ring node associated with this SAP"; } } // container mc-ring container ethernet { description "Enter the ethernet context"; container llf { description "Enter the llf context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Link Loss Forwarding"; } } // container llf } // container ethernet } // list sap container vxlan { description "Enter the vxlan context"; leaf source-vtep { type types-sros:ip-unicast-address; description "Vxlan source virtual tunnel endpoint information"; } list instance { key "vxlan-instance"; max-elements 1; description "Enter the instance list instance"; leaf vxlan-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1"; } } description "VXLAN instance"; } leaf vni { type types-services:vxlan-vni; sros-ext:immutable; description "VNI of the VXLAN"; } container egress-vtep { description "Enter the egress-vtep context"; leaf ip-address { type types-sros:ip-unicast-address; description "VXLAN egress VTEP address"; } leaf oper-group { type types-sros:named-item; description "Operational group associated with egress VTEP address"; } } // container egress-vtep } // list instance } // container vxlan container bgp-evpn { presence "Enter the 'bgp-evpn' context"; description "Enable the bgp-evpn context"; leaf evi { type types-services:evi; description "EVPN ID"; } container local-ac { status obsolete; description "Enter the local-ac context"; leaf name { status obsolete; type types-sros:named-item; description "Attachment circuit name"; } leaf eth-tag { status obsolete; type types-services:bgp-evpn-ac-eth-tag; description "Ethernet tag of the attachment circuit"; } } // container local-ac container remote-ac { status obsolete; description "Enter the remote-ac context"; leaf name { status obsolete; type types-sros:named-item; description "Attachment circuit name"; } leaf eth-tag { status obsolete; type types-services:bgp-evpn-ac-eth-tag; description "Ethernet tag of the attachment circuit"; } } // container remote-ac list local-attachment-circuit { key "name"; max-elements 2; description "Enter the local-attachment-circuit list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Attachment circuit name"; } leaf endpoint { type types-sros:named-item; sros-ext:immutable; description "Endpoint name"; } leaf eth-tag { type types-services:bgp-evpn-ac-eth-tag; description "Ethernet tag of the attachment circuit"; } } // list local-attachment-circuit list remote-attachment-circuit { key "name"; max-elements 2; description "Enter the remote-attachment-circuit list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Attachment circuit name"; } leaf endpoint { type types-sros:named-item; sros-ext:immutable; description "Endpoint name"; } leaf eth-tag { type types-services:bgp-evpn-ac-eth-tag; description "Ethernet tag of the attachment circuit"; } } // list remote-attachment-circuit list vxlan { key "bgp-instance"; description "Enter the vxlan list instance"; leaf bgp-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..2"; } } description "BGP instance"; } leaf vxlan-instance { type uint32 { range "1"; } sros-ext:immutable; description "VXLAN instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP EVPN VXLAN"; } leaf send-tunnel-encap { type boolean; default "true"; description "Send VXLAN value in encapsulation extended community"; } leaf ecmp { type types-services:ecmp-value; default "1"; description "Maximum ECMP routes information"; } leaf default-route-tag { type types-services:one-byte-value; description "Default route tag"; } } // list vxlan list mpls { key "bgp-instance"; description "Enter the mpls list instance"; leaf bgp-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..2"; } } description "BGP instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP EVPN MPLS"; } leaf control-word { type boolean; default "false"; description "Enable/disable setting the CW bit in the label message."; } leaf ecmp { type types-services:ecmp-value; default "1"; description "Maximum ECMP routes information"; } leaf entropy-label { type boolean; default "false"; description "Enable/disable use of entropy-label."; } leaf default-route-tag { type types-services:one-byte-value; description "Default route tag"; } leaf force-vc-forwarding { type enumeration { enum "vlan" { value 1; } enum "qinq-c-tag-c-tag" { value 2; } enum "qinq-s-tag-c-tag" { value 3; } } description "VC forwarding action"; } leaf oper-group { type types-sros:named-item; description "Operational group identifier"; } container send-tunnel-encap { description "Enter the send-tunnel-encap context"; leaf mpls { type boolean; default "true"; description "Enable MPLS encapsulation"; } leaf mpls-over-udp { type boolean; default "false"; description "Enable MPLS over UDP encapsulation"; } } // container send-tunnel-encap container auto-bind-tunnel { description "Enter the auto-bind-tunnel context"; leaf resolution { type types-services:resolve-status; default "none"; description "Resolution method for tunnel selection"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Enable/disable enforcement of strict tunnel tagging"; } leaf ecmp { type types-router:mpls-ecmp; default "1"; description "Maximum ECMP routes information"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable flexible algorithm fallback"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; default "false"; description "Use BGP tunneling for next-hop resolution"; } leaf ldp { type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // container auto-bind-tunnel container route-next-hop { description "Enter the route-next-hop context"; choice tag { default "ipv4"; case ipv4 { leaf system-ipv4 { type empty; description "Use system IPv4 address"; } } case ipv6 { leaf system-ipv6 { type empty; description "Use system IPv6 address"; } } case explicit { leaf ip-address { type types-sros:ip-address; description "Use specific unicast IPv4/IPv6 address"; } } } } // container route-next-hop container endpoint { status obsolete; description "Enter the endpoint context"; leaf name { status obsolete; type types-sros:named-item; sros-ext:immutable; description "Name of endpoint the bgp-evpn mpls instance is associated with"; } } // container endpoint } // list mpls } // container bgp-evpn } // list epipe list ies { key "service-name"; description "Enter the ies list instance"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type types-services:customer-name; sros-ext:immutable; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf vpn-id { type types-services:vpn-id; sros-ext:immutable; description "VPN identifier for the service"; } container eth-cfm { description "Enter the eth-cfm context"; } // container eth-cfm list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Name of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the interface"; } leaf radius-auth-policy { type types-sros:named-item; description "Authentication policy"; } leaf tunnel { type boolean; sros-ext:immutable; default "false"; description "Enable/disable tunnel interface"; } leaf static-tunnel-redundant-nexthop { type types-sros:ipv4-unicast-address; description "IPv4 address of the redundant next-hop for static ISA tunnels on this interface"; } leaf dynamic-tunnel-redundant-nexthop { type types-sros:ipv4-unicast-address; description "IPv4 address of the redundant next-hop for dynamic ISA tunnels on this interface"; } leaf loopback { type boolean; default "false"; description "Use interface as a loopback interface"; } leaf monitor-oper-group { type types-sros:named-item; description "Operational group to monitor"; } leaf shcv-policy-ipv4 { type types-sros:external-named-item; description "Host connectivity IPv4 policy"; } leaf cpu-protection { type types-services:cpm-prot-policy-id; description "CPU protection policy"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf tos-marking-state { type types-router:tos-marking-state; default "untrusted"; description "TOS marking state"; } leaf multicast-network-domain { type types-sros:named-item; description "Network domain name"; } leaf ingress-stats { type boolean; default "false"; description "Collect ingress statistics"; } leaf mac-accounting { type boolean; default "false"; description "Enable MAC accounting functionality"; } leaf vas-if-type { type types-router:vas-if-type; description "VAS interface type"; } container ingress { description "Enter the ingress context"; leaf policy-accounting { type types-sros:named-item; description "Configure ingress policy accounting."; } leaf destination-class-lookup { type boolean; default "false"; description "Enable BGP destination class lookup"; } } // container ingress container load-balancing { description "Enter the load-balancing context"; leaf ip-load-balancing { type types-router:ip-load-balancing; default "both"; description "Configure IP load balancing algorithm."; } leaf spi-load-balancing { type boolean; default "false"; description "Allow use of SPI (Security Parameter Index) in hashing for ESP/AH encrypted IPv4/IPv6 traffic"; } leaf teid-load-balancing { type boolean; default "false"; description "Include TEID in hashing algorithm for GTP-U/C encapsulated traffic"; } } // container load-balancing container ping-template { presence "Enter the 'ping-template' context"; description "Enable the ping-template context"; leaf name { type types-sros:named-item-64; sros-ext:immutable; description "Ping template name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ping template"; } leaf destination-address { type types-sros:ipv4-unicast-address; description "Ping template destination address"; } } // container ping-template list spoke-sdp { key "sdp-bind-id"; max-elements 1; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf collect-stats { type boolean; default "false"; description "Allow agent to collect accounting statistics"; } leaf accounting-policy { type types-log:log-policy-id; description "Policy to collect accounting statistics"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf vc-type { type types-services:ies-sdp-bind-vc-type; sros-ext:immutable; default "ether"; description "Type of virtual circuit (VC) associated with the SDP binding"; } leaf bfd-template { status obsolete; type types-sros:named-item; description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type types-sros:named-item; description "BFD template associated with the SDP binding"; } leaf failure-action { type types-services:sbind-bfd-fail-action; default "none"; description "VCCV BFD action taken on the SDP binding"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; description "Time to wait for BFD up status"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm } // list spoke-sdp container cflowd-parameters { description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:cflowd-sampling; } description "Unicast or multicast traffic"; } leaf type { type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } } // list sampling } // container cflowd-parameters list sap { key "sap-id"; max-elements 1; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy"; } leaf anti-spoof { type types-services:anti-spoof-option; description "Anti-spoof filtering"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf calling-station-id { type types-sros:string-not-all-spaces { length "1..64"; } description "Calling station ID"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy for SAP"; } leaf host-admin-state { type types-sros:admin-state; default "enable"; description "Enable/disable administrative state of hosts"; } leaf host-lockout-policy { type types-sros:named-item; description "Host lockout policy"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } container ingress { description "Enter the ingress context"; leaf queue-group-redirect-list { type types-sros:named-item; description "Queue group redirect list"; } container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Queue group instance"; } } // container fp-redirect-group container overrides { description "Enter the overrides context"; container ip-criteria { description "Enter the ip-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv4 criteria"; } } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv6 criteria"; } } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-queue-id; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container aggregate-policer { description "Enter the aggregate-policer context"; leaf rate { type types-qos:aggr-policer-rate; default "max"; description "Aggregate policer rate to be used in kbps"; } leaf burst { type types-qos:aggr-policer-burst; default "default"; description "Aggregate policer burst"; } leaf cir { type types-qos:aggr-policer-cir; description "Aggregate policer cir to be used in kbps"; } leaf cbs { type types-qos:aggr-policer-cbs; description "Aggregate policer cbs"; } } // container aggregate-policer } // container ingress container egress { description "Enter the egress context"; leaf queue-group-redirect-list { type types-sros:named-item; description "Assign queue-group redirect list"; } container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port redirect queue group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of port queue group"; } } // container port-redirect-group container overrides { description "Enter the overrides context"; leaf hs-secondary-shaper { type types-sros:named-item; description "HS Secondary Shaper"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf secondary-shaper { status obsolete; type types-sros:named-item; description "Secondary shaper for the HSMDA queue"; } leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Packet byte offset for HSMDA queue"; } leaf wrr-policy { status obsolete; type types-sros:named-item; description "WRR policy for the HSMDA queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Egress HSMDA queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; description "Administrative PIR rate."; } leaf slope-policy { status obsolete; type types-sros:named-item; description "Name of the slope-policy which is used to override the default slope-policy for the named buffer pool."; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "Weight value for the HSMDA queue"; } } // list queue } // container hsmda-queues list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type types-sros:named-item; description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:sap-egress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hs-wrr-group-id; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Weight of scheduling class."; } choice rate-or-percent-rate { case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "Administrative PIR."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent."; } } } } // list hs-wrr-group } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Egress vlan-qos-policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Egress-remark-policy name"; } } // container egress-remark-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container fwd-wholesale { description "Enter the fwd-wholesale context"; leaf pppoe-service { type types-services:service-name; description "PPPoE service name"; } } // container fwd-wholesale container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm list ip-tunnel { key "tunnel-name"; max-elements 1; description "Enter the ip-tunnel list instance"; leaf tunnel-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "IP tunnel name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the tunnel"; } leaf description { type types-sros:description; description "Text description"; } leaf clear-df-bit { type boolean; default "false"; description "Clear the Do-not-Fragment bit"; } leaf delivery-service { type types-services:service-name; description "Delivery service name"; } leaf dscp { type types-qos:dscp-name; description "Differentiated Services Code Point (DSCP) name"; } leaf encapsulated-ip-mtu { type uint32 { range "512..9000"; } units "bytes"; description "Encapsulated IP MTU of this tunnel"; } leaf ip-mtu { type uint32 { range "512..9000"; } units "bytes"; description "IP MTU of this tunnel"; } leaf public-tcp-mss-adjust { type union { type uint32 { range "512..9000"; } type enumeration { enum "auto" { value 0; } } } units "bytes"; description "TCP maximum segment size (MSS) on private network"; } leaf private-tcp-mss-adjust { type int32 { range "512..9000"; } units "bytes"; description "TCP maximum segment size (MSS) on private network"; } leaf reassembly { type union { type int32 { range "1..5000"; } type enumeration { enum "use-tunnel-group-setting" { value -1; } enum "none" { value 0; } } } units "milliseconds"; description "Reassembly wait time"; } leaf remote-ip-address { type types-sros:ip-address; description "Remote IP address of this tunnel"; } leaf backup-remote-ip-address { type types-sros:ip-address; description "Backup remote IP address that is applied to this tunnel"; } leaf local-ip-address { type types-sros:ip-address; description "Local IP address of this tunnel"; } container icmp6-generation { description "Enter the icmp6-generation context"; container packet-too-big { description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of sending Packet Too Big messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Number of packet-too-big ICMPv6 messages issued in a specified time frame"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time frame to limit the number of packet-too-big ICMPv6 messages"; } } // container packet-too-big } // container icmp6-generation container gre-header { description "Enter the gre-header context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of the GRE header in the tunnel"; } container key { description "Enter the key context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the keys in the GRE header"; } leaf send { type uint32; default "0"; description "Send key of a GRE header"; } leaf receive { type uint32; default "0"; description "Receive key of a GRE header"; } } // container key } // container gre-header list dest-ip { key "dest-ip-address"; description "Add a list entry for dest-ip"; leaf dest-ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "Destination IP address of the tunnel"; } } // list dest-ip } // list ip-tunnel list ipsec-gateway { key "name"; max-elements 1; description "Enter the ipsec-gateway list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "IPsec gateway name."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec gateway."; } leaf default-tunnel-template { type types-ipsec:tunnel-template-id; description "The IPsec tunnel template ID."; } leaf ike-policy { type types-ipsec:ike-policy-id; description "IKE policy ID."; } leaf pre-shared-key { type types-sros:encrypted-leaf { length "1..115"; } description "The pre-shared key used for authentication by two peers forming the tunnel for the IPSec gateway."; } leaf ts-list { type types-sros:named-item; description "The name of Traffic Selector (TS) list, used for IKEv2 TS negotiation."; } container dhcp-address-assignment { description "Enter the dhcp-address-assignment context"; container dhcpv4 { presence "Enter the 'dhcpv4' context"; description "Enable the dhcpv4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec DHCPv4 server."; } leaf gi-address { type types-sros:ipv4-unicast-address; description "The giaddr of relayed DHCPv4 header."; } leaf send-release { type boolean; default "true"; description "Send DHCPv4 release messages."; } container server { description "Enter the server context"; leaf-list address { type types-sros:ipv4-unicast-address; max-elements 8; description "The DHCPv4 server addresses."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance to reach the DHCPv4 server."; } } // container server } // container dhcpv4 container dhcpv6 { presence "Enter the 'dhcpv6' context"; description "Enable the dhcpv6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec DHCPv6 server."; } leaf link-address { type types-sros:ipv6-unicast-address; description "The link-address in DHCPv6 relay packet."; } leaf send-release { type boolean; default "true"; description "Send DHCPv6 release messages when a tunnel is down."; } container server { description "Enter the server context"; leaf-list address { type types-sros:ipv6-unicast-address; max-elements 8; description "The DHCPv6 server addresses."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance to reach the DHCPv6 server."; } } // container server } // container dhcpv6 } // container dhcp-address-assignment container cert { description "Enter the cert context"; leaf cert-profile { type types-sros:named-item; description "Certificate profile name."; } leaf trust-anchor-profile { type types-sros:named-item; description "Trust anchor profile."; } container status-verify { description "Enter the status-verify context"; leaf default-result { type enumeration { enum "revoked" { value 0; } enum "good" { value 1; } } default "revoked"; description "The default result of Certificate Status Verification (CSV)."; } leaf primary { type types-ipsec:cert-revocation-status; default "crl"; description "The primary method used to verify the peer certificate's revocation status."; } leaf secondary { type types-ipsec:cert-revocation-status-with-none; default "none"; description "The secondary method used to verify the peer certificate's revocation status."; } } // container status-verify } // container cert container client-db { presence "Enter the 'client-db' context"; description "Enable the client-db context"; leaf name { type types-sros:named-item; description "IPsec client database name."; } leaf fallback { type boolean; default "true"; description "Fall back to the tunnel authentication and creation attribute as if client-db is not configured when IPsec database client matching has failed."; } } // container client-db container default-secure-service { presence "Enter the 'default-secure-service' context"; description "Enable the default-secure-service context"; leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf interface { type types-sros:interface-name; description "The name of the default interface used by this IPsec gateway."; } } // container default-secure-service container local { description "Enter the local context"; leaf gateway-address { type types-sros:ip-address; description "The IPsec gateway address."; } container address-assignment { presence "Enter the 'address-assignment' context"; description "Enable the address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignments"; } container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance hosting the DHCPv4 connection."; } leaf dhcp-server { type types-sros:named-item; description "Local DHCPv4 server name"; } leaf pool { type types-sros:named-item; description "Name of the pool defined in the specified DHCPv4 server"; } leaf secondary-pool { type types-sros:named-item; description "Name of the secondary pool defined in the DHCPv4 server"; } } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance hosting the DHCPv6 connection."; } leaf dhcp-server { type types-sros:named-item; description "Local DHCPv6 server name"; } leaf pool { type types-sros:named-item; description "Name of the secondary pool defined in the DHCPv6 server"; } } // container ipv6 } // container address-assignment container id { description "Enter the id context"; choice id { default "auto"; case auto { leaf auto { type empty; description "System picks a local ID automatically based on auth-method configured in ike-policy."; } } case ipv4 { leaf ipv4 { type types-sros:ipv4-unicast-address; description "The IPv4 Local ID."; } } case ipv6 { leaf ipv6 { type types-sros:ip-address; description "The IPv6 Local ID."; } } case fqdn { leaf fqdn { type types-sros:fully-qualified-domain-name; description "The Fully Qualified Domain Name (FQDN) Local ID."; } } } } // container id } // container local container radius { description "Enter the radius context"; leaf accounting-policy { type types-sros:named-item; description "RADIUS accounting policy."; } leaf authentication-policy { type types-sros:named-item; description "RADIUS authentication policy."; } } // container radius container max-history-key-records { description "Enter the max-history-key-records context"; leaf ike { type uint32 { range "1..3"; } description "The maximum number of historical IKE keys which can be recorded by the system."; } leaf esp { type uint32 { range "1..48"; } description "The maximum number of historical ESP keys which can be recorded by the system."; } } // container max-history-key-records } // list ipsec-gateway container static-host { description "Enter the static-host context"; list ipv4 { key "ip mac"; description "Enter the ipv4 list instance"; leaf ip { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "IP address"; } leaf mac { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address; } description "MAC address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type types-sros:external-named-item; description "Sub-profile name"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id } // list ipv4 } // container static-host } // list sap list vpls { key "vpls-name"; max-elements 1; description "Enter the vpls list instance"; leaf vpls-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "VPLS service"; } container evpn { description "Enter the evpn context"; container arp { description "Enter the arp context"; leaf learn-dynamic { type boolean; default "true"; description "Process ARP or ND messages on EVPN tunnels"; } leaf flood-garp-and-unknown-req { type boolean; default "true"; description "Allow CPM originated ARP frames to flood R-VPLS service"; } list advertise { key "route-type"; description "Enter the advertise list instance"; leaf route-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "0..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } } // list advertise } // container arp container nd { description "Enter the nd context"; leaf learn-dynamic { type boolean; default "true"; description "Process ARP or ND messages on EVPN tunnels"; } list advertise { key "route-type"; description "Enter the advertise list instance"; leaf route-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "0..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } } // list advertise } // container nd } // container evpn container egress { description "Enter the egress context"; leaf reclassify-using-qos { type types-qos:qos-policy-name; description "Egress QoS policy"; } container routed-override-filter { description "Enter the routed-override-filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container routed-override-filter } // container egress container ingress { description "Enter the ingress context"; container routed-override-filter { description "Enter the routed-override-filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container routed-override-filter } // container ingress } // list vpls container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv6 } // container hold-time container ipv4 { description "Enter the ipv4 context"; leaf tcp-mss { type types-router:ipv4-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf allow-directed-broadcasts { type boolean; default "false"; description "Forward directed broadcasts"; } leaf local-dhcp-server { type types-sros:named-item; description "DHCP server for the interface"; } leaf qos-route-lookup { type types-router:qos-route-lookup; description "QoS Route lookup"; } leaf ip-helper-address { type types-sros:ipv4-unicast-address; description "Gateway address"; } container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container unnumbered { description "Enter the unnumbered context"; choice source { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IP address of the interface"; } } case ip-int-name { leaf ip-int-name { type types-sros:interface-name; description "Name of the interface"; } } case ip-int-system { leaf system { type empty; description "IP interface as an unnumbered interface"; } } } } // container unnumbered container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; description "Primary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } } // container primary list secondary { key "address"; description "Enter the secondary list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Secondary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf igp-inhibit { type boolean; default "false"; description "Secondary IP address that is not recognized as local interface by the running IGP"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } } // list secondary container addresses { description "Enter the addresses context"; list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IPv4 address for the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } } // list address } // container addresses container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf timeout { type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } leaf retry-timer { type uint32 { range "1..300"; } units "deciseconds"; default "50"; description "ARP retry interval"; } leaf learn-unsolicited { type boolean; default "false"; description "Learn new entries from any received NA message"; } leaf proactive-refresh { type boolean; default "false"; description "Send a single refresh message with no retries 30 seconds prior to entry timeout"; } leaf populate { type boolean; default "false"; description "Allow static and dynamic hosts to be populated in system ARP cache"; } leaf local-proxy-arp { type boolean; default "false"; description "Enable local proxy ARP on interface"; } leaf remote-proxy-arp { type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Proxy ARP policy name"; } leaf populate-host { status obsolete; type boolean; default "false"; description "Allow addition or deletion of host routes in route table derived from ARP entries in ARP cache"; } leaf route-tag { status obsolete; type types-router:route-tag; description "ARP route tag"; } container host-route { description "Enter the host-route context"; list populate { key "route-type"; description "Enter the populate list instance"; leaf route-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } enum "evpn" { value 3; } } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "1..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } } // list populate } // container host-route container limit { description "Enter the limit context"; leaf max-entries { type types-router:ipv4-neighbor-limit; description "Maximum number of entries that can be learned"; } leaf log-only { type boolean; default "false"; description "Apply the limit to log entries only"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message"; } } // container limit container static-neighbor-unnumbered { presence "Enter the 'static-neighbor-unnumbered' context"; description "Enable the static-neighbor-unnumbered context"; leaf mac-address { type yang:mac-address; description "Media-dependent physical address"; } } // container static-neighbor-unnumbered list static-neighbor { key "ipv4-address"; description "Enter the static-neighbor list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "IPv4 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; description "Media-dependent physical address"; } } // list static-neighbor } // container neighbor-discovery container dhcp { description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf python-policy { type types-sros:named-item; description "Python policy"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "IP addresses for DHCP server requests"; } leaf trusted { type boolean; default "false"; description "Relay untrusted packets"; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf relay-plain-bootp { type boolean; default "false"; description "Enable/disable relaying of plain BOOTP packets."; } leaf use-arp { type boolean; default "false"; description "Enable/disable the use of ARP to determine the destination Hw address."; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP proxy server"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "The address used as source and siaddr when emulating a DHCP server."; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the circuit-id."; } } case ifindex { leaf ifindex { type empty; description "Use the interface index for the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in the option."; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf pool-name { type boolean; default "false"; description "Send the pool name in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "0..511999"; } default "0"; description "The maximum number of DHCPv4 leases."; } } // container lease-populate container relay-proxy { presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy } // container dhcp list vrrp { key "virtual-router-id"; description "Enter the vrrp list instance"; leaf virtual-router-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..255"; } } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Password for simple text authentication"; } leaf-list backup { type types-sros:ipv4-unicast-address; max-elements 16; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "1..2559"; } units "deciseconds"; default "10"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "false"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type uint32 { range "1..9999"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ssh-reply { type boolean; default "false"; description "Allow non-owner master to reply to SSH requests"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type types-sros:named-item; description "Operational group name associated with VRRP"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-address; sros-ext:immutable; description "Destination IP address to be used for BFD session"; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Name of interface running BFD"; } } // container bfd-liveness } // list vrrp } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf qos-route-lookup { type types-router:qos-route-lookup; description "QoS Route lookup"; } leaf forward-ipv4-packets { type boolean; default "false"; description "Forward unencapsulated IPv4 packets"; } leaf tcp-mss { type types-router:ipv6-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf duplicate-address-detection { type boolean; default "true"; description "Enable/disable Duplicate Address Detection"; } leaf local-dhcp-server { type types-sros:named-item; description "DHCP server for the interface"; } container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container icmp6 { description "Enter the icmp6 context"; container packet-too-big { description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of packet-too-big messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of packet-too-big messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit packet-too-big messages"; } } // container packet-too-big container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of param-problem messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of parameter-problem messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit parameter problem messages"; } } // container param-problem container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of redirect messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit redirect messages"; } } // container redirects container time-exceeded { description "Enter the time-exceeded context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the time-exceeded messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of time-exceeded messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit time-exceeded messages"; } } // container time-exceeded container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of unreachable messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit unreachable messages"; } } // container unreachables } // container icmp6 container link-local-address { description "Enter the link-local-address context"; leaf address { type types-sros:ipv6-address; description "Link-local IPv6 address of this router interface"; } leaf duplicate-address-detection { type boolean; default "true"; description "Enable/disable Duplicate Address Detection."; } } // container link-local-address container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "IPv6 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..128"; } description "IPv6 address prefix length"; } leaf eui-64 { type boolean; sros-ext:immutable; default "false"; description "Form complete IPv6 address from supplied prefix and 64-bit interface identifier"; } leaf duplicate-address-detection { type boolean; sros-ext:immutable; default "true"; description "Enable/disable Duplicate Address Detection."; } leaf primary-preference { type uint32 { range "1..4294967295"; } description "Index assigned to the IPv6 address of the interface"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "Track the state of the SRRP instance on this IP address"; } } // list address container dhcp6 { description "Enter the dhcp6 context"; container relay { description "Enter the relay context"; leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 relay"; } leaf link-address { type types-sros:ipv6-address; description "Link address of the DHCPv6 relay messages"; } leaf neighbor-resolution { type boolean; default "false"; description "Enable neighbor resolution via DHCPv6 relay"; } leaf python-policy { type types-sros:named-item; description "Python policy name"; } leaf source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source IPv6 address of the DHCPv6 relay messages"; } leaf user-db { type types-sros:named-item; description "Local user database for authentication"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCPv6 server to which the DHCPv6 requests are forwarded"; } container lease-populate { description "Enter the lease-populate context"; leaf max-nbr-of-leases { type int32 { range "0..32767"; } default "0"; description "Maximum number of lease states allocated by the DHCPv6 relay function, allowed on interface"; } container route-populate { description "Enter the route-populate context"; leaf na { type boolean; default "false"; description "Create route based on IA_NA prefix option in relay-reply message"; } leaf ta { type boolean; default "false"; description "Create route based on IA_TA prefix option in relay-reply message"; } container pd { presence "Enter the 'pd' context"; description "Enable the pd context"; leaf exclude { type boolean; default "false"; description "Create back hole route based on prefix exclude option in relay-reply message"; } } // container pd } // container route-populate } // container lease-populate container option { description "Enter the option context"; leaf remote-id { type boolean; default "false"; description "Allow remote ID option to be sent in the DHCPv6 relay packet"; } container interface-id { description "Enter the interface-id context"; choice interface-id { case ascii-tuple { leaf ascii-tuple { type empty; description "Use ASCII-encoded concatenated tuple in interface ID option in DHCPv6 relay packet"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in interface ID option in DHCPv6 relay packet"; } } case if-index { leaf if-index { type empty; description "Use interface index in interface ID option in DHCPv6 relay packet"; } } case string { leaf string { type types-sros:string-not-all-spaces { length "1..80"; } description "String for interface ID option in DHCPv6 relay packet"; } } } } // container interface-id } // container option } // container relay container server { description "Enter the server context"; leaf max-nbr-of-leases { type int32 { range "0..8000"; } default "8000"; description "DHCPv6 leases allowed"; } container prefix-delegation { description "Enter the prefix-delegation context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the prefix delegation"; } list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "IPv6 prefix to be delegated"; } leaf preferred-lifetime { type types-services:ipv6-prefix-lifetime; units "seconds"; default "604800"; description "IPv6 prefix/mask preferred life time"; } leaf valid-lifetime { type types-services:ipv6-prefix-lifetime; units "seconds"; default "2592000"; description "IPv6 prefix/mask valid life time"; } container client-id { description "Enter the client-id context"; leaf duid { type string { length "1..130"; } description "Requesting router ID"; } leaf iaid { type uint32 { range "1..4294967295"; } description "IAID from the requesting router that matches to delegate the prefix"; } } // container client-id } // list prefix } // container prefix-delegation } // container server } // container dhcp6 container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf reachable-time { type types-router:neighbor-discovery-reachable-time; description "Timer for neighbor reachability detection"; } leaf stale-time { type types-router:neighbor-discovery-stale-time; description "Time during which a neighbor discovery cache entry remains stale"; } leaf learn-unsolicited { type types-router:ipv6-address-type-selection; description "Type of entries learned from unsolicited NA messages"; } leaf proactive-refresh { type types-router:ipv6-address-type-selection; description "Neighbor entries to be refreshed proactively"; } leaf local-proxy-nd { type boolean; default "false"; description "Enable neighbor discovery on interface"; } leaf-list proxy-nd-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Name of the proxy Neighbor Discovery policies for the interface"; } leaf populate-host { status obsolete; type boolean; default "false"; description "Allow addition or deletion of host routes in route table derived from ARP entries in ARP cache"; } leaf route-tag { status obsolete; type types-router:route-tag; description "ARP route tag"; } container host-route { description "Enter the host-route context"; list populate { key "route-type"; description "Enter the populate list instance"; leaf route-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } enum "evpn" { value 3; } } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "1..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } } // list populate } // container host-route container secure-nd { description "Enter the secure-nd context"; leaf allow-unsecured-msgs { type boolean; default "true"; description "Accept unsecured messages"; } leaf public-key-min-bits { type uint32 { range "512..1024"; } default "1024"; description "Minimum acceptable key length for public keys"; } leaf security-parameter { type uint32 { range "0..1"; } default "1"; description "Security parameter in the generation of a cryptographical address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of secure neighbor discovery"; } } // container secure-nd container limit { description "Enter the limit context"; leaf max-entries { type types-router:ipv6-neighbor-limit; description "Maximum number of entries that can be learned on an IP interface"; } leaf log-only { type boolean; default "false"; description "Log warning messages at threshold or when limit is exceeded, however entries are learned above limit"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message to be sent"; } } // container limit list static-neighbor { key "ipv6-address"; description "Enter the static-neighbor list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "IPv6 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; description "Media-dependent physical address"; } } // list static-neighbor } // container neighbor-discovery list vrrp { key "virtual-router-id"; max-elements 1; description "Enter the vrrp list instance"; leaf virtual-router-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..255"; } } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf-list backup { type types-sros:ipv6-address; max-elements 4; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "10..4095"; } units "centiseconds"; default "100"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "true"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type uint32 { range "1..9999"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type types-sros:named-item; description "Operational group name associated with VRRP"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv6-address; sros-ext:immutable; description "ip-address."; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Name of interface running BFD"; } } // container bfd-liveness } // list vrrp } // container ipv6 container if-attribute { description "Enter the if-attribute context"; leaf-list admin-group { type types-sros:named-item; max-elements 32; description "Names of the admin group memberships of the interface"; } list srlg-group { key "name"; description "Add a list entry for srlg-group"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Shared Risk Link Group (SRLG) name."; } } // list srlg-group } // container if-attribute } // list interface list redundant-interface { key "interface-name"; description "Enter the redundant-interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Name of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the interface"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 } // container hold-time list spoke-sdp { key "sdp-bind-id"; max-elements 1; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container filter } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container filter } // container egress } // list spoke-sdp container ipv4 { description "Enter the ipv4 context"; container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; description "IPv4 address to be assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "The prefix length 0..32 for IPv4 Address."; } leaf remote-ip { type types-sros:ipv4-unicast-address; description "IP address of the remote redundant interface."; } } // container primary } // container ipv4 } // list redundant-interface container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IGMP host tracking"; } leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "260"; description "Time during which the system continues to track inactive hosts"; } } // container igmp-host-tracking list subscriber-interface { key "interface-name"; description "Enter the subscriber-interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the subscriber interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf fwd-service { type types-services:service-name; sros-ext:immutable; description "Configure the forwarding service."; } leaf fwd-subscriber-interface { type types-sros:interface-name; sros-ext:immutable; description "Forwarding subscriber interface name"; } leaf wan-mode { type enumeration { enum "mode64" { value 1; } enum "mode128" { value 2; } } sros-ext:immutable; default "mode64"; description "The mode of operation for hosts that have a /128 WAN IPv6 address."; } container ipv4 { description "Enter the ipv4 context"; leaf allow-unmatching-subnets { type boolean; default "false"; description "Allow subscriber hosts without a matching subnet"; } leaf export-host-routes { type boolean; default "false"; description "Allow export of subscriber management host routes"; } leaf-list default-dns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "Default DNS server addresses"; } list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IP address associated with the subscriber subnet"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf gateway { type types-sros:ipv4-unicast-address; description "Gateway IP address within the subnet for SRRP routing"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf populate-host-routes { type boolean; default "false"; description "Populate subscriber host routes in local FIB"; } leaf holdup-time { type uint32 { range "100..5000"; } units "milliseconds"; description "Wait time before accepting new state attribute"; } } // list address container unnumbered { description "Enter the unnumbered context"; choice source { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IP address of the interface"; } } case ip-int-name { leaf ip-int-name { type types-sros:interface-name; description "Interface name"; } } } } // container unnumbered container dhcp { description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf python-policy { type types-sros:named-item; description "Python policy"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "Configure the DHCP server IP addresses."; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf virtual-subnet { type boolean; default "false"; description "Enable/disable virtual subnetting."; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP proxy server"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "0..511999"; } description "The maximum number of DHCPv4 leases."; } } // container lease-populate container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Enable/disable DHCP as client application."; } leaf ppp { type boolean; default "false"; description "Enable/disable PPP as client application."; } } // container client-applications container relay-proxy { presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy } // container dhcp } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf allow-multiple-wan-addresses { type boolean; default "false"; description "Configure if the interface will accept multiple WAN addresses."; } leaf ipoe-bridged-mode { type boolean; default "false"; description "Enable/Disable IPv6 IPoE Bridged Mode."; } leaf allow-unmatching-prefixes { type boolean; default "false"; description "Allow subscriber hosts without a matching prefix"; } leaf delegated-prefix-length { type union { type uint32 { range "48..64"; } type enumeration { enum "variable" { value 0; } } } default "64"; description "IPv6 delegated prefix length"; } leaf-list default-dns { type types-sros:ipv6-unicast-address; max-elements 2; ordered-by user; description "Default DNS server addresses"; } list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "IPv6 address for the subscriber interface"; } leaf prefix-length { type uint32 { range "0..128"; } description "IPv6 address prefix length"; } leaf host-type { type enumeration { enum "pd" { value 0; description "Configure to make this aggregate to be used by IPv6 ESM hosts for DHCPv6 prefix-delegation."; } enum "wan" { value 1; description "Configure to make this aggregate to be used by ESM hosts for DHCPv6 addresses or by WAN interface."; } enum "pd-wan" { value 2; description "Configure to make this aggregate to be used by both prefix-delegation and ESM hosts."; } } sros-ext:immutable; default "pd"; description "Host type for subscriber interface prefixes"; } } // list address list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "IPv6 address for a router interface"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf holdup-time { type uint32 { range "100..5000"; } units "milliseconds"; description "Configures the time to wait, in milliseconds, for the route before it accepts the new state attribute."; } leaf host-type { type enumeration { enum "pd" { value 0; description "Configure to make this aggregate to be used by IPv6 ESM hosts for DHCPv6 prefix-delegation."; } enum "wan" { value 1; description "Configure to make this aggregate to be used by ESM hosts for DHCPv6 addresses or by WAN interface."; } enum "pd-wan" { value 2; description "Configure to make this aggregate to be used by both prefix-delegation and ESM hosts."; } } sros-ext:immutable; default "pd"; description "Host type for subscriber interface prefixes"; } } // list prefix container link-local-address { description "Enter the link-local-address context"; leaf address { type types-sros:ipv6-address; description "IPv6 link local address"; } } // container link-local-address container dhcp6 { description "Enter the dhcp6 context"; leaf override-slaac { type boolean; default "false"; description "Allow WAN address offered by DHCP to overwrite the WAN address acquired from SLAAC"; } leaf python-policy { type types-sros:named-item; description "Python policy"; } container pd-managed-route { presence "Enter the 'pd-managed-route' context"; description "Enable the pd-managed-route context"; leaf next-hop { type types-services:dhcp6-pd-managed-route-nh; default "ipv6"; description "Next hop type"; } } // container pd-managed-route container relay { description "Enter the relay context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 Relay"; } leaf description { type types-sros:description; description "Text description"; } leaf source-address { type types-sros:ipv6-unicast-address; description "Source IPv6 address for the DHCPv6 relay messages"; } leaf link-address { type types-sros:ipv6-address; description "Link address for the DHCPv6 relay messages"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCP6 server(s) to which the DHCP6 requests are forwarded"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container lease-split { description "Enter the lease-split context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 lease split"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime-new; default "3600"; description "DHCPv6 lease split valid lifetime (short lease time)"; } } // container lease-split } // container relay container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 proxy server"; } leaf preferred-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "3600"; description "Time for prefix to remain preferred on this interface"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "86400"; description "Time for prefix to remain valid on this interface"; } leaf renew-timer { type types-submgt:dhcp6-renew-timer; description "Renew timer (T1)"; } leaf rebind-timer { type types-submgt:dhcp6-rebind-timer; description "Rebind timer (T2) for this interface"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container server-id { description "Enter the server-id context"; choice server-id { default "duid-ll"; case duid-ll { leaf duid-ll { type empty; description "Use link-layer address (DUID-LL) as DUID"; } } case duid-en-hex { leaf duid-en-hex { type string { length "1..118"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as a hexadecimal string"; } } case duid-en-ascii { leaf duid-en-ascii { type types-sros:string-not-all-spaces { length "1..58"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as an ASCII string"; } } } } // container server-id } // container proxy-server } // container dhcp6 container router-advertisements { description "Enter the router-advertisements context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf max-advertisement-interval { type types-sros:time-duration { range "900..1800"; } units "seconds"; default "1800"; description "Maximum advertisement interval"; } leaf min-advertisement-interval { type types-sros:time-duration { range "900..1350"; } units "seconds"; default "900"; description "Minimum advertisement interval"; } leaf force-mcast { type enumeration { enum "ip" { value 1; } enum "ip-mac" { value 2; } } description "Send router advertisement to a multicast address instead of unicast for IPoE"; } container options { description "Enter the options context"; leaf current-hop-limit { type uint32 { range "0..255"; } default "64"; description "Hop limit to be advertised"; } leaf managed-configuration { type boolean; default "false"; description "Managed address configuration flag"; } leaf mtu { type union { type uint32 { range "1280..9212"; } type enumeration { enum "not-included" { value 0; } } } units "bytes"; default "not-included"; description "Advertised MTU value"; } leaf other-stateful-configuration { type boolean; default "false"; description "Other stateful configuration flag"; } leaf reachable-time { type types-sros:time-duration { range "0..3600000"; } units "milliseconds"; default "0"; description "Neighbor discovery reachable time that is advertised for this group interface"; } leaf retransmit-timer { type uint32 { range "0..1800000"; } units "seconds"; default "0"; description "Neighbor discovery retransmit timer that is advertised for this group interface"; } leaf router-lifetime { type union { type types-sros:time-duration { range "2700..9000"; } type enumeration { enum "no-default-router" { value 0; } } } units "seconds"; default "4500"; description "Router lifetime"; } container dns { description "Enter the dns context"; leaf include-rdnss { type boolean; default "false"; description "Include the RDNSS server option 25"; } leaf rdnss-lifetime { type union { type types-sros:time-duration { range "900..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "3600"; description "Maximum time for the RDNSS address to remain valid"; } } // container dns } // container options container prefix-options { description "Enter the prefix-options context"; leaf autonomous { type boolean; default "false"; description "Value of the autonomous flag"; } leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container prefix-options } // container router-advertisements container router-solicit { description "Enter the router-solicit context"; leaf inactivity-timer { type union { type types-sros:time-duration { range "1..31536000"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "300"; description "Time before an inactive host is removed"; } } // container router-solicit } // container ipv6 container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv6 } // container hold-time container ipoe-linking { description "Enter the ipoe-linking context"; leaf gratuitous-router-advertisement { type boolean; default "false"; description "Send unsolicited router advertisement after DHCP setup"; } } // container ipoe-linking container ipoe-session { description "Enter the ipoe-session context"; leaf session-limit { type uint32 { range "1..500000"; } description "Maximum number of sessions on this group interface"; } } // container ipoe-session container pppoe { description "Enter the pppoe context"; leaf description { type types-sros:description; description "Text description"; } leaf session-limit { type uint32 { range "1..262143"; } default "1"; description "Maximum PPPoE sessions"; } } // container pppoe container local-address-assignment { description "Enter the local-address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignment"; } container ipv4 { description "Enter the ipv4 context"; leaf server { type types-sros:named-item; description "Local DHCP server that contains pools for local address assignment"; } leaf-list default-pool { type types-sros:named-item; max-elements 2; ordered-by user; description "Default pools"; } container client-applications { description "Enter the client-applications context"; leaf ppp { type boolean; default "false"; description "Request local addresses for PPP IPCP hosts"; } } // container client-applications } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf server { type types-sros:named-item; description "Local DHCPv6 server that contains pools for local address assignment"; } container client-applications { description "Enter the client-applications context"; leaf ppp-slaac { type boolean; default "false"; description "Request local addresses for PPP SLAAC hosts"; } leaf ipoe-wan { type boolean; default "false"; description "Request local addresses for IPoE IA NA hosts"; } leaf ipoe-slaac { type boolean; default "false"; description "Request local addresses for IPoE SLAAC hosts"; } } // container client-applications } // container ipv6 } // container local-address-assignment list group-interface { key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf type { type types-services:group-interface-type; sros-ext:immutable; default "plain"; description "Group interface type"; } leaf radius-auth-policy { type types-sros:named-item; description "RADIUS authentication policy"; } leaf gx-policy { type types-sros:named-item; description "Diameter application policy"; } leaf nasreq-auth-policy { type types-sros:named-item; description "Diameter NASREQ application policy to use for authentication"; } leaf ingress-stats { type boolean; default "false"; description "Collect ingress interface statistics"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "Interface IP MTU"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf oper-up-while-empty { type boolean; default "false"; description "Enable this group interface without any active SAPs"; } leaf redundant-interface { type types-sros:interface-name; description "Redundant interface"; } leaf shcv-policy { type types-sros:external-named-item; description "Subscriber host connectivity verification policy for IPv4 and IPv6"; } leaf shcv-policy-ipv4 { type types-sros:external-named-item; description "Subscriber host connectivity verification policy for IPv4"; } leaf shcv-policy-ipv6 { type types-sros:external-named-item; description "Subscriber host connectivity verification policy for IPv6"; } leaf suppress-aa-sub { type boolean; default "false"; description "Enable application assurance suppression for ESM subscribers"; } leaf tos-marking-state { type types-router:tos-marking-state; default "untrusted"; description "TOS marking state"; } container ingress { description "Enter the ingress context"; leaf policy-accounting { type types-sros:named-item; description "Configure ingress policy accounting."; } } // container ingress container dynamic-routes-track-srrp { presence "Enter the 'dynamic-routes-track-srrp' context"; description "Enable the dynamic-routes-track-srrp context"; leaf hold-time { type uint32 { range "1..50"; } units "deciseconds"; description "Delay before updating the route state after the last SRRP transition"; } } // container dynamic-routes-track-srrp container ipv4 { description "Enter the ipv4 context"; leaf qos-route-lookup { type types-router:qos-route-lookup-grp-if; description "QoS route lookup"; } leaf ignore-df-bit { type boolean; default "false"; description "Ignore DF bit in the IPv4 header when fragmenting"; } container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container arp-host { description "Enter the arp-host context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ARP hosts"; } leaf host-limit { type uint32 { range "1..524287"; } default "1"; description "Maximum number of ARP triggered hosts."; } leaf sap-host-limit { type uint32 { range "1..131071"; } default "1"; description "Maximum number of ARP triggered hosts allowed per SAP."; } leaf min-auth-interval { type types-sros:time-duration { range "1..6000"; } units "minutes"; default "15"; description "Minimal time that has to pass before incoming ARPs of an active ARP host are re-authenticated."; } } // container arp-host container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf local-proxy-arp { type boolean; default "true"; description "Enable local proxy ARP on interface"; } leaf remote-proxy-arp { type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Proxy ARP policy name"; } leaf populate { type boolean; description "Allow static and dynamic hosts to be populated in system ARP cache"; } leaf timeout { type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } } // container neighbor-discovery container dhcp { description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type uint32 { range "1..65535"; } description "DHCP filter."; } leaf python-policy { type types-sros:named-item; description "Python policy name"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "IP addresses for DHCP server requests"; } leaf trusted { type boolean; default "false"; description "Relay untrusted packets"; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf match-circuit-id { type boolean; default "false"; description "Configure match Opt82 circuit ID on relayed DHCP packets."; } leaf user-db { type types-sros:named-item; description "Configure the local user database to use for authentication."; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP proxy"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the Circuit ID"; } } case ifindex { leaf ifindex { type empty; description "Use the interface index for the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in the option."; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf pool-name { type boolean; default "false"; description "Send the pool name in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "1..511999"; } default "1"; description "The maximum number of DHCPv4 leases."; } container l2-header { presence "Enter the 'l2-header' context"; description "Enable the l2-header context"; leaf mac { type types-sros:mac-unicast-address; description "Specify the MAC address."; } } // container l2-header } // container lease-populate container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Enable/disable DHCP as client application."; } leaf ppp { type boolean; default "false"; description "Enable/disable PPP as client application."; } } // container client-applications container relay-proxy { presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy container offer-selection { description "Enter the offer-selection context"; leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Offer selection"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } } // container client-mac } case mode-server { list server { key "ipv4-address"; max-elements 8; description "Enter the server list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IP address of the DHCP server"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } } // list server } } } // container offer-selection } // container dhcp } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf allow-multiple-wan-addresses { type boolean; default "false"; description "Configure if the interface will accept multiple WAN addresses."; } leaf ipoe-bridged-mode { type boolean; default "false"; description "Enable/Disable IPv6 IPoE Bridged Mode."; } leaf qos-route-lookup { type types-router:qos-route-lookup-grp-if; description "QoS route lookup"; } container auto-reply { description "Enter the auto-reply context"; leaf neighbor-solicitation { type boolean; default "false"; description "Enable auto-reply for NS"; } leaf router-solicitation { type boolean; default "false"; description "Enable auto-reply for RS"; } } // container auto-reply container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container dhcp6 { description "Enter the dhcp6 context"; leaf filter { type uint32 { range "1..65535"; } description "DHCPv6 filter"; } leaf override-slaac { type boolean; default "false"; description "Allow WAN address offered by DHCP to overwrite the WAN address acquired from SLAAC"; } leaf python-policy { type types-sros:named-item; description "Python policy"; } leaf user-db { type types-sros:named-item; description "Assign a local user database."; } leaf user-ident { type types-services:dhcp6-user-ident; default "mac"; description "DHCP6 user identification for this interface"; } container pd-managed-route { presence "Enter the 'pd-managed-route' context"; description "Enable the pd-managed-route context"; leaf next-hop { type types-services:dhcp6-pd-managed-route-nh; default "ipv6"; description "Next hop type"; } } // container pd-managed-route container snooping { description "Enter the snooping context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 snooping"; } } // container snooping container relay { description "Enter the relay context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 Relay"; } leaf description { type types-sros:description; description "Text description"; } leaf source-address { type types-sros:ipv6-unicast-address; description "Source IPv6 address for the DHCPv6 relay messages"; } leaf link-address { type types-sros:ipv6-address; description "Link address for the DHCPv6 relay messages"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCP6 server(s) to which the DHCP6 requests are forwarded"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container advertise-selection { description "Enter the advertise-selection context"; leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Advertise selection"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container client-mac } case mode-server { list server { key "ipv6-address"; max-elements 8; description "Enter the server list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "IP address of the DHCPv6 server"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // list server } } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container advertise-selection container lease-split { description "Enter the lease-split context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 lease split"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime-new; default "3600"; description "DHCPv6 lease split valid lifetime (short lease time)"; } } // container lease-split } // container relay container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 proxy server"; } leaf preferred-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "3600"; description "Time for prefix to remain preferred on this interface"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "86400"; description "Time for prefix to remain valid on this interface"; } leaf renew-timer { type types-submgt:dhcp6-renew-timer; description "Renew timer (T1)"; } leaf rebind-timer { type types-submgt:dhcp6-rebind-timer; description "Rebind timer (T2) for this interface"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container server-id { description "Enter the server-id context"; choice server-id { default "duid-ll"; case duid-ll { leaf duid-ll { type empty; description "Use link-layer address (DUID-LL) as DUID"; } } case duid-en-hex { leaf duid-en-hex { type string { length "1..118"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as a hexadecimal string"; } } case duid-en-ascii { leaf duid-en-ascii { type types-sros:string-not-all-spaces { length "1..58"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as an ASCII string"; } } } } // container server-id } // container proxy-server container option { description "Enter the option context"; leaf remote-id { type boolean; default "false"; description "Allow remote ID option to be sent in the DHCPv6 relay packet"; } container interface-id { description "Enter the interface-id context"; choice interface-id { case ascii-tuple { leaf ascii-tuple { type empty; description "Use ASCII-encoded concatenated tuple in interface ID option in DHCPv6 relay packet"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in interface ID option in DHCPv6 relay packet"; } } case if-index { leaf if-index { type empty; description "Use interface index in interface ID option in DHCPv6 relay packet"; } } case string { leaf string { type types-sros:string-not-all-spaces { length "1..80"; } description "String for interface ID option in DHCPv6 relay packet"; } } } } // container interface-id } // container option } // container dhcp6 container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf dad-snooping { type boolean; default "false"; description "Duplicate address detection packets that are snooped to populate new neighbor entries for SLAAC hosts"; } leaf neighbor-limit { type int32 { range "1..8"; } default "1"; description "Maximum number of neighbor entries learned per SLAAC host"; } } // container neighbor-discovery container router-advertisements { description "Enter the router-advertisements context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf max-advertisement-interval { type types-sros:time-duration { range "900..1800"; } units "seconds"; default "1800"; description "Maximum advertisement interval"; } leaf min-advertisement-interval { type types-sros:time-duration { range "900..1350"; } units "seconds"; default "900"; description "Minimum advertisement interval"; } leaf force-mcast { type enumeration { enum "ip" { value 1; } enum "ip-mac" { value 2; } } description "Send router advertisement to a multicast address instead of unicast for IPoE"; } container options { description "Enter the options context"; leaf current-hop-limit { type uint32 { range "0..255"; } default "64"; description "Hop limit to be advertised"; } leaf managed-configuration { type boolean; default "false"; description "Managed address configuration flag"; } leaf mtu { type union { type uint32 { range "1280..9212"; } type enumeration { enum "not-included" { value 0; } } } units "bytes"; default "not-included"; description "Advertised MTU value"; } leaf other-stateful-configuration { type boolean; default "false"; description "Other stateful configuration flag"; } leaf reachable-time { type types-sros:time-duration { range "0..3600000"; } units "milliseconds"; default "0"; description "Neighbor discovery reachable time that is advertised for this group interface"; } leaf retransmit-timer { type uint32 { range "0..1800000"; } units "seconds"; default "0"; description "Neighbor discovery retransmit timer that is advertised for this group interface"; } leaf router-lifetime { type union { type types-sros:time-duration { range "2700..9000"; } type enumeration { enum "no-default-router" { value 0; } } } units "seconds"; default "4500"; description "Router lifetime"; } container dns { description "Enter the dns context"; leaf include-rdnss { type boolean; default "false"; description "Include the RDNSS server option 25"; } leaf rdnss-lifetime { type union { type types-sros:time-duration { range "900..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "3600"; description "Maximum time for the RDNSS address to remain valid"; } } // container dns } // container options container prefix-options { description "Enter the prefix-options context"; leaf autonomous { type boolean; default "false"; description "Value of the autonomous flag"; } leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container prefix-options } // container router-advertisements container router-solicit { description "Enter the router-solicit context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router-solicit based authentication"; } leaf inactivity-timer { type union { type types-sros:time-duration { range "1..31536000"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "300"; description "Time before an inactive host is removed"; } leaf min-auth-interval { type types-sros:time-duration { range "1..360000"; } units "seconds"; default "300"; description "Minimum interval between two consecutive authentication attempts for the same host"; } leaf user-db { type types-sros:named-item; description "Local user-database that is used for router solicit based authentication"; } } // container router-solicit } // container ipv6 container cflowd-parameters { description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:cflowd-sampling; } description "Unicast or multicast traffic"; } leaf type { type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } } // list sampling } // container cflowd-parameters container ipoe-linking { description "Enter the ipoe-linking context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IPoE host linking"; } leaf gratuitous-router-advertisement { type boolean; default "false"; description "Send unsolicited router advertisement after DHCP setup"; } leaf shared-circuit-id { type boolean; default "false"; description "Block DHCPv6 with unknown interface-id (circuit-id) until a circuit-id is learned from DHCP."; } } // container ipoe-linking container ipoe-session { description "Enter the ipoe-session context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of IPoE session management"; } leaf description { type types-sros:description; description "Text description"; } leaf ipoe-session-policy { type types-sros:named-item; description "IPoE Session policy to be used for new sessions"; } leaf user-db { type types-sros:named-item; description "Local user database that is used to (pre-)authenticate new sessions"; } leaf session-limit { type uint32 { range "1..500000"; } description "Maximum number of sessions on this group interface"; } leaf sap-session-limit { type uint32 { range "1..131071"; } description "Maximum number of sessions per SAP"; } leaf min-auth-interval { type types-submgt:ipoe-session-min-auth-interval; units "seconds"; default "infinite"; description "Minimum time between two authentication attempts"; } leaf radius-session-timeout { type types-submgt:ipoe-session-radius-session-timeout; description "Session timeout attribute to be interpreted"; } leaf stateless-redundancy { type boolean; default "false"; description "Remove IPoE sessions when the system becomes stand-by in a stateless multi-chassis redundancy setup"; } container force-auth { description "Enter the force-auth context"; leaf cid-change { type boolean; description "Ignore min-auth-interval when circuit ID changed"; } leaf rid-change { type boolean; description "Ignore min-auth-interval when remote ID changed"; } } // container force-auth } // container ipoe-session container brg { description "Enter the brg context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BRG"; } leaf authenticated-brg-only { type boolean; default "false"; description "Allow BRGs that have been pre-authenticated"; } leaf default-brg-profile { type types-sros:named-item; description "Default BRG profile that can be overridden during authentication"; } } // container brg container pppoe { description "Enter the pppoe context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PPPoE"; } leaf description { type types-sros:description; description "Text description"; } leaf anti-spoof { type types-submgt:pppoe-anti-spoof; default "mac-sid"; description "PPPoE anti-spoof filtering"; } leaf policy { type types-sros:named-item; description "PPPoE policy"; } leaf session-limit { type uint32 { range "1..262143"; } default "1"; description "Maximum PPPoE sessions"; } leaf sap-session-limit { type uint32 { range "1..131071"; } default "1"; description "Maximum PPPoE sessions per SAP"; } leaf python-policy { type types-sros:named-item; description "Python policy used to modify PPPoE packets"; } leaf user-db { type types-sros:named-item; description "Local user database for authentication"; } container dhcp-client { description "Enter the dhcp-client context"; leaf client-id { type enumeration { enum "mac-pppoe-session-id" { value 2; } } description "The type of information that DHCP option 61 will contain"; } } // container dhcp-client } // container pppoe container data-trigger { description "Enter the data-trigger context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of data-triggered host creation"; } } // container data-trigger container local-address-assignment { description "Enter the local-address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignment"; } container ipv4 { description "Enter the ipv4 context"; leaf server { type types-sros:named-item; description "Local DHCP server that contains pools for local address assignment"; } leaf-list default-pool { type types-sros:named-item; max-elements 2; ordered-by user; description "Default pools"; } container client-applications { description "Enter the client-applications context"; leaf ppp { type boolean; default "false"; description "Request local addresses for PPP IPCP hosts"; } leaf ipoe { type boolean; default "false"; description "Request local addresses for non-DHCP/managed IPoE hosts"; } } // container client-applications } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf server { type types-sros:named-item; description "Local DHCPv6 server that contains pools for local address assignment"; } container client-applications { description "Enter the client-applications context"; leaf ppp-slaac { type boolean; default "false"; description "Request local addresses for PPP SLAAC hosts"; } leaf ipoe-wan { type boolean; default "false"; description "Request local addresses for IPoE IA NA hosts"; } leaf ipoe-slaac { type boolean; default "false"; description "Request local addresses for IPoE SLAAC hosts"; } } // container client-applications } // container ipv6 } // container local-address-assignment list srrp { key "srrp-id"; max-elements 1; description "Enter the srrp list instance"; leaf srrp-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4294967295"; } } description "SRRP instance ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of SRRP"; } leaf description { type types-sros:description; description "Text description"; } leaf gw-mac { type types-sros:mac-unicast-address; description "Gateway MAC address"; } leaf keep-alive-interval { type uint32 { range "1..100"; } units "deciseconds"; default "10"; description "Interval between SRRP advertisements"; } leaf message-path { type types-sros:sap; description "SAP to use as the SRRP message path"; } leaf-list policy { type uint32 { range "1..9999"; } max-elements 2; ordered-by user; description "VRRP priority control policy associated with the SRRP"; } leaf priority { type uint32 { range "1..254"; } default "100"; description "Priority for this interface at this level"; } leaf send-fib-population-packets { type enumeration { enum "all" { value 1; } enum "outer-tag-only" { value 2; } } default "all"; description "Mode used to send FIB population packets (such as ARP) on switchover"; } leaf preempt { type boolean; default "true"; description "Allow the SRRP instance to override an existing master"; } leaf one-garp-per-sap { type boolean; default "false"; description "Send one gratuitous ARP to each SAP"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf group-name { type types-sros:named-item; description "Operational group name"; } leaf priority-step { type uint8 { range "1..10"; } description "Value with which the group priority increases or decreases if the state of this messaging-SAP changes."; } } // container monitor-oper-group container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-address; sros-ext:immutable; description "Destination IPv4 prefix"; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Name of interface running BFD"; } } // container bfd-liveness } // list srrp container sap-parameters { description "Enter the sap-parameters context"; leaf description { type types-sros:description; description "Text description"; } leaf anti-spoof { type enumeration { enum "ip-mac" { value 3; } enum "nh-mac" { value 4; } } default "ip-mac"; description "Anti-spoofing type."; } container sub-sla-mgmt { description "Enter the sub-sla-mgmt context"; leaf sub-ident-policy { type types-sros:external-named-item; description "Subscriber identification policy"; } container defaults { description "Enter the defaults context"; leaf sub-profile { type types-sros:external-named-item; description "Default subscriber profile"; } leaf sla-profile { type types-sros:external-named-item; description "Default SLA profile"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "String to be used as default subscriber ID"; } } case auto-id { leaf auto-id { type empty; description "Subscriber ID that is autogenerated"; } } } } // container subscriber-id } // container defaults } // container sub-sla-mgmt } // container sap-parameters container bonding-parameters { description "Enter the bonding-parameters context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ESM connection bonding"; } leaf fpe { type uint32 { range "1..64"; } description "FPE that provisions bonding functionality"; } container multicast { description "Enter the multicast context"; leaf connection { type types-submgt:multicast-bonding-connection; default "use-incoming"; description "Multicast connection"; } } // container multicast list connection { key "connection-index"; description "Enter the connection list instance"; leaf connection-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:bonding-connection-index; } description "Bonding connection index"; } leaf service { type types-services:service-name; description "Connection service"; } } // list connection } // container bonding-parameters container gtp-parameters { description "Enter the gtp-parameters context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of GTP access"; } leaf fpe { type uint32 { range "1..64"; } description "PE that provisions the GTP user interface"; } } // container gtp-parameters container wpp { presence "Enter the 'wpp' context"; description "Enable the wpp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WPP"; } leaf restore-to-initial-on-disconnect { type boolean; default "true"; description "Restore initial profiles after a host has disconnected"; } leaf user-db { type types-sros:named-item; description "User database"; } leaf lease-time { type types-sros:time-duration { range "10..315446399"; } default "600"; description "Lease time"; } leaf triggered-hosts { type boolean; default "false"; description "Enable/disable triggered hosts"; } container portal { description "Enter the portal context"; choice portal { case portal { leaf router-instance { type string; description "The virtual router instance of the WPP portal for this interface"; } leaf name { type types-sros:named-item; description "Name for the WPP portal of the interface"; } } case portal-group { leaf portal-group { type types-sros:named-item; description "WPP portal group for this interface"; } } } } // container portal container initial { description "Enter the initial context"; leaf sub-profile { type types-sros:external-named-item; description "Initial subscriber profile"; } leaf sla-profile { type types-sros:external-named-item; description "Initial SLA profile"; } } // container initial } // container wpp list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy"; } leaf anti-spoof { type types-services:anti-spoof-option-ip; default "source-ip-and-mac-addr"; description "Type of anti-spoof filtering"; } leaf calling-station-id { type types-sros:string-not-all-spaces { length "1..64"; } description "Calling station ID"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy for SAP"; } leaf host-admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of hosts"; } leaf host-lockout-policy { type types-sros:named-item; description "Host lockout policy"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } choice oper-group-association { case oper-group { leaf oper-group { type types-sros:named-item; description "Operational group"; } } case monitor-oper-group { leaf monitor-oper-group { type types-sros:named-item; description "Monitor operational group"; } } } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter } // container ingress container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } } // container agg-rate } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container fwd-wholesale { description "Enter the fwd-wholesale context"; leaf pppoe-service { type types-services:service-name; description "PPPoE service name"; } } // container fwd-wholesale container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container sub-sla-mgmt { description "Enter the sub-sla-mgmt context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of subscriber management on this SAP"; } leaf sub-ident-policy { type types-sros:external-named-item; description "Subscriber identification policy used on this SAP"; } leaf subscriber-limit { type types-submgt:sap-subscriber-limit; default "1"; description "Maximum number of subscribers on this SAP"; } container defaults { description "Enter the defaults context"; leaf sub-profile { type types-sros:external-named-item; description "Default subscriber profile used for subscribers on this SAP"; } leaf sla-profile { type types-sros:external-named-item; description "Default SLA profile for hosts on this SAP"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case auto-id { leaf auto-id { type empty; description "Use auto-generated subscriber identification string"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID as default subscriber identification string"; } } case string { leaf string { type types-submgt:subscriber-id; description "Default subscriber identification string for the SAP"; } } } } // container subscriber-id container int-dest-id { description "Enter the int-dest-id context"; choice int-dest-id { case top-q-tag { leaf top-q-tag { type empty; description "Use the top Q-tag of this SAP"; } } case string { leaf string { type types-submgt:int-dest-id; description "Use the configured string"; } } } } // container int-dest-id } // container defaults container single-sub-parameters { description "Enter the single-sub-parameters context"; leaf profiled-traffic-only { type boolean; default "false"; description "Include all traffic in subscriber profile"; } container non-sub-traffic { presence "Enter the 'non-sub-traffic' context"; description "Enable the non-sub-traffic context"; leaf sub-profile { type types-sros:external-named-item; description "Subscriber ID profile applied for all non-subscriber traffic"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile applicable for all non-subscriber traffic"; } leaf subscriber-id { type types-submgt:subscriber-id; sros-ext:immutable; description "Subscriber ID applied for all non-subscriber traffic"; } } // container non-sub-traffic } // container single-sub-parameters } // container sub-sla-mgmt container static-host { description "Enter the static-host context"; container mac-learning { description "Enter the mac-learning context"; leaf data-triggered { type boolean; default "false"; description "Enable learning of MAC addresses from data packets."; } leaf single-mac { type boolean; default "false"; description "Enforce the limit of a single MAC address per SAP, learned by means of ICMPv6."; } } // container mac-learning list ipv4 { key "ip mac"; description "Enter the ipv4 list instance"; leaf ip { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IP address used by the static host."; } leaf mac { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address; } description "MAC address of the static host."; } leaf rip-policy { type types-sros:named-item; description "RIP policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type types-sros:external-named-item; description "Sub-profile name"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id container shcv { description "Enter the shcv context"; } // container shcv list managed-route { key "prefix"; max-elements 16; description "Add a list entry for managed-route"; leaf prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "Managed route prefix."; } } // list managed-route } // list ipv4 list ipv6 { key "prefix mac"; description "Enter the ipv6 list instance"; leaf prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-prefix; } description "IPv6 prefix"; } leaf mac { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address; } description "MAC address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type types-sros:external-named-item; description "Sub-profile name"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf mac-linking { type types-sros:ipv4-unicast-address; description "IPv6 host associated with the IPv4 host through the learned MAC address"; } leaf retail-svc-id { type types-services:external-service-id; description "Retail service ID"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id container shcv { description "Enter the shcv context"; } // container shcv list managed-route { key "ipv6-prefix"; max-elements 16; description "Enter the managed-route list instance"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-prefix; } description "Managed route prefix."; } leaf metric { type uint32; default "0"; description "Managed route metric."; } } // list managed-route } // list ipv6 } // container static-host container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; description "Time during which the system continues to track inactive hosts"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of multicast groups to be tracked"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of multicast groups to be tracked per group"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of multicast sources to be tracked"; } leaf router-alert-check { type boolean; default "true"; description "Enable IGMP router alert check option"; } } // container igmp-host-tracking container default-host { description "Enter the default-host context"; list ipv4 { key "address prefix-length"; description "Enter the ipv4 list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IPv4 default host address."; } leaf prefix-length { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..32"; } } description "IPv4 address prefix length"; } leaf next-hop { type types-sros:ipv4-unicast-address; sros-ext:immutable; description "Next-hop used to forward default-host traffic on this SAP."; } } // list ipv4 list ipv6 { key "address prefix-length"; description "Enter the ipv6 list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "IPv6 default host address."; } leaf prefix-length { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..128"; } } description "IPv6 address prefix length"; } leaf next-hop { type types-sros:ipv6-unicast-address; sros-ext:immutable; description "Next-hop used to forward default-host traffic on this SAP."; } } // list ipv6 } // container default-host } // list sap container wlan-gw { description "Enter the wlan-gw context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WLAN Gateway"; } leaf oper-down-on-group-degrade { type boolean; default "false"; description "Bring interface operationally down when its ISA WLAN Gateway becomes degraded"; } leaf tcp-mss-adjust { type uint32 { range "160..10240"; } units "bytes"; description "Value for the TCP Maximum Segment Size (MSS) option if not present, or if value is higher"; } leaf wlan-gw-group { type types-isa:wlan-gw-group-id; description "Identifier of the WLAN Gateway ISA group to terminate UEs for this group interface"; } leaf gateway-router { type string; description "The routing instance where the tunneled UE traffic is routed, or empty to specify that the routing instance corresponding to the service containing this interface is used."; } container lanext { presence "Enter the 'lanext' context"; description "Enable the lanext context"; leaf max-bd { type uint32 { range "1..131071"; } default "131071"; description "Maximum number of bridge domains"; } } // container lanext container learn-ap-mac { presence "Enter the 'learn-ap-mac' context"; description "Enable the learn-ap-mac context"; leaf delay-auth { type boolean; default "false"; description "Delay authentication until ARP/ND is answered or timed out, after which AP MAC can be included"; } } // container learn-ap-mac container mobility { description "Enter the mobility context"; leaf hold-time { type types-sros:time-duration { range "0..255"; } units "seconds"; default "5"; description "Minimum time between two mobility events for a single UE"; } leaf inter-tunnel-type { type boolean; default "false"; description "Enable mobility between terminating tunnel types"; } leaf inter-vlan { type boolean; default "false"; description "Enable mobility within different VLANs within the same range of VLAN Q-tags"; } container trigger { description "Enter the trigger context"; leaf data { type boolean; default "false"; description "Use data traffic as mobility trigger"; } leaf iapp { type boolean; default "false"; description "Use Inter Access Point Protocol (IAPP) messages as mobility trigger"; } leaf control { type boolean; default "false"; description "Use control traffic (DHCP, DHCPv6, and ICMPv6-RS messages) as mobility trigger"; } } // container trigger } // container mobility container tunnel-egress-qos { description "Enter the tunnel-egress-qos context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of egress QoS for WLAN-GW tunnels"; } leaf agg-rate-limit { type types-qos:pir-rate-override; default "max"; description "Aggregate rate limit of each shaper associated with this interface"; } leaf granularity { type types-wlangw:shaping-granularity; default "per-tunnel"; description "Granularity of the egress shaping for WLAN Gateway"; } leaf hold-time { type union { type types-sros:time-duration { range "1..86400"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Minimum time that the egress QoS resources associated with a tunnel (such as a shaper) are held"; } leaf multi-client-only { type boolean; default "false"; description "Tunnel traffic to shape when multiple UEs use this tunnel"; } leaf qos { type types-qos:qos-policy-name; description "Identifier of the egress QoS policy associated with each tunnel of this interface"; } leaf scheduler-policy { type types-sros:named-item; description "Identifier of the egress scheduler policy associated with each tunnel of this interface"; } } // container tunnel-egress-qos container tunnel-encaps { description "Enter the tunnel-encaps context"; leaf learn-l2tp-cookie { type union { type enumeration { enum "never" { value 2; description "The cookie will never be interpreted."; } enum "always" { value 3; description "The cookie will always be interpreted, regardless of the value of its first two octets."; } } type types-sros:hex-string { length "6"; } } default "never"; description "System that learns the cookie from L2TP tunnels terminating on this interface"; } } // container tunnel-encaps container l2-ap { description "Enter the l2-ap context"; leaf auto-sub-id-fmt { type enumeration { enum "include-ap-tags" { value 0; } enum "sap-only" { value 1; } } default "include-ap-tags"; description "Format of the auto-generated subscriber ID"; } leaf default-encap-type { type enumeration { enum "null" { value 1; } enum "dot1q" { value 2; } enum "qinq" { value 10; } } default "null"; description "Default encapsulation type for Layer 2 access points"; } list access-point { key "sap-id"; description "Enter the access-point list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP ID for the Layer 2 access point"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2 access points"; } leaf encap-type { type enumeration { enum "null" { value 1; } enum "dot1q" { value 2; } enum "qinq" { value 10; } } description "Service encapsulation type of this access point"; } leaf epipe-sap-template { type types-sros:named-item; description "Parameters template for the internal connections with the ISA cards"; } } // list access-point } // container l2-ap list gateway-address { key "address"; max-elements 10; description "Enter the gateway-address list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-without-local-address; } description "Gateway endpoint address of the WLAN Gateway tunnel"; } container purpose { description "Enter the purpose context"; leaf xconnect { type boolean; default "false"; description "Use tunnel IP address for crosse-connect traffic"; } } // container purpose } // list gateway-address list vlan-range { key "range"; description "Enter the vlan-range list instance"; leaf range { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { pattern "((([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-5]))(\\.\\.(([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-5])))?)|(unmatched)"; } } description "IEEE 802.1q VLAN tag range"; } leaf http-redirect-policy { type types-sros:named-item; description "Default HTTP redirect policy for portal authentication"; } leaf idle-timeout-action { type types-wlangw:idle-timeout-action; default "remove"; description "Action to perform when the idle timeout expires"; } leaf nat-policy { type types-sros:external-named-item; description "NAT policy for DSM and ISA portal authentication"; } leaf retail-service { type types-services:service-name; description "Default retail service for new UEs in this range"; } container authentication { description "Enter the authentication context"; leaf hold-time { type types-sros:time-duration { range "0..3600"; } units "seconds"; default "5"; description "Minimum time to hold a UE down after an authentication failure"; } leaf on-control-plane { type boolean; default "false"; description "Trigger authentication on first control plane packet instead of first data packet"; } leaf policy { type types-sros:named-item; description "RADIUS policy for authentication"; } leaf vlan-mismatch-timeout { type types-sros:time-duration { range "5..60"; } units "seconds"; description "Timeout value for the RADIUS proxy cache if a packet is received with a non-matching VLAN"; } } // container authentication container data-triggered-ue-creation { description "Enter the data-triggered-ue-creation context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of data-triggered UE creation"; } container create-proxy-cache-entry { description "Enter the create-proxy-cache-entry context"; leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } container proxy-server { presence "Enter the 'proxy-server' context"; description "Enable the proxy-server context"; leaf router-instance { type string; description "The router instance of the RADIUS Proxy server."; } leaf name { type types-sros:named-item; description "RADIUS Proxy server name"; } } // container proxy-server } // container create-proxy-cache-entry } // container data-triggered-ue-creation container l2-service { presence "Enter the 'l2-service' context"; description "Enable the l2-service context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Layer 2 service for VLAN range"; } leaf description { type types-sros:description; description "Text description"; } leaf service { type types-services:service-name; description "Layer 2 service associated with the range"; } } // container l2-service container dhcp4 { description "Enter the dhcp4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv4 protocol"; } leaf l2-aware-ip-address { type union { type types-sros:ipv4-unicast-address; type enumeration { enum "from-pool" { value 0; description "The l2-aware IP address should be allocated from a pool."; } } } description "L2-Aware NAT inside IP address"; } leaf-list dns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "DNS servers signaled in DHCP"; } leaf-list nbns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "NetBIOS servers signaled in DHCP"; } container lease-time { description "Enter the lease-time context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "IP address lease time for the UE after successful (portal) authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "IP address lease time that is provided before and during (portal) authentication to the UE"; } } // container lease-time } // container dhcp4 container dhcp6 { description "Enter the dhcp6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the protocol"; } container preferred-lifetime { description "Enter the preferred-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Preferred signaled lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Preferred signaled lifetime when the UE is not fully authenticated"; } } // container preferred-lifetime container valid-lifetime { description "Enter the valid-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Signaled valid lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Valid signaled lifetime when the UE is not fully authenticated"; } } // container valid-lifetime } // container dhcp6 container slaac { description "Enter the slaac context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the protocol"; } container preferred-lifetime { description "Enter the preferred-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Preferred signaled lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Preferred signaled lifetime when the UE is not fully authenticated"; } } // container preferred-lifetime container valid-lifetime { description "Enter the valid-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Signaled valid lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Valid signaled lifetime when the UE is not fully authenticated"; } } // container valid-lifetime } // container slaac container dsm { description "Enter the dsm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DSM"; } leaf accounting-policy { type types-sros:named-item; description "ISA Radius Policy for accounting"; } container accounting-update { presence "Enter the 'accounting-update' context"; description "Enable the accounting-update context"; leaf interval { type uint32 { range "5..259200"; } units "minutes"; description "Time interval between consecutive Interim accounting update messages"; } } // container accounting-update container ingress { description "Enter the ingress context"; leaf policer { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "Policer for ingress traffic"; } leaf ip-filter { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "Filter for ingress traffic"; } } // container ingress container egress { description "Enter the egress context"; leaf policer { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "Policer for egress traffic"; } } // container egress container one-time-redirect { description "Enter the one-time-redirect context"; leaf url { type types-wlangw:one-time-http-redirect-url; description "URL for redirected HTTP protocol packets that can be overridden by AAA"; } leaf port { type uint32 { range "1..65535"; } default "80"; description "Destination port of packets considered for HTTP redirect"; } } // container one-time-redirect } // container dsm container vrgw { description "Enter the vrgw context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of VRGW"; } container brg { description "Enter the brg context"; leaf default-brg-profile { type types-sros:named-item; description "Default BRG profile to use if the AAA server does not specify one"; } leaf authenticated-brg-only { type boolean; default "false"; description "Only allow hosts from BRGs pre-authenticated using the radius-proxy"; } } // container brg container lanext { description "Enter the lanext context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of HLE"; } leaf assistive-address-resolution { type boolean; default "false"; description "ISA assists in address resolution"; } leaf bd-mac-prefix { type string { length "8"; pattern "[0-9a-f][02468ace](:[0-9a-f]{2}){2}"; } description "Prefix from which BD MACs for MAC translation are derived"; } leaf mac-translation { type boolean; default "false"; description "Hide MAC address of home host by translating it to BD MAC"; } container access { description "Enter the access context"; leaf max-mac { type uint32 { range "1..256"; } default "20"; description "Maximum number of MAC entries in bridged domain from access side"; } leaf multi-access { type boolean; default "false"; description "Allow multiple access points"; } leaf policer { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "Policer for ingress home traffic"; } } // container access container network { description "Enter the network context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of network"; } leaf max-mac { type uint32 { range "1..64"; } default "20"; description "Maximum number of MAC entries in bridged domain from network side"; } leaf policer { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "Policer for ingress data center traffic"; } } // container network } // container lanext } // container vrgw container xconnect { description "Enter the xconnect context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the cross-connect"; } container accounting { description "Enter the accounting context"; leaf policy { type types-sros:named-item; description "ISA RADIUS accounting policy for cross-connected UEs"; } leaf update-interval { type types-sros:time-duration { range "5..259200"; } units "minutes"; description "Time between consecutive Interim accounting update messages"; } leaf mobility-updates { type boolean; default "false"; description "Accounting updates triggered by mobility"; } } // container accounting } // container xconnect } // list vlan-range } // container wlan-gw } // list group-interface container wlan-gw { presence "Enter the 'wlan-gw' context"; description "Enable the wlan-gw context"; container pool-manager { description "Enter the pool-manager context"; leaf wlan-gw-group { type types-isa:wlan-gw-group-id; description "Identifier of the WLAN Gateway ISA group on which the prefixes are installed"; } container dhcp6-client { description "Enter the dhcp6-client context"; leaf source-ip { type union { type enumeration { enum "use-interface-ip" { value 0; } } type types-sros:ipv6-address; } default "use-interface-ip"; description "Source IP address that is used by the DHCPv6 client"; } leaf-list servers { type types-sros:ipv6-unicast-address; max-elements 8; description "DHCPv6 servers that are used for requesting addresses"; } container lease-query { presence "Enter the 'lease-query' context"; description "Enable the lease-query context"; leaf max-retries { type uint32 { range "0..10"; } default "2"; description "Maximum number of retries before the lease query assumes that no existing subnets were allocated"; } } // container lease-query container dhcpv4-nat { description "Enter the dhcpv4-nat context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container dhcpv4-nat container ia-na { description "Enter the ia-na context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container ia-na container slaac { description "Enter the slaac context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container slaac } // container dhcp6-client container watermarks { description "Enter the watermarks context"; leaf high { type uint32 { range "51..99"; } default "95"; description "New prefix that is used when the ISA level reaches high watermark"; } leaf low { type uint32 { range "50..98"; } default "90"; description "Prefix that is released if the usage level without this prefix is below the low watermark"; } } // container watermarks } // container pool-manager container redundancy { description "Enter the redundancy context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of redundancy"; } leaf export { type types-sros:ipv4-unicast-prefix; description "Route to export to peer"; } leaf monitor { type types-sros:ipv4-unicast-prefix; description "Peer route to monitor"; } } // container redundancy } // container wlan-gw } // list subscriber-interface list video-interface { key "interface-name"; description "Enter the video-interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name { length "1..29"; } } description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the video interface"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting Policy"; } leaf description { type types-sros:description; description "Text description"; } leaf cpu-protection { type types-services:cpm-prot-policy-id; description "CPU protection policy"; } leaf multicast-service { type types-services:external-service-id; description "Service ID of the associated multicast service."; } leaf output-format { type enumeration { enum "udp" { value 1; } enum "rtp-udp" { value 2; } } default "rtp-udp"; description "Output format"; } container rt-client { presence "Enter the 'rt-client' context"; description "Enable the rt-client context"; leaf src-address { type types-sros:ipv4-unicast-address; description "An IP address for the RT client."; } } // container rt-client container adi { description "Enter the adi context"; container scte30 { description "Enter the scte30 context"; list ad-server { key "address"; max-elements 4; description "Add a list entry for ad-server"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Ad server address"; } } // list ad-server container local-address { presence "Enter the 'local-address' context"; description "Enable the local-address context"; leaf control { type types-sros:ipv4-unicast-address; description "Control"; } leaf data { type types-sros:ipv4-unicast-address; description "Data"; } } // container local-address } // container scte30 } // container adi container video-sap { presence "Enter the 'video-sap' context"; description "Enable the video-sap context"; leaf video-group-id { type uint32 { range "1..4"; } sros-ext:immutable; description "Group id for the video interface."; } container egress { description "Enter the egress context"; container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type types-qos:qos-policy-name; description "SAP-egress QoS policy"; } } // container qos } // container egress container ingress { description "Enter the ingress context"; container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type types-qos:qos-policy-name; description "SAP-ingress QoS policy"; } } // container qos } // container ingress } // container video-sap list address { key "ip-address"; max-elements 16; description "Add a list entry for address"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-prefix-with-host-bits; } description "IPv4 address for the video interface within the service"; } } // list address list channel { key "mcast-address source"; description "Enter the channel list instance"; leaf mcast-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Multicast channel address"; } leaf source { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Unicast source address"; } leaf channel-name { type types-sros:named-item; description "max 32 chars."; } leaf description { type types-sros:description; description "Text description"; } leaf scte35-action { type enumeration { enum "forward" { value 1; } enum "drop" { value 2; } } default "forward"; description "Enable/disable forwarding scte 35 cue avails."; } list zone-channel { key "zone-mcast-address zone-source"; description "Enter the zone-channel list instance"; leaf zone-mcast-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Multicast zone channel address"; } leaf zone-source { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Unicast source address"; } leaf adi-channel-name { type types-sros:named-item; description "max 32 chars."; } } // list zone-channel } // list channel } // list video-interface } // list ies container ipfix { description "Enter the ipfix context"; list export-policy { key "name"; description "Enter the export-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf template-format { type enumeration { enum "format1" { value 1; } enum "format2" { value 2; } } default "format1"; description "Template format used by this IPFIX export policy"; } list collector { key "router-instance ip-address"; description "Enter the collector list instance"; leaf router-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Router where the collector is reached"; } leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IPv4 address of the collector"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the collector"; } leaf mtu { type types-l2tp:base-ppp-mtu; default "1500"; description "Maximum Transmission Unit"; } leaf source-ip-address { type types-sros:ipv4-unicast-address; description "Source IP address used in communication towards the collector"; } leaf refresh-timeout { type types-sros:time-duration { range "240..86400"; } units "seconds"; default "600"; description "IPFIX template refresh time"; } } // list collector } // list export-policy } // container ipfix list ipipe { key "service-name"; description "Enter the ipipe list instance"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type types-services:customer-name; sros-ext:immutable; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf vpn-id { type types-services:vpn-id; sros-ext:immutable; description "VPN identifier for the service"; } leaf vc-switching { type boolean; sros-ext:immutable; default "false"; description "PW switching signaling to be used by the spokes in the service"; } leaf service-mtu { type int32 { range "1..9194"; } default "1500"; description "MTU size"; } container ce-address-discovery { presence "Enter the 'ce-address-discovery' context"; description "Enable the ce-address-discovery context"; } // container ce-address-discovery list endpoint { key "name"; max-elements 2; description "Enter the endpoint list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service endpoint name"; } leaf description { type types-sros:description; description "Text description"; } leaf revert-time { type types-services:revert-time; default "immediate"; description "Time to wait before reverting back to the primary spoke-sdp defined on this service endpoint"; } leaf hold-time-active { type types-services:hold-time-active; description "Time to hold the active state before entering standby when a local MC-LAG SAP goes down"; } leaf standby-signaling { type enumeration { enum "master" { value 1; } } description "Whether PW standby bit will be sent to T-LDP peer whenever spoke-SDPs of this endpoint are selected as standby."; } } // list endpoint list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy for SAP"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf endpoint { type types-sros:named-item; description "Name of the endpoint"; } leaf ce-address { type types-sros:ip-address; description "Enter CE Address."; } leaf mac-refresh { type uint32 { range "0..65535"; } default "14400"; description "Enter MAC refresh interval."; } leaf mac { type yang:mac-address; default "00:00:00:00:00:00"; description "MAC addressof an IPIPE Ethernet SAP."; } leaf use-broadcast-mac { type boolean; default "false"; description "Enable/disable use of broadcast MAC on SAP."; } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Queue group instance"; } } // container fp-redirect-group container overrides { description "Enter the overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-queue-id; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container aggregate-policer { description "Enter the aggregate-policer context"; leaf rate { type types-qos:aggr-policer-rate; default "max"; description "Aggregate policer rate to be used in kbps"; } leaf burst { type types-qos:aggr-policer-burst; default "default"; description "Aggregate policer burst"; } leaf cir { type types-qos:aggr-policer-cir; description "Aggregate policer cir to be used in kbps"; } leaf cbs { type types-qos:aggr-policer-cbs; description "Aggregate policer cbs"; } } // container aggregate-policer } // container ingress container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port redirect queue group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of port queue group"; } } // container port-redirect-group container overrides { description "Enter the overrides context"; leaf hs-secondary-shaper { type types-sros:named-item; description "HS Secondary Shaper"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf secondary-shaper { status obsolete; type types-sros:named-item; description "Secondary shaper for the HSMDA queue"; } leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Packet byte offset for HSMDA queue"; } leaf wrr-policy { status obsolete; type types-sros:named-item; description "WRR policy for the HSMDA queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Egress HSMDA queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; description "Administrative PIR rate."; } leaf slope-policy { status obsolete; type types-sros:named-item; description "Name of the slope-policy which is used to override the default slope-policy for the named buffer pool."; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "Weight value for the HSMDA queue"; } } // list queue } // container hsmda-queues list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type types-sros:named-item; description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:sap-egress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hs-wrr-group-id; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Weight of scheduling class."; } choice rate-or-percent-rate { case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "Administrative PIR."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent."; } } } } // list hs-wrr-group } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Egress vlan-qos-policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Egress-remark-policy name"; } } // container egress-remark-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter ID"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter identifier"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag } // list sap list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf control-word { type boolean; default "false"; description "Whether the use of the control-word is preferred or not. This bit is exchanged with LDP peer during pseudowire negotiation time."; } leaf bandwidth { type types-services:sdp-bind-bandwidth; units "kilobps"; default "0"; description "Bandwidth that is reserved for this SDP binding"; } leaf ce-address { type types-sros:ip-address; description "Enter CE Address."; } leaf bfd-template { status obsolete; type types-sros:named-item; description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos } // container egress container endpoint { description "Enter the endpoint context"; leaf name { type types-sros:named-item; description "Name of endpoint to which this SDP bind is attached."; } leaf precedence { type types-services:sdp-precedence; default "4"; description "Precedence of this SDP bind when there are multiple SDP binds attached to one service endpoint"; } } // container endpoint container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type types-sros:named-item; description "BFD template associated with the SDP binding"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd } // list spoke-sdp } // list ipipe container nat { description "Enter the nat context"; list firewall-policy { key "name"; max-elements 2048; description "Enter the firewall-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:external-named-item; } description "Firewall policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf filtering { type types-nat:filtering; description "Filtering"; } choice address-location { case l2-outside { leaf l2-outside { type empty; description "Allow NAT policy to use Layer 2 outside service instead of Layer 3 outside service"; } } case domain { container domain { description "Enter the domain context"; leaf router-instance { type string; description "Virtual router instance"; } leaf name { type types-sros:named-item; description "Domain name"; } } // container domain } } container alg { description "Enter the alg context"; leaf ftp { type boolean; default "true"; description "FTP ALG"; } leaf rtsp { type boolean; default "false"; description "RTSP ALG"; } leaf sip { type boolean; default "false"; description "SIP ALG"; } } // container alg container port-limits { description "Enter the port-limits context"; leaf forwarding { type uint16 { range "1..64"; } description "Maximum number of port forwarding entries"; } } // container port-limits container priority-sessions { description "Enter the priority-sessions context"; container fc { description "Enter the fc context"; leaf be { type boolean; default "false"; description "Assign BE forwarding class as containing prioritized traffic"; } leaf l2 { type boolean; default "false"; description "Assign L2 forwarding class as containing prioritized traffic"; } leaf af { type boolean; default "false"; description "Assign AF forwarding class as containing prioritized traffic"; } leaf l1 { type boolean; default "false"; description "Assign L1 forwarding class as containing prioritized traffic"; } leaf h2 { type boolean; default "false"; description "Assign H2 forwarding class as containing prioritized traffic"; } leaf ef { type boolean; default "false"; description "Assign EF forwarding class as containing prioritized traffic"; } leaf h1 { type boolean; default "false"; description "Assign H1 forwarding class as containing prioritized traffic"; } leaf nc { type boolean; default "false"; description "Assign NC forwarding class as containing prioritized traffic"; } } // container fc } // container priority-sessions container session-limits { description "Enter the session-limits context"; leaf max { type uint16 { range "1..65535"; } default "65535"; description "Session limit"; } leaf reserved { type uint16 { range "1..65534"; } description "Number of sessions reserved for prioritized sessions"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; description "Percentage for high watermark"; } leaf low { type types-sros:percent; description "Percentage for low watermark"; } } // container watermarks } // container session-limits container tcp { description "Enter the tcp context"; leaf mss-adjust { type uint32 { range "160..10240"; } description "Value to adjust the TCP Maximum Segment Size (MSS) option"; } } // container tcp container timeouts { description "Enter the timeouts context"; leaf icmp6-query { type types-sros:time-duration { range "60..240"; } default "60"; description "Timeout applied to an ICMPv6 Query session"; } leaf sip { type types-sros:time-duration { range "10..7200"; } default "120"; description "SIP inactive media timeout"; } leaf unknown-protocol { type types-sros:time-duration { range "60..86400"; } sros-ext:isa-auto-clear-on-modify; default "300"; description "Timeout for flows with an unknown protocol"; } container tcp { description "Enter the tcp context"; leaf established { type types-sros:time-duration { range "60..86400"; } default "7440"; description "Idle timeout applied to a TCP session in the established state"; } leaf rst { type types-sros:time-duration { range "0..240"; } default "0"; description "Time after receiving RST before a TCP session can return to the state LISTEN"; } leaf syn { type types-sros:time-duration { range "6..86400"; } default "15"; description "Timeout applied to a TCP session when synchronizing its initial sequence"; } leaf time-wait { type types-sros:time-duration { range "0..240"; } default "0"; description "Timeout applied to a TCP session in the time-wait state"; } leaf transitory { type types-sros:time-duration { range "60..86400"; } default "240"; description "Idle timeout applied to a TCP session in a transitory state"; } } // container tcp container udp { description "Enter the udp context"; leaf normal { type types-sros:time-duration { range "60..86400"; } default "300"; description "UDP mapping timeouts"; } leaf dns { type types-sros:time-duration { range "15..86400"; } default "15"; description "Timeout applied to a UDP session with destination port 53"; } leaf initial { type types-sros:time-duration { range "10..300"; } default "15"; description "UDP mapping timeout applied to new sessions"; } } // container udp } // container timeouts container udp { description "Enter the udp context"; leaf inbound-refresh { type boolean; default "false"; description "Extend UDP session timeout on inbound traffic"; } } // container udp container unknown-protocols { description "Enter the unknown-protocols context"; choice unknown-protocols { case all { leaf all { type empty; description "Flows with any protocol that are allowed"; } } case protocol { leaf-list protocol { type uint8 { range "0..255"; } max-elements 8; description "Protocol number"; } } } } // container unknown-protocols } // list firewall-policy list prefix-list { key "name"; description "Enter the prefix-list list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Maps prefixes to policies"; } leaf application { type types-nat:prefix-list-application; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "Prefix list for the application"; } list prefix { key "ip-prefix"; max-elements 1024; description "Enter the prefix list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-prefix; } description "NAT prefix"; } leaf nat-policy { type types-sros:external-named-item; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "NAT policy for LSN"; } } // list prefix } // list prefix-list list pcp-server-policy { key "name"; description "Enter the pcp-server-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of this policy"; } leaf description { type types-sros:description; description "Text description"; } leaf max-description-size { type uint32 { range "1..64"; } default "64"; description "Maximum length of mapping descriptions made by the PCP servers"; } leaf reuse-external-ip-address { type boolean; default "false"; description "Reuse the same external IP address for NAT subscriber"; } container lifetime { description "Enter the lifetime context"; leaf minimum { type uint32 { range "60..86399"; } default "120"; description "Minimum lifetime of explicit mappings made by the PCP servers"; } leaf maximum { type uint32 { range "61..86400"; } default "86400"; description "Maximum lifetime of explicit mappings made by the PCP servers"; } } // container lifetime container version { description "Enter the version context"; leaf minimum { type uint16 { range "1..255"; } default "1"; description "Minimum protocol version supported by the PCP servers"; } leaf maximum { type uint16 { range "1..255"; } default "1"; description "Maximum protocol version supported by the PCP servers"; } } // container version container opcode { description "Enter the opcode context"; leaf announce { type boolean; default "false"; description "Process the announce PCP requests"; } leaf get { type boolean; default "false"; description "Process the get PCP requests"; } leaf map { type boolean; default "false"; description "Process the map PCP requests"; } } // container opcode container option { description "Enter the option context"; leaf description { type boolean; default "false"; description "Text description"; } leaf next { type boolean; default "false"; description "Process the PCP requests that contain the next option"; } leaf port-reservation { type boolean; default "false"; description "Process the PCP requests that contain the prefer failure option"; } leaf port-set { type boolean; default "false"; description "Support the PORT_SET option in PCP MAP requests"; } leaf prefer-failure { type boolean; default "false"; description "Process the PCP requests that contain the port reservation option"; } leaf third-party { type boolean; default "false"; description "Process the PCP requests that contain the third party option"; } } // container option } // list pcp-server-policy container syslog { description "Enter the syslog context"; list export-policy { key "name"; max-elements 8; description "Enter the export-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf facility { type types-nat:syslog-facility; default "local0"; description "Facility number in the PRI part of the NAT SYSLOG messages"; } leaf log-prefix { type types-sros:named-item; default "TMNX"; description "Optional prefix text in the MSG part of the NAT syslog messages"; } leaf max-tx-delay { type uint32 { range "0..100"; } units "deciseconds"; default "3"; description "Maximum time a syslog message delays in the output buffer to aggregate multiple events"; } leaf mtu { type uint32 { range "512..9000"; } default "1500"; description "Maximum transmission unit"; } leaf rate-limit { type uint32 { range "10..2147483647"; } units "packets per second"; description "Frame limit"; } leaf severity-level { type types-nat:syslog-severity-level; default "info"; description "Severity level in the PRI part of the syslog messages"; } container include { description "Enter the include context"; leaf destination-ip { type boolean; default "false"; description "Include the translated destination IP address"; } leaf foreign-ip { type boolean; default "false"; description "Include the original destination IPv4 address"; } leaf foreign-port { type boolean; default "false"; description "Include the original destination port"; } leaf nat-policy-name { type boolean; default "false"; description "Include the nat-policy name"; } leaf sub-id { type boolean; default "false"; description "Subscriber ID in subscriber aware NAT"; } } // container include list collector { key "router-instance ip-address"; max-elements 2; description "Enter the collector list instance"; leaf router-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Router instance"; } leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IPv4 address of the collector"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the collector node"; } leaf destination-port { type types-sros:tcp-udp-port-non-zero; default "514"; description "Destination port"; } leaf ipv4-source-address { type types-sros:ipv4-unicast-address; description "IPv4 source address"; } } // list collector } // list export-policy } // container syslog list classifier { key "name"; max-elements 8; description "Enter the classifier list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "The name that identifies this NAT classifier"; } leaf description { type types-sros:description; description "Text description"; } container default { description "Enter the default context"; leaf dnat-ip-address { type types-sros:ipv4-unicast-address; sros-ext:isa-auto-clear-on-modify; description "Default destination IP address for matching entries with dNAT action"; } container action { description "Enter the action context"; choice action-choice { default "forward-option"; case dnat-option { leaf dnat { status obsolete; type empty; sros-ext:isa-auto-clear-on-modify; description "Default destination IP address for DNAT action"; } leaf dnat-ip-address { status obsolete; type types-sros:ipv4-unicast-address; sros-ext:isa-auto-clear-on-modify; description "Substitute IP address for the destination IP address of the packets matching this classifier"; } container destination-nat { presence "Enter the 'destination-nat' context"; description "Enable the destination-nat context"; leaf ip-address { type types-sros:ipv4-unicast-address; description "The IP address to substitute for the destination IP address of the packets matching this classifier entry"; } } // container destination-nat } case forward-option { leaf forward { type empty; sros-ext:isa-auto-clear-on-modify; description "Forward mode of operation"; } } } } // container action } // container default list entry { key "id"; max-elements 32; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1000"; } } description "Classifier rule entry ID"; } leaf description { type types-sros:description; description "Text description"; } container action { description "Enter the action context"; choice action-choice { case dnat-option { leaf dnat { status obsolete; type empty; sros-ext:isa-auto-clear-on-modify; description "Destination-NAT mode of operation"; } leaf dnat-ip-address { status obsolete; type types-sros:ipv4-unicast-address; sros-ext:isa-auto-clear-on-modify; description "Substitute IP address for the destination IP address of the packets matching this classifier"; } container destination-nat { presence "Enter the 'destination-nat' context"; description "Enable the destination-nat context"; leaf ip-address { type types-sros:ipv4-unicast-address; description "The IP address to substitute for the destination IP address of the packets matching this classifier entry"; } } // container destination-nat } case forward-option { leaf forward { type empty; sros-ext:isa-auto-clear-on-modify; description "Forward mode of operation"; } } } } // container action container match { description "Enter the match context"; leaf protocol { type types-nat:ip-protocol-tcp-or-udp; sros-ext:isa-auto-clear-on-modify; description "IP protocol to match"; } leaf foreign-ip-address { type types-sros:ipv4-unicast-address; sros-ext:isa-auto-clear-on-modify; description "The foreign IP address to match. The foreign IP address is the destination IP address in the packet received at the inside, before address translation."; } container dst-port-range { description "Enter the dst-port-range context"; leaf start { type types-sros:tcp-udp-port; sros-ext:isa-auto-clear-on-modify; default "0"; description "Start of port number"; } leaf end { type types-sros:tcp-udp-port; sros-ext:isa-auto-clear-on-modify; default "65535"; description "End port number"; } } // container dst-port-range } // container match } // list entry } // list classifier list nat-policy { key "name"; max-elements 4096; description "Enter the nat-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:external-named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf block-limit { type uint16 { range "1..40"; } default "1"; description "Maximum number of port blocks per subscriber"; } leaf filtering { type types-nat:filtering; description "Filtering"; } leaf port-forwarding-range-end { type uint16 { range "1023..65535"; } default "1023"; description "End of the port forwarding range"; } choice address-location { case pool { container pool { description "Enter the pool context"; leaf router-instance { type string; sros-ext:isa-auto-clear-on-modify; description "The virtual router instance of the pool."; } leaf name { type types-sros:named-item; sros-ext:isa-auto-clear-on-modify; description "NAT pool name"; } } // container pool } case dnat { container dnat-only { presence "Enter the 'dnat-only' context"; description "Enable the dnat-only context"; leaf router-instance { type string; sros-ext:isa-auto-clear-on-modify; description "Attribute router-instance for dnat-only"; } choice isa { case nat { leaf nat-group { type uint32 { range "1..4"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "NAT group"; } } case wlan-gw { leaf wlan-gw-group { type types-isa:wlan-gw-group-id; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "WLAN GW group used for NAT"; } } } } // container dnat-only } case l2-outside { leaf l2-outside { type empty; description "Allow NAT policy to use Layer 2 outside service instead of Layer 3 outside service"; } } } container alg { description "Enter the alg context"; leaf ftp { type boolean; default "true"; description "FTP ALG"; } leaf pptp { type boolean; default "false"; description "PPTP ALG"; } leaf rtsp { type boolean; default "false"; description "RTSP ALG"; } leaf sip { type boolean; default "false"; description "SIP ALG"; } } // container alg container dnat { description "Enter the dnat context"; leaf classifier { type types-sros:named-item; sros-ext:isa-auto-clear-on-modify; description "NAT classifier"; } } // container dnat container flow-log-policy { description "Enter the flow-log-policy context"; leaf ipfix { type types-sros:named-item; description "IPFIX export policy"; } leaf syslog { type types-sros:named-item; description "SYSLOG export policy"; } } // container flow-log-policy container port-limits { description "Enter the port-limits context"; leaf forwarding { type uint16 { range "1..64"; } description "Maximum number of port forwarding entries"; } leaf reserved { type uint16 { range "1..65534"; } description "Number of ports reserved for prioritized sessions"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; description "Percentage for high watermark"; } leaf low { type types-sros:percent; description "Percentage for low watermark"; } } // container watermarks } // container port-limits container priority-sessions { description "Enter the priority-sessions context"; container fc { description "Enter the fc context"; leaf be { type boolean; default "false"; description "Assign BE forwarding class as containing prioritized traffic"; } leaf l2 { type boolean; default "false"; description "Assign L2 forwarding class as containing prioritized traffic"; } leaf af { type boolean; default "false"; description "Assign AF forwarding class as containing prioritized traffic"; } leaf l1 { type boolean; default "false"; description "Assign L1 forwarding class as containing prioritized traffic"; } leaf h2 { type boolean; default "false"; description "Assign H2 forwarding class as containing prioritized traffic"; } leaf ef { type boolean; default "false"; description "Assign EF forwarding class as containing prioritized traffic"; } leaf h1 { type boolean; default "false"; description "Assign H1 forwarding class as containing prioritized traffic"; } leaf nc { type boolean; default "false"; description "Assign NC forwarding class as containing prioritized traffic"; } } // container fc } // container priority-sessions container session-limits { description "Enter the session-limits context"; leaf max { type uint16 { range "1..65535"; } default "65535"; description "Session limit"; } leaf reserved { type uint16 { range "1..65534"; } description "Number of sessions reserved for prioritized sessions"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; description "Percentage for high watermark"; } leaf low { type types-sros:percent; description "Percentage for low watermark"; } } // container watermarks } // container session-limits container tcp { description "Enter the tcp context"; leaf reset-unknown { type boolean; default "false"; description "Send of TCP RST upon non-SYN TCP message for unknown flow"; } leaf mss-adjust { type uint32 { range "160..10240"; } description "Value to adjust the TCP Maximum Segment Size (MSS) option"; } } // container tcp container timeouts { description "Enter the timeouts context"; leaf icmp-query { type types-sros:time-duration { range "60..240"; } default "60"; description "Timeout applied to an ICMP Query session"; } leaf sip { type types-sros:time-duration { range "10..7200"; } default "120"; description "SIP inactive media timeout"; } leaf subscriber-retention { type types-sros:time-duration { range "0..1440"; } units "minutes"; default "0"; description "Time a subscribers' IP address is kept after all hosts and port blocks have expired"; } container tcp { description "Enter the tcp context"; leaf established { type types-sros:time-duration { range "60..86400"; } default "7440"; description "Idle timeout applied to a TCP session in the established state"; } leaf rst { type types-sros:time-duration { range "0..240"; } default "0"; description "Time after receiving RST before a TCP session can return to the state LISTEN"; } leaf syn { type types-sros:time-duration { range "6..86400"; } default "15"; description "Timeout applied to a TCP session when synchronizing its initial sequence"; } leaf time-wait { type types-sros:time-duration { range "0..240"; } default "0"; description "Timeout applied to a TCP session in the time-wait state"; } leaf transitory { type types-sros:time-duration { range "60..86400"; } default "240"; description "Idle timeout applied to a TCP session in a transitory state"; } } // container tcp container udp { description "Enter the udp context"; leaf normal { type types-sros:time-duration { range "60..86400"; } default "300"; description "UDP mapping timeouts"; } leaf dns { type types-sros:time-duration { range "15..86400"; } default "15"; description "Timeout applied to a UDP session with destination port 53"; } leaf initial { type types-sros:time-duration { range "10..300"; } default "15"; description "UDP mapping timeout applied to new sessions"; } } // container udp } // container timeouts container udp { description "Enter the udp context"; leaf inbound-refresh { type boolean; default "false"; description "Extend UDP session timeout on inbound traffic"; } } // container udp } // list nat-policy list up-nat-policy { key "name"; max-elements 32; description "Enter the up-nat-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:external-named-item; } description "NAT UP policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf filtering { type types-nat:filtering; description "Filtering"; } container alg { description "Enter the alg context"; leaf ftp { type boolean; default "true"; description "FTP ALG"; } leaf pptp { type boolean; default "false"; description "PPTP ALG"; } leaf rtsp { type boolean; default "false"; description "RTSP ALG"; } leaf sip { type boolean; default "false"; description "SIP ALG"; } } // container alg container flow-log-policy { description "Enter the flow-log-policy context"; leaf ipfix { type types-sros:named-item; description "IPFIX export policy"; } } // container flow-log-policy container port-limits { description "Enter the port-limits context"; leaf reserved { type uint16 { range "1..65534"; } description "Number of ports reserved for prioritized sessions"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; description "Percentage for high watermark"; } leaf low { type types-sros:percent; description "Percentage for low watermark"; } } // container watermarks } // container port-limits container priority-sessions { description "Enter the priority-sessions context"; container fc { description "Enter the fc context"; leaf be { type boolean; default "false"; description "Assign BE forwarding class as containing prioritized traffic"; } leaf l2 { type boolean; default "false"; description "Assign L2 forwarding class as containing prioritized traffic"; } leaf af { type boolean; default "false"; description "Assign AF forwarding class as containing prioritized traffic"; } leaf l1 { type boolean; default "false"; description "Assign L1 forwarding class as containing prioritized traffic"; } leaf h2 { type boolean; default "false"; description "Assign H2 forwarding class as containing prioritized traffic"; } leaf ef { type boolean; default "false"; description "Assign EF forwarding class as containing prioritized traffic"; } leaf h1 { type boolean; default "false"; description "Assign H1 forwarding class as containing prioritized traffic"; } leaf nc { type boolean; default "false"; description "Assign NC forwarding class as containing prioritized traffic"; } } // container fc } // container priority-sessions container session-limits { description "Enter the session-limits context"; leaf max { type uint16 { range "1..65535"; } default "65535"; description "Session limit"; } leaf reserved { type uint16 { range "1..65534"; } description "Number of sessions reserved for prioritized sessions"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; description "Percentage for high watermark"; } leaf low { type types-sros:percent; description "Percentage for low watermark"; } } // container watermarks } // container session-limits container tcp { description "Enter the tcp context"; leaf reset-unknown { type boolean; default "false"; description "Send of TCP RST upon non-SYN TCP message for unknown flow"; } leaf mss-adjust { type uint32 { range "160..10240"; } description "Value to adjust the TCP Maximum Segment Size (MSS) option"; } } // container tcp container timeouts { description "Enter the timeouts context"; leaf icmp-query { type types-sros:time-duration { range "60..240"; } default "60"; description "Timeout applied to an ICMP Query session"; } leaf sip { type types-sros:time-duration { range "10..7200"; } default "120"; description "SIP inactive media timeout"; } leaf subscriber-retention { type types-sros:time-duration { range "0..1440"; } units "minutes"; default "0"; description "Time a subscribers' IP address is kept after all hosts and port blocks have expired"; } container tcp { description "Enter the tcp context"; leaf established { type types-sros:time-duration { range "60..86400"; } default "7440"; description "Idle timeout applied to a TCP session in the established state"; } leaf rst { type types-sros:time-duration { range "0..240"; } default "0"; description "Time after receiving RST before a TCP session can return to the state LISTEN"; } leaf syn { type types-sros:time-duration { range "6..86400"; } default "15"; description "Timeout applied to a TCP session when synchronizing its initial sequence"; } leaf time-wait { type types-sros:time-duration { range "0..240"; } default "0"; description "Timeout applied to a TCP session in the time-wait state"; } leaf transitory { type types-sros:time-duration { range "60..86400"; } default "240"; description "Idle timeout applied to a TCP session in a transitory state"; } } // container tcp container udp { description "Enter the udp context"; leaf normal { type types-sros:time-duration { range "60..86400"; } default "300"; description "UDP mapping timeouts"; } leaf dns { type types-sros:time-duration { range "15..86400"; } default "15"; description "Timeout applied to a UDP session with destination port 53"; } leaf initial { type types-sros:time-duration { range "10..300"; } default "15"; description "UDP mapping timeout applied to new sessions"; } } // container udp } // container timeouts container udp { description "Enter the udp context"; leaf inbound-refresh { type boolean; default "false"; description "Extend UDP session timeout on inbound traffic"; } } // container udp } // list up-nat-policy container deterministic-script { description "Enter the deterministic-script context"; leaf location { type types-sros:ftp-tftp-url { length "1..180"; } description "URL for the generated script."; } } // container deterministic-script container map-t { description "Enter the map-t context"; list domain { key "name"; max-elements 63; description "Enter the domain list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "MAP-T domain name"; } leaf description { type types-sros:description; description "Text description"; } leaf dmr-prefix { type types-sros:ipv6-prefix; description "The Default Mapping Rule prefix"; } leaf mtu { type uint32 { range "160..8686"; } default "8686"; description "Configure the MTU"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MAP domain"; } leaf tcp-mss-adjust { type uint32 { range "0 | 160..8626"; } default "0"; description "The value to adjust the TCP Maximum Segment Size (MSS) option"; } container ip-fragmentation { description "Enter the ip-fragmentation context"; leaf v6-frag-header { type boolean; default "false"; description "This specifies if an IPv6 fragmentation header is added when a non-fragmented IPv4 packet with the Don't Fragment bit cleared is translated into IPv6"; } } // container ip-fragmentation list mapping-rule { key "rule-name"; max-elements 16383; description "Enter the mapping-rule list instance"; leaf rule-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "The name that identifies this mapping rule"; } leaf description { type types-sros:description; description "Text description"; } leaf ipv4-prefix { type types-sros:ipv4-prefix; description "The IPv4 prefix"; } leaf ea-length { type uint32 { range "0..48"; } default "0"; description "The length of the EA bits field in the End-user IPv6 prefix part of the IPv6 Map Address"; } leaf psid-offset { type uint32 { range "0..16"; } default "6"; description "The offset of the Port Set ID (PSID) within a 16 bits wide port space"; } leaf rule-prefix { type types-sros:ipv6-prefix; description "The IPv6 prefix"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MAP rule"; } } // list mapping-rule } // list domain } // container map-t } // container nat list sdp { key "sdp-id"; description "Enter the sdp list instance"; leaf sdp-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-id; } description "Service Distribution Point (SDP) identifier"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of SDP"; } leaf delivery-type { type types-services:sdp-delivery-type; sros-ext:immutable; description "Specifies the type of delivery used by this SDP"; } leaf accounting-policy { type types-log:log-policy-id; description "Policy to use to collect accounting statistics on this SDP. The value zero indicates that default accounting policy to be used, if one exists."; } leaf adv-mtu-override { type boolean; default "false"; description "Whether the advertised MTU of a VLL spoke SDP bind should include the 14-byte L2 header, so that it is backward compatible with pre-2.0 software."; } leaf booking-factor { type uint32 { range "0..1000"; } default "100"; description "Percentage of the SDP max available bandwidth for VLL call admission. When the value is zero (0), no new VLL spoke-sdp bindings with non-zero bandwidth are permitted with this SDP. It is used to calculate the max SDP available bandwidth. Overbooking, >100% is allowed."; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics for this SDP"; } leaf local-end { type types-sros:ip-address; description "IP address of the local end of the tunnel defined by this SDP."; } leaf metric { type uint32 { range "1..65535"; } description "Metric to be used within the Tunnel Table Manager for decision making purposes. When multiple SDPs going to the same destination exist, this value is used as a tie-breaker by Tunnel Table Manager users like MP-BGP to select route with lower value."; } leaf network-domain { type types-sros:named-item; description "Network-domain name this SDP is associated with. The network-domain defines the list of network interfaces this SDP can send traffic on."; } leaf path-mtu { type int32 { range "576..9782"; } units "bytes"; description "Desired largest service frame size (in octets) that can be transmitted through this SDP to the far-end ESR, without requiring the packet to be fragmented. The default value of zero indicates that the path MTU should be computed dynamically from the corresponding MTU of the tunnel."; } leaf pbb-etype { type types-services:etype-value; default "0x88E7"; description "Ethertype used in frames sent out on this SDP when VC type is 'vlan' for Provider Backbone Bridging frames as 0xXXYY with range 0x0600-0xFFFF."; } leaf signaling { type enumeration { enum "off" { value 1; } enum "tldp" { value 2; } enum "bgp" { value 3; } } description "Signaling protocol used to obtain the ingress and egress labels used in frames transmitted and received on this SDP. When the value is 'off' then the labels are manually assigned at the time the SDP is bound to a service. Default value of this object is set to 'off' when SDP delivery-type is set to 'l2tpv3' otherwise default value is set to 'tldp'."; } leaf tunnel-far-end { type types-sros:ip-address; description "IP address of the remote of the tunnel defined by this SDP."; } leaf vlan-vc-etype { type types-services:etype-value; default "0x8100"; description "Ethertype used in frames sent out this SDP, when the VC type is 'vlan' as 0xXXYY with range 0x0600-0xFFFF."; } leaf allow-fragmentation { type boolean; default "false"; description "Whether to allow gre or gre-eth-bridged encapsulated packets to be sent without setting the DF bit."; } leaf ldp { type boolean; default "false"; description "Enable LDP-signaled LSPs"; } leaf bgp-tunnel { type boolean; default "false"; description "Whether the transport tunnel is BGP."; } leaf sr-isis { type boolean; default "false"; description "Whether Segment Routing is enabled for IS-IS."; } leaf sr-ospf { type boolean; default "false"; description "Whether Segment Routing is enabled for OSPF."; } leaf weighted-ecmp { type boolean; default "false"; description "Allow weighted load-balancing on an SDP"; } container keep-alive { description "Enter the keep-alive context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of keepalive mechanism for the SDP"; } leaf hello-time { type int32 { range "1..3600"; } units "seconds"; default "10"; description "How often the SDP Echo Request messages are transmitted on this SDP."; } leaf hold-down-time { type int32 { range "0..3600"; } units "seconds"; default "10"; description "Amount of time to wait before the keep-alive operating status is eligible to enter the 'alive' state."; } leaf maximum-drop-count { type int32 { range "1..5"; } default "3"; description "Maximum number of consecutive SDP Echo Request messages that can be unacknowledged before the keep-alive protocol reports a fault."; } leaf message-length { type int32 { range "40..9198"; } description "Length of the SDP Echo Request messages transmitted on this SDP. The default value of zero indicates that the message length should be equal to the SDP's operating path MTU"; } leaf timeout { type int32 { range "1..10"; } units "seconds"; default "5"; description "Number of seconds to wait for an SDP Echo Response message before declaring a timeout."; } } // container keep-alive container mixed-lsp-mode { presence "Enter the 'mixed-lsp-mode' context"; description "Enable the mixed-lsp-mode context"; leaf revert-time { type types-services:revert-time; default "immediate"; description "Time to wait before reverting back from LDP to the configured LSPs, after having failed over to LDP."; } } // container mixed-lsp-mode container source-bmac-lsb { description "Enter the source-bmac-lsb context"; leaf value { type types-services:bmac-lsb-no-zero; description "16 least significant bits (lsb as 00:00 or 00-00) which when combined with the 32 most significant bits of the PBB source-bmac forms the virtual backbone MAC address."; } leaf control-pw-vc-id { type types-services:vc-id; description "Spoke-SDP VC identifier to be used as a control pseudo-wire to determine whether Shortest Path Bridging Module (SPBM) advertises the virtual backbone MAC."; } } // container source-bmac-lsb container far-end { description "Enter the far-end context"; choice ip-or-node { case ip { leaf ip-address { type types-sros:ip-address; description "Specifies the IP address of the far-end."; } } } } // container far-end container class-forwarding { presence "Enter the 'class-forwarding' context"; description "Enable the class-forwarding context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of class-based forwarding on this SDP"; } leaf default-lsp { type types-sros:named-item-64; description "LSP name that is used as a default when class-based forwarding is enabled on this SDP."; } leaf enforce-diffserv-lsp-fc { type boolean; default "false"; description "Whether service manager must validate with RSVP the support of the FC by the LSP."; } leaf multicast-lsp { type types-sros:named-item-64; description "LSP name that all multicast traffic will be forwarded on when class-based forwarding is enabled on this SDP."; } list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:fc-name; } description "Forwarding class for which this mapping is defined."; } leaf lsp { type types-sros:named-item-64; description "LSP name that traffic corresponding to the forwarding class will be forwarded on. It MUST be specified at row creation time."; } } // list fc } // container class-forwarding container pw-port { description "Enter the pw-port context"; leaf binding-port { type types-sros:port-named; description "Binding port"; } } // container pw-port list sdp-group { key "group-name"; description "Add a list entry for sdp-group"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service Distribution Point (SDP) SDP Group Name."; } } // list sdp-group list lsp { key "lsp-name"; max-elements 16; description "Add a list entry for lsp"; leaf lsp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "LSP name."; } } // list lsp } // list sdp list vpls { key "service-name"; description "Enter the vpls list instance"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type types-services:customer-name; sros-ext:immutable; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf vpn-id { type types-services:vpn-id; sros-ext:immutable; description "VPN identifier for the service"; } leaf service-mtu { type int32 { range "1..9782"; } default "1514"; description "MTU size"; } leaf etree { type boolean; sros-ext:immutable; default "false"; description "Use VPLS as an E-Tree VPLS"; } leaf m-vpls { type boolean; sros-ext:immutable; default "false"; description "Specify whether this is a management VPLS"; } leaf pbb-type { type types-services:pbb-type; sros-ext:immutable; description "PBB VPLS type"; } leaf mcast-ipv6-snooping-scope { type enumeration { enum "sg-based" { value 1; } enum "mac-based" { value 2; } } default "mac-based"; description "IPv6 multicast snooping scope"; } leaf multicast-info-policy { type types-sros:named-item; description "Multicast information policy"; } leaf shcv-policy-ipv4 { type types-sros:external-named-item; description "Subscriber host connectivity verification policy for IPv4"; } leaf temp-flooding { type int32 { range "3..600"; } units "seconds"; description "Temporary flooding"; } container fdb { description "Enter the fdb context"; leaf discard-unknown { type boolean; default "false"; description "Discard packets with unknown destination MAC addresses"; } leaf mac-subnet-length { type int32 { range "24..48"; } default "48"; description "MAC sub-net length."; } leaf selective-learning { type boolean; default "false"; description "Selective learning status."; } container table { description "Enter the table context"; leaf high-wmark { type int32 { range "0..100"; } default "95"; description "High watermark for the FDB table"; } leaf low-wmark { type int32 { range "0..100"; } default "90"; description "Low watermark for the FDB table"; } leaf size { type int32 { range "1..511999"; } default "250"; description "Maximum MAC entries in the FDB"; } } // container table container mac-learning { description "Enter the mac-learning context"; leaf learning { type boolean; default "true"; description "Enable learning of new MAC addresses"; } leaf aging { type boolean; default "true"; description "Enable aging of MAC addresses"; } leaf local-age-time { type int32 { range "60..86400"; } default "300"; description "Aging time for locally learned MAC addresses"; } leaf remote-age-time { type int32 { range "60..86400"; } default "900"; description "Aging time for locally learned MAC addresses"; } } // container mac-learning container mac-move { description "Enter the mac-move context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MAC move"; } leaf move-frequency { type uint32 { range "1..10"; } default "2"; description "Move frequency to be used, in 5-second intervals. For the default move-frequency of 2 (moves per second), the system will disable a VPLS sap/spoke-sdp as soon as the number of relearns detected has reached, for instance, 10 relearns within a 5 second interval"; } leaf retry-count { type union { type uint32 { range "1..255"; } type enumeration { enum "unlimited" { value 0; } } } default "3"; description "Number of retries for reenabling."; } leaf hold-down-time { type uint32 { range "0..600"; } units "seconds"; default "10"; description "Time to wait before a SAP that has been disabled after exceeding the maximum re-learn rate is re-enabled."; } leaf primary-cumulative-factor { type uint32 { range "3..10"; } default "3"; description "Factor for the primary ports defining how many MAC-relearn periods should be used to measure the MAC-relearn rate. This rate must be exceeded during consecutive periods before the corresponding ports (SAP and/or spoke-SDP) are blocked by the MAC-move feature."; } leaf secondary-cumulative-factor { type uint32 { range "2..9"; } default "2"; description "Factor for the secondary ports defining how many MAC-relearn periods should be used to measure the MAC-relearn rate. This rate must be exceeded during consecutive periods before the corresponding ports (SAP and/or spoke-SDP) are blocked by the MAC-move feature."; } list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier"; } leaf level { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } description "Configure primary or secondary port level"; } } // list sap list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf level { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } description "Configure primary or secondary port level"; } } // list spoke-sdp } // container mac-move container static-mac { description "Enter the static-mac context"; list mac { key "mac-address"; description "Enter the mac list instance"; leaf mac-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address-no-zero; } description "Static MAC address to SAP/SDP-binding or black-hole"; } leaf monitor { type enumeration { enum "none" { value 0; } enum "forward-status" { value 1; } } sros-ext:immutable; default "none"; description "Entity to be monitored to decide whether this entry can be installed in the FDB"; } choice destination { case spoke-sdp { leaf spoke-sdp { type types-services:sdp-bind-id; sros-ext:immutable; description "Spoke SDP bind associated with this MAC"; } } case mesh-sdp { leaf mesh-sdp { type types-services:sdp-bind-id; sros-ext:immutable; description "Mesh SDP bind associated with this MAC"; } } case sap { leaf sap { type types-sros:sap; sros-ext:immutable; description "SAP associated with this MAC"; } } case blackhole { leaf blackhole { type empty; sros-ext:immutable; description "Create a static FDB entry for the MAC address to black-hole traffic"; } } case endpoint { leaf endpoint { type types-sros:named-item; sros-ext:immutable; description "Endpoint associated with this MAC"; } } } } // list mac } // container static-mac } // container fdb container mfib { description "Enter the mfib context"; container table { description "Enter the table context"; leaf high-wmark { type int32 { range "0..100"; } default "95"; description "High watermark for the MFIB table"; } leaf low-wmark { type int32 { range "0..100"; } default "90"; description "Low watermark for the MFIB table"; } leaf size { type int32 { range "1..40959"; } description "Maximum SG entries in the MFIB"; } } // container table } // container mfib container mac-flush { description "Enter the mac-flush context"; container tldp { description "Enter the tldp context"; leaf propagate { type boolean; default "false"; description "Propagate MAC flush frames from LDP peer to all mesh-SDP and Spoke-SDPs."; } leaf send-on-failure { type boolean; default "false"; description "Send MAC withdraw message on SAP/Spoke-SDP failure"; } } // container tldp } // container mac-flush container vxlan { description "Enter the vxlan context"; leaf source-vtep { type types-sros:ip-unicast-address; description "Vxlan source virtual tunnel endpoint information"; } list instance { key "vxlan-instance"; description "Enter the instance list instance"; leaf vxlan-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2"; } } description "VXLAN instance"; } leaf vni { type types-services:vxlan-vni; sros-ext:immutable; description "VNI of the VXLAN"; } leaf source-vtep-security { type boolean; default "false"; description "Enable/disable source vtep security"; } leaf rx-discard-on-ndf { type enumeration { enum "bm" { value 0; } enum "bum" { value 1; } enum "none" { value 2; } } default "bm"; description "Received multicast traffic type discarded on NDF"; } container assisted-replication { description "Enter the assisted-replication context"; choice role { case leaf { container leaf { presence "Enter the 'leaf' context"; description "Enable the leaf context"; leaf acttime { type uint32 { range "1..255"; } units "seconds"; description "Time for the leaf to wait before sending traffic to a new replicator"; } } // container leaf } case replicator { leaf replicator { type empty; description "AR role as replicator"; } } } } // container assisted-replication container network { description "Enter the network context"; container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress } // container network list egress-vtep { key "ip-address"; description "Add a list entry for egress-vtep"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "configure egress vtep address for entry"; } } // list egress-vtep container fdb { description "Enter the fdb context"; leaf discard-unknown-source { type boolean; default "false"; description "Enable/disable discarding of frames with unknown source"; } leaf maximum-mac-addresses { type types-services:max-mac-addr; description "Maximum number of MAC entries in the FDB from this vxlan instance"; } leaf protected-src-mac-violation-action { type types-services:protected-src-mac-violation-df-action; description "Action when a relearn request for a protected MAC is received"; } container mac-learning { description "Enter the mac-learning context"; leaf learning { type boolean; default "false"; description "Enable/disable learning of new MAC addresses"; } leaf aging { type boolean; default "false"; description "Enable/disable aging of MAC addresses"; } } // container mac-learning } // container fdb container igmp-snooping { description "Enter the igmp-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Configure as a multicast router port."; } } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Configure as a multicast router port."; } } // container mld-snooping } // list instance } // container vxlan container proxy-arp { presence "Enter the 'proxy-arp' context"; description "Enable the proxy-arp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the proxy"; } leaf dynamic-populate { type boolean; default "false"; description "Populate proxy ARP entries from snooped GARP/ARP/ND messages on SAPs/SDP-bindings"; } leaf age-time { type union { type int32 { range "60..86400"; } type enumeration { enum "never" { value 0; } } } units "seconds"; default "never"; description "Aging timer for proxy entries, where entries are flushed upon timer expiry"; } leaf send-refresh { type union { type int32 { range "120..86400"; } type enumeration { enum "never" { value 0; } } } default "never"; description "Time at which to send a refresh message"; } leaf table-size { type int32 { range "1..16383"; } default "250"; description "Maximum number of learned and static entries allowed in the proxy table of this service"; } container evpn { description "Enter the evpn context"; leaf route-tag { type int32 { range "0|1..255"; } default "0"; description "Route tag used on export policies to match MAC/IP routes generated by proxy-ARP or proxy-ND module"; } container flood { description "Enter the flood context"; leaf unknown-arp-req { type boolean; default "true"; description "Flood ARP-requests (with source squelching) if there is no active proxy-ARP entry for requested IP"; } leaf gratuitous-arp { type boolean; default "true"; description "Flood GARP-requests/GARP-replies to the EVPN"; } } // container flood } // container evpn container duplicate-detect { description "Enter the duplicate-detect context"; leaf anti-spoof-mac { type types-sros:mac-unicast-address-no-zero; description "MAC address to replace the proxy-ARP/ND offending entry's MAC"; } leaf window { type int32 { range "1..15"; } units "minutes"; default "3"; description "Time to monitor the MAC address in the anti-spoofing mechanism"; } leaf num-moves { type int32 { range "3..10"; } default "5"; description "Number of moves required to declare a duplicate entry"; } leaf hold-down-time { type union { type uint32 { range "2..60"; } type enumeration { enum "max" { value -1; } } } units "minutes"; default "9"; description "Hold down time for a duplicate entry"; } leaf static-blackhole { type boolean; default "false"; description "Consider anti-spoof MAC as black-hole static MAC in FDB"; } } // container duplicate-detect container static-arp { description "Enter the static-arp context"; list ip-address { key "ipv4-address"; description "Enter the ip-address list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Proxy ARP IP address"; } leaf mac { type types-sros:mac-unicast-address-no-zero; description "Proxy ARP MAC address for static entry"; } } // list ip-address } // container static-arp container dynamic-arp { description "Enter the dynamic-arp context"; list ip-address { key "ipv4-address"; description "Enter the ip-address list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Proxy ARP IP address"; } leaf mac-list { type types-sros:named-item; description "MAC list for the dynamic entry"; } leaf resolve-retry-time { type int32 { range "1..60"; } units "minutes"; default "5"; description "Frequency at which the resolve messages are sent"; } } // list ip-address } // container dynamic-arp } // container proxy-arp container proxy-nd { presence "Enter the 'proxy-nd' context"; description "Enable the proxy-nd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the proxy"; } leaf dynamic-populate { type boolean; default "false"; description "Populate proxy ARP entries from snooped GARP/ARP/ND messages on SAPs/SDP-bindings"; } leaf age-time { type union { type int32 { range "60..86400"; } type enumeration { enum "never" { value 0; } } } units "seconds"; default "never"; description "Aging timer for proxy entries, where entries are flushed upon timer expiry"; } leaf send-refresh { type union { type int32 { range "120..86400"; } type enumeration { enum "never" { value 0; } } } default "never"; description "Time at which to send a refresh message"; } leaf table-size { type int32 { range "1..16383"; } default "250"; description "Maximum number of learned and static entries allowed in the proxy table of this service"; } container evpn { description "Enter the evpn context"; leaf route-tag { type int32 { range "0|1..255"; } default "0"; description "Route tag used on export policies to match MAC/IP routes generated by proxy-ARP or proxy-ND module"; } leaf advertise-neighbor-type { type enumeration { enum "router" { value 1; } enum "host" { value 2; } } default "router"; description "Advertisement type of static or dynamic entries in the EVPN"; } container flood { description "Enter the flood context"; leaf unknown-neighbor-solicitation { type boolean; default "true"; description "Flood unsolicited Neighbor Solicitation messages (with source squelching) into EVPN network"; } leaf unknown-neighbor-advertise-router { type boolean; default "true"; description "Flood router unsolicited Neighbor Advertisement (NA) replies to EVPN"; } leaf unknown-neighbor-advertise-host { type boolean; default "true"; description "Flood host unsolicited Neighbor Advertisement (NA) replies to EVPN"; } } // container flood } // container evpn container duplicate-detect { description "Enter the duplicate-detect context"; leaf anti-spoof-mac { type types-sros:mac-unicast-address-no-zero; description "MAC address to replace the proxy-ARP/ND offending entry's MAC"; } leaf window { type int32 { range "1..15"; } units "minutes"; default "3"; description "Time to monitor the MAC address in the anti-spoofing mechanism"; } leaf num-moves { type int32 { range "3..10"; } default "5"; description "Number of moves required to declare a duplicate entry"; } leaf hold-down-time { type union { type uint32 { range "2..60"; } type enumeration { enum "max" { value -1; } } } units "minutes"; default "9"; description "Hold down time for a duplicate entry"; } leaf static-blackhole { type boolean; default "false"; description "Consider anti-spoof MAC as black-hole static MAC in FDB"; } } // container duplicate-detect container static-neighbor { description "Enter the static-neighbor context"; list ip-address { key "ipv6-address"; description "Enter the ip-address list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "Proxy ND IP address"; } leaf mac { type types-sros:mac-unicast-address-no-zero; description "Proxy ARP MAC address for static entry"; } leaf type { type enumeration { enum "host" { value 0; } enum "router" { value 1; } } default "router"; description "Entry type"; } } // list ip-address } // container static-neighbor container dynamic-neighbor { description "Enter the dynamic-neighbor context"; list ip-address { key "ipv6-address"; description "Enter the ip-address list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "Proxy ND IP address"; } leaf mac-list { type types-sros:named-item; description "MAC list for the dynamic entry"; } leaf resolve-retry-time { type int32 { range "1..60"; } units "minutes"; default "5"; description "Frequency at which the resolve messages are sent"; } } // list ip-address } // container dynamic-neighbor } // container proxy-nd container routed-vpls { presence "Enter the 'routed-vpls' context"; description "Enable the routed-vpls context"; leaf vxlan-ipv4-tep-ecmp { type boolean; default "false"; description "Use ECMP on VXLAN IPv4 destinations for R-VPLS services"; } leaf evpn-mpls-ecmp { type boolean; default "false"; description "Enable/disable ECMP behavior on R-VPLS services"; } container multicast { description "Enter the multicast context"; leaf ip-multicast-ecmp { type boolean; default "false"; description "ECMP behaviour for multicast traffic on bgp-evpn mpls and vxlan"; } container ipv4 { description "Enter the ipv4 context"; leaf forward-to-ip-interface { type boolean; default "false"; description "Forward IPv4 multicast from RVPLS to L3 interface"; } container igmp-snooping { description "Enter the igmp-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate VPLS L3 interface as a multicast router port"; } } // container igmp-snooping } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf forward-to-ip-interface { type boolean; default "false"; description "Forward IPv6 multicast from RVPLS to L3 interface"; } container mld-snooping { description "Enter the mld-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate VPLS L3 interface as a multicast router port"; } } // container mld-snooping } // container ipv6 } // container multicast } // container routed-vpls container load-balancing { description "Enter the load-balancing context"; leaf per-service-hashing { type boolean; default "false"; description "Enable/disable per service hashing."; } leaf spi-load-balancing { type boolean; default "false"; description "Allow use of SPI (Security Parameter Index) in hashing for ESP/AH encrypted IPv4/IPv6 traffic"; } leaf teid-load-balancing { type boolean; default "false"; description "Include TEID in hashing algorithm for GTP-U/C encapsulated traffic"; } } // container load-balancing container mac-protect { description "Enter the mac-protect context"; list mac { key "mac-address"; description "Add a list entry for mac"; leaf mac-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type yang:mac-address; } description "The address of the protected MAC."; } } // list mac } // container mac-protect container mrp { description "Enter the mrp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable or disable MRP."; } container mmrp { description "Enter the mmrp context"; leaf admin-state { type types-sros:admin-state; description "Administratively enable or disable MMRP."; } leaf end-station-only { type boolean; default "false"; description "Specify if only for end-station"; } leaf flood-time { type uint32 { range "3..600"; } description "MMRP flood-time"; } container attribute-table { description "Enter the attribute-table context"; leaf high-wmark { type int32 { range "0..100"; } default "95"; description "High watermark for the MMRP attribute table."; } leaf low-wmark { type int32 { range "0..100"; } default "90"; description "Low watermark for the MMRP attribute table."; } leaf size { type uint32 { range "1..8192"; } default "2048"; description "MMRP max attributes."; } } // container attribute-table } // container mmrp } // container mrp container pbb { description "Enter the pbb context"; leaf force-qtag-forwarding { type boolean; default "false"; description "Enable 802.1q tag forwarding"; } list backbone-vpls { key "backbone-vpls-service-name"; max-elements 1; description "Enter the backbone-vpls list instance"; leaf backbone-vpls-service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Backbone VPLS service"; } leaf isid { type types-services:isid; sros-ext:immutable; description "Backbone VPLS ISID"; } container igmp-snooping { description "Enter the igmp-snooping context"; list mrouter-destination { key "mac-reference"; description "Add a list entry for mrouter-destination"; leaf mac-reference { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Mac name reference"; } } // list mrouter-destination } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; list mrouter-destination { key "mac-reference"; description "Add a list entry for mrouter-destination"; leaf mac-reference { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Mac name reference"; } } // list mrouter-destination } // container mld-snooping list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "Backbone VPLS SAP"; } container igmp-snooping { description "Enter the igmp-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container mld-snooping } // list sap list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "Backbone VPLS SDP Binding ID"; } container igmp-snooping { description "Enter the igmp-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container mld-snooping } // list spoke-sdp list mesh-sdp { key "sdp-bind-id"; description "Enter the mesh-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "Backbone VPLS SDP Binding ID"; } container igmp-snooping { description "Enter the igmp-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container mld-snooping } // list mesh-sdp container fdb { description "Enter the fdb context"; leaf protected-src-mac-violation-action { type types-services:protected-src-mac-violation-df-action; description "Action taken upon a relearn request for protected MAC"; } } // container fdb } // list backbone-vpls container i-vpls-mac-flush { description "Enter the i-vpls-mac-flush context"; container tldp { description "Enter the tldp context"; leaf send-on-bvpls-failure { type boolean; default "false"; description "Send negative flush message (flush-all-from-me) on B-VPLS failure"; } leaf propagate-from-bvpls { type boolean; default "false"; description "Propagate MAC flush message from B-VPLS into local I-VPLS"; } container send-to-bvpls { description "Enter the send-to-bvpls context"; leaf all-from-me { type boolean; default "false"; description "Generate LDP MAC withdraw all from me message to b-VPLS"; } leaf all-but-mine { type boolean; default "false"; description "Generate LDP MAC withdraw message to b-VPLS"; } } // container send-to-bvpls } // container tldp container bgp-evpn { description "Enter the bgp-evpn context"; leaf send-to-bvpls { type boolean; default "false"; description "Send b-VPLS EVPN flush"; } } // container bgp-evpn } // container i-vpls-mac-flush container source-bmac { description "Enter the source-bmac context"; leaf address { type types-sros:mac-unicast-address-no-zero; description "Base source B-MAC address for the B-VPLS"; } leaf use-es-bmac-lsb { type boolean; default "false"; description "Use LSB from Ethernet-segment backbone MAC"; } leaf use-mclag-bmac-lsb { type boolean; default "false"; description "Use MC LAG backbone MAC LSB"; } } // container source-bmac container mac-notification { description "Enter the mac-notification context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MAC notification messages"; } leaf count { type uint32 { range "1..10"; } description "MAC notification messages count"; } leaf interval { type uint32 { range "1..100"; } units "deciseconds"; description "Interval for MAC notification messages"; } leaf renotify { type union { type uint32 { range "240..840"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "none"; description "Re-notify interval for MAC-notification messages"; } } // container mac-notification } // container pbb container stp { description "Enter the stp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of STP"; } leaf forward-delay { type int32 { range "4..30"; } default "15"; description "Configure forward-delay"; } leaf hello-time { type int32 { range "1..10"; } default "2"; description "Configure hello-time"; } leaf hold-count { type int32 { range "1..20"; } default "6"; description "Configure BPDU transmit hold count"; } leaf maximum-age { type int32 { range "6..40"; } default "20"; description "Configure maximum STP information age"; } leaf mode { type enumeration { enum "rstp" { value 2; } enum "comp-dot1w" { value 3; } enum "dot1w" { value 4; } enum "mstp" { value 5; } enum "pmstp" { value 6; } } default "rstp"; description "Configure protocol version"; } leaf mst-maximum-hops { type int32 { range "1..40"; } default "20"; description "Configure the max number of hops in a MSTP region"; } leaf mst-name { type types-sros:named-item; description "Configure the MST region name"; } leaf mst-revision { type int32 { range "0..65535"; } description "Configure MST configuration revision"; } leaf priority { type int32 { range "0..65535"; } default "32768"; description "Configure STP bridge priority"; } list mst-instance { key "mst-inst-number"; description "Enter the mst-instance list instance"; leaf mst-inst-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4094"; } } description "Multiple Spanning Tree Instance number"; } leaf mst-priority { type int32 { range "0|4096|8192|12288|16384|20480|24576|28672|32768|36864|40960|45056|49152|53248|57344|61440"; } default "32768"; description "Priority of multiple spanning tree instance for this service."; } list vlan-range { key "range"; description "Add a list entry for vlan-range"; leaf range { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { pattern "((([1-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4]))(\\.\\.(([1-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4])))?)"; } } description "Range of vlans that are associated with the Mvpls SAP."; } } // list vlan-range } // list mst-instance } // container stp list bgp { key "bgp-instance"; description "Enter the bgp list instance"; leaf bgp-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..2"; } } description "BGP instance"; } leaf route-distinguisher { type types-services:vpn-route-distinguisher-or-auto-rd; description "High-order 6 bytes that are used as string to compose VSI-ID for use in NLRI"; } leaf-list vsi-import { type types-sros:named-item-64; max-elements 5; ordered-by user; description "VSI import policies"; } leaf-list vsi-export { type types-sros:named-item-64; max-elements 5; ordered-by user; description "VSI export policies"; } container route-target { description "Enter the route-target context"; leaf export { type types-services:route-target; description "Extended community name for default import policy"; } leaf import { type types-services:route-target; description "Extended community name for default import policy"; } } // container route-target list pw-template-binding { key "pw-template-name"; max-elements 100; description "Enter the pw-template-binding list instance"; leaf pw-template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:pw-template-name; } description "PW template policy name"; } leaf split-horizon-group { type types-sros:named-item; description "Split horizon group"; } leaf bfd-template { type types-sros:named-item; description "BFD template name for PW-Template binding"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf-list import-rt { type types-services:route-target; max-elements 5; description "Import route-target communities"; } choice oper-group-association { case oper-group { leaf oper-group { type types-sros:named-item; description "Operational group"; } } case monitor-oper-group { leaf monitor-oper-group { type types-sros:named-item; description "Operational group to monitor"; } } } } // list pw-template-binding } // list bgp container igmp-snooping { description "Enter the igmp-snooping context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of snooping"; } leaf query-interval { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf robust-count { type uint32 { range "1..255"; } default "2"; description "Robustness variable"; } leaf report-source-address { type types-sros:ipv4-address; description "Source address used when generating IGMP reports."; } leaf query-source-address { type union { type enumeration { enum "system" { value 1; } } type types-sros:ipv4-address; } default "system"; description "Source address for IGMP queries"; } container mvr { description "Enter the mvr context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MVR"; } leaf group-policy { type types-sros:named-item; description "Policy that applies MVR"; } leaf description { type types-sros:description; description "Text description"; } } // container mvr container evpn-proxy { description "Enter the evpn-proxy context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EVPN proxy"; } } // container evpn-proxy } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of snooping"; } leaf query-interval { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf robust-count { type uint32 { range "1..255"; } default "2"; description "Robustness variable"; } leaf report-source-address { type types-sros:ipv6-address; description "Source address used when generating MLD reports."; } leaf query-source-address { type union { type enumeration { enum "system" { value 1; } } type types-sros:ipv6-address; } default "system"; description "Source address used when generating MLD queries."; } container mvr { description "Enter the mvr context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MVR"; } leaf group-policy { type types-sros:named-item; description "Policy that applies MVR"; } leaf description { type types-sros:description; description "Text description"; } } // container mvr container evpn-proxy { description "Enter the evpn-proxy context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EVPN proxy"; } } // container evpn-proxy } // container mld-snooping container pim-snooping { presence "Enter the 'pim-snooping' context"; description "Enable the pim-snooping context"; leaf hold-time { type uint32 { range "0..300"; } units "seconds"; default "90"; description "Duration that allows the PIM-snooping switch to snoop all the PIM states in the VPLS"; } leaf-list group-policy { type types-sros:display-string; max-elements 5; ordered-by user; description "Group policy name"; } container ipv4 { description "Enter the ipv4 context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of snooping for multicast traffic"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of snooping for multicast traffic"; } } // container ipv6 } // container pim-snooping container bgp-ad { presence "Enter the 'bgp-ad' context"; description "Enable the bgp-ad context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP AD"; } leaf vpls-id { type types-services:vpls-id; description "VPLS identifier as a 8-byte route distinguisher"; } leaf vsi-id-prefix { type types-sros:ipv4-address; description "VSI prefix value"; } } // container bgp-ad container bgp-evpn { presence "Enter the 'bgp-evpn' context"; description "Enable the bgp-evpn context"; leaf accept-ivpls-evpn-flush { type boolean; default "false"; description "Accept non-zero ethernet-tag MAC routes and process for CMAC flushing"; } leaf evi { type types-services:evi; description "EVPN ID"; } leaf incl-mcast-orig-ip { type types-sros:ipv4-unicast-address; description "Originating IP address"; } container routes { description "Enter the routes context"; container mac-ip { description "Enter the mac-ip context"; leaf advertise { type boolean; default "true"; description "Status for the BGP-EVPN MAC/IP routes advertisement"; } leaf cfm-mac { type boolean; default "false"; description "Enable/disable the advertisement of MEP, MIP, and VMEP MAC addresses over the BGP EVPN."; } leaf unknown-mac { type boolean; default "false"; description "Enable/disable the advertisement of MEP, MIP, and VMEP MAC addresses over the BGP EVPN."; } } // container mac-ip container ip-prefix { description "Enter the ip-prefix context"; leaf advertise { type boolean; default "false"; description "Status for the IP prefix routes advertisement"; } leaf include-direct-interface-host { type boolean; default "false"; description "BGP EVPN IP route advertisement"; } } // container ip-prefix container incl-mcast { description "Enter the incl-mcast context"; leaf advertise-ingress-replication { type boolean; default "true"; description "BGP EVPN IMET-IR route advertisement"; } } // container incl-mcast container sel-mcast { description "Enter the sel-mcast context"; leaf advertise { type boolean; default "false"; description "Advertise Selective Multicast Ethernet Tag routes"; } } // container sel-mcast } // container routes container mac-duplication { description "Enter the mac-duplication context"; leaf retry { type union { type uint32 { range "2..60"; } type enumeration { enum "never" { value 0; } } } units "minutes"; default "9"; description "BGP EVPN MAC duplication retry"; } leaf blackhole { type boolean; default "false"; description "Enable black hole dup MAC configuration"; } container detect { description "Enter the detect context"; leaf num-moves { type uint32 { range "3..10"; } default "5"; description "BGP EVPN MAC duplication detection number of moves"; } leaf window { type uint32 { range "1..15"; } units "minutes"; default "3"; description "BGP EVPN MAC duplication detection window"; } } // container detect } // container mac-duplication container isid-route-target { description "Enter the isid-route-target context"; list range { key "start"; max-elements 8192; description "Enter the range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:svc-isid-non-zero; } description "Starting value of the isid-range entry"; } leaf end { type types-sros:svc-isid-non-zero; description "Ending value of the isid-range entry"; } leaf type { type enumeration { enum "auto" { value 1; } enum "configured" { value 2; } } sros-ext:immutable; default "auto"; description "Method used to support the PBB-EVPN ISID-based route target advertisement"; } leaf route-target { type types-services:route-target; sros-ext:immutable; description "Route for the ISID range"; } } // list range } // container isid-route-target list vxlan { key "bgp-instance"; description "Enter the vxlan list instance"; leaf bgp-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..2"; } } description "BGP instance"; } leaf vxlan-instance { type uint32 { range "1..2"; } sros-ext:immutable; description "VXLAN instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of VXLAN auto-bindings creation"; } leaf send-tunnel-encap { type boolean; default "true"; description "Send VXLAN value in encapsulation extended community"; } leaf send-incl-mcast-ir-on-ndf { type boolean; default "true"; description "Allow IMET-IR on NDF"; } leaf default-route-tag { type types-services:one-byte-value; description "Default route tag"; } leaf ecmp { type types-services:ecmp-value; default "1"; description "Maximum ECMP routes information."; } leaf oper-group { type types-sros:named-item; description "Operational-Group identifier."; } leaf mh-mode { type enumeration { enum "access" { value 0; } enum "network" { value 1; } } default "access"; description "Multi-homing mode"; } container routes { description "Enter the routes context"; container auto-disc { description "Enter the auto-disc context"; leaf advertise { type boolean; default "false"; description "Advertise routes on auto-discovery"; } } // container auto-disc } // container routes } // list vxlan list mpls { key "bgp-instance"; description "Enter the mpls list instance"; leaf bgp-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..2"; } } description "BGP instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP EVPN MPLS"; } leaf force-vc-forwarding { type types-services:bgp-evpn-force-vc-forwarding; description "VC forwarding action"; } leaf control-word { type boolean; default "false"; description "Enable/disable setting the CW bit in the label message."; } leaf split-horizon-group { type types-sros:named-item; description "Split horizon group"; } leaf ingress-replication-bum-label { type boolean; default "false"; description "Use the same label as the one advertised for unicast traffic"; } leaf ecmp { type types-services:ecmp-value; default "1"; description "Maximum ECMP routes information"; } leaf entropy-label { type boolean; default "false"; description "Enable/disable use of entropy-label."; } leaf default-route-tag { type types-services:one-byte-value; description "Default route tag"; } leaf oper-group { type types-sros:named-item; description "Operational-Group identifier."; } container send-tunnel-encap { description "Enter the send-tunnel-encap context"; leaf mpls { type boolean; default "true"; description "Enable MPLS encapsulation"; } leaf mpls-over-udp { type boolean; default "false"; description "Enable MPLS over UDP encapsulation"; } } // container send-tunnel-encap container auto-bind-tunnel { description "Enter the auto-bind-tunnel context"; leaf resolution { type types-services:resolve-status; default "none"; description "Resolution method for tunnel selection"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Enable/disable enforcement of strict tunnel tagging"; } leaf ecmp { type types-router:mpls-ecmp; default "1"; description "Maximum ECMP routes information"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable flexible algorithm fallback"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; default "false"; description "Use BGP tunneling for next-hop resolution"; } leaf ldp { type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // container auto-bind-tunnel container route-next-hop { description "Enter the route-next-hop context"; choice tag { default "ipv4"; case ipv4 { leaf system-ipv4 { type empty; description "Use system IPv4 address"; } } case ipv6 { leaf system-ipv6 { type empty; description "Use system IPv6 address"; } } case explicit { leaf ip-address { type types-sros:ip-address; description "Use specific unicast IPv4/IPv6 address"; } } } } // container route-next-hop container fdb { description "Enter the fdb context"; leaf protected-src-mac-violation-action { type types-services:protected-src-mac-violation-df-action; description "Action when a relearn request for a protected MAC is received"; } } // container fdb } // list mpls } // container bgp-evpn container bgp-vpls { presence "Enter the 'bgp-vpls' context"; description "Enable the bgp-vpls context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the BGP-VPLS instance"; } leaf maximum-ve-id { type types-services:ve-id; description "Maximum vpls-edge id for BGP-VPLS"; } container ve { description "Enter the ve context"; leaf name { type types-sros:named-item; description "Name of VPLS edge."; } leaf id { type types-services:ve-id; description "VPLS edge identifier"; } } // container ve } // container bgp-vpls list endpoint { key "name"; max-elements 10; description "Enter the endpoint list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service endpoint name"; } leaf description { type types-sros:description; description "Text description"; } leaf revert-time { type types-services:revert-time; default "immediate"; description "Time to wait before reverting back to the primary spoke-sdp defined on this service endpoint"; } leaf ignore-standby-signaling { type boolean; default "false"; description "Ignore standby-bit received from TLDP peers when performing internal tasks"; } leaf suppress-standby-signaling { type boolean; default "true"; description "Do not send pseudowire standby bit to TLDP peer when specified spoke SDP is selected as standby"; } leaf block-on-mesh-failure { type boolean; default "false"; description "Whether operational status of spoke-SDPs in the endpoint will be affected by the operational status of associated mesh SDPs in this service."; } container fdb { description "Enter the fdb context"; leaf mac-pinning { type boolean; default "false"; description "Activate MAC address pinning on this endpoint"; } leaf maximum-mac-addresses { type types-services:max-mac-addr; description "Maximum learned and static entries for this end point"; } leaf auto-learn-mac-protect { type boolean; default "false"; description "Populate automatically MAC protect list with MAC addresses learned on SDP with this endpoint"; } leaf protected-src-mac-violation-action { type types-services:sdp-protected-src-mac-violation-action; description "Action when a relearn request for a protected MAC is received on the SDP"; } } // container fdb } // list endpoint list split-horizon-group { key "shg-name"; description "Enter the split-horizon-group list instance"; leaf shg-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for the service split-horizon-group"; } leaf description { type types-sros:description; description "Text description"; } leaf residential { type boolean; sros-ext:immutable; default "false"; description "Define as a residential split horizon group"; } container fdb { description "Enter the fdb context"; container saps { description "Enter the saps context"; leaf auto-learn-mac-protect { type boolean; default "false"; description "Populate automatically MAC protect list with MAC addresses learned on SDP with split horizon group"; } leaf auto-learn-mac-protect-exclude-list { type types-sros:named-item; description "Referenced MAC protect exclusion list name"; } leaf protected-src-mac-violation-action { type types-services:sap-protected-src-mac-violation-action; description "Action to take whenever a relearn request for a protected MAC is received"; } leaf discard-unprotected-dest-mac { type boolean; default "false"; description "Enable/disable unprotected dest MAC restriction"; } } // container saps } // container fdb } // list split-horizon-group container eth-cfm { description "Enter the eth-cfm context"; list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container mcr-default-gtw { description "Enter the mcr-default-gtw context"; leaf ip { type types-sros:ipv4-unicast-address; description "Multi-chassis ring default gateway IP address"; } leaf mac { type yang:mac-address; default "00:00:00:00:00:00"; description "Multi-chassis ring default gateway MAC address"; } } // container mcr-default-gtw list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf vlan-vc-tag { type types-services:vlan-vc-tag; description "SDP bind VC tag"; } leaf split-horizon-group { type types-sros:named-item; sros-ext:immutable; description "Name of the split horizon group where the spoke SDP bind belongs to"; } leaf multicast-source { type boolean; sros-ext:immutable; default "false"; description "Enable/disable multicast-source on the spoke SDP Bind."; } leaf collect-stats { type boolean; default "false"; description "Allow agent to collect accounting statistics"; } leaf accounting-policy { type types-log:log-policy-id; description "Policy to collect accounting statistics"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf force-vc-forwarding { type enumeration { enum "vlan" { value 1; } enum "qinq-c-tag-c-tag" { value 2; } enum "qinq-s-tag-c-tag" { value 3; } } description "VC forwarding action"; } leaf etree-root-leaf-tag { type boolean; sros-ext:immutable; default "false"; description "E-tree root leaf tag status"; } leaf etree-leaf { type boolean; sros-ext:immutable; default "false"; description "Enable etree leaf access-circuit status"; } leaf vc-type { type types-services:vpls-sdp-bind-vc-type; default "ether"; description "Type of virtual circuit (VC) associated with the SDP binding; VPLS not supported"; } leaf bpdu-translation { type types-services:bpdu-translation; description "Bpdu translation."; } leaf ignore-standby-signaling { type boolean; default "false"; description "Ignore standby-bit received from TLDP peers when performing internal tasks"; } leaf block-on-mesh-failure { type boolean; default "false"; description "Enable blocking after all configured SDPs or endpoints are in operationally down state"; } leaf bfd-template { status obsolete; type types-sros:named-item; description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } choice oper-group-association { case oper-group { leaf oper-group { type types-sros:named-item; description "Operational group identifier"; } } case monitor-oper-group { leaf monitor-oper-group { type types-sros:named-item; description "Operational group identifier that affect the state of this SDP bind"; } } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos container mfib-allowed-mda-destinations { description "Enter the mfib-allowed-mda-destinations context"; list mda { key "mda-id"; description "Add a list entry for mda"; leaf mda-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-isa:slot-mda; } description "MFIB allowed MDA destination"; } } // list mda } // container mfib-allowed-mda-destinations } // container egress container endpoint { description "Enter the endpoint context"; leaf name { type types-sros:named-item; description "Name of endpoint to which this SDP bind is attached."; } leaf precedence { type types-services:sdp-precedence; default "4"; description "Precedence of this SDP bind when there are multiple SDP binds attached to one service endpoint"; } } // container endpoint container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } } } // container cpu-protection container pw-status { description "Enter the pw-status context"; leaf signaling { type boolean; default "true"; description "Whether this SDP binding supports pseudowire status signaling."; } } // container pw-status container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type types-sros:named-item; description "BFD template associated with the SDP binding"; } leaf failure-action { type types-services:sbind-bfd-fail-action; default "none"; description "VCCV BFD action taken on the SDP binding"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; description "Time to wait for BFD up status"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd container pbb { description "Enter the pbb context"; container fault-propagation { description "Enter the fault-propagation context"; list backbone-mac-name { key "name"; description "Add a list entry for backbone-mac-name"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Backbone MAC address name"; } } // list backbone-mac-name list backbone-mac-address { key "address"; description "Add a list entry for backbone-mac-address"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address-no-zero; } description "Backbone MAC address"; } } // list backbone-mac-address } // container fault-propagation } // container pbb container i-vpls-mac-flush { description "Enter the i-vpls-mac-flush context"; container bgp-evpn { description "Enter the bgp-evpn context"; leaf send-to-bvpls { type boolean; default "true"; description "Send B-VPLS EVPN flush"; } } // container bgp-evpn } // container i-vpls-mac-flush container fdb { description "Enter the fdb context"; leaf limit-mac-move { type types-services:limit-mac-move; default "blockable"; description "MAC move"; } leaf discard-unknown-source { type boolean; default "false"; description "Discard packets with unknown destination MAC addresses"; } leaf mac-pinning { type boolean; default "false"; description "MAC address pinning in active status"; } leaf maximum-mac-addresses { type types-services:max-mac-addr; description "Maximum MAC entries in the FDB from this SDP"; } leaf auto-learn-mac-protect { type boolean; default "false"; description "Populate automatically MAC protect list with source MAC addresses learned on SDP"; } leaf auto-learn-mac-protect-exclude-list { type types-sros:named-item; description "Referenced MAC protect exclusion list name"; } leaf protected-src-mac-violation-action { type types-services:sdp-protected-src-mac-violation-action; description "Action when a relearn request for a protected MAC is received on the SDP"; } container mac-learning { description "Enter the mac-learning context"; leaf learning { type boolean; default "true"; description "Enable learning of new MAC addresses"; } leaf aging { type boolean; default "true"; description "Enable aging of MAC addresses"; } } // container mac-learning } // container fdb container stp { description "Enter the stp context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of STP"; } leaf auto-edge { type boolean; default "true"; description "Enable/disable automatic detection of edge-port."; } leaf edge-port { type boolean; default "false"; description "Configure as edge-port."; } leaf link-type { type types-services:stp-link-type; default "pt-pt"; description "Configure STP link-type"; } leaf path-cost { type types-services:stp-path-cost; default "10"; description "Configure path-cost"; } leaf priority { type int32 { range "0..255"; } default "128"; description "Configure STP priority"; } leaf root-guard { type boolean; default "false"; description "Enable/disable STP root-guard"; } leaf port-num { type types-services:stp-port-num; description "Configure virtual port number"; } } // container stp container l2pt { description "Enter the l2pt context"; container termination { presence "Enter the 'termination' context"; description "Enable the termination context"; container protocols { description "Enter the protocols context"; leaf stp { type boolean; default "true"; description "Enable/disable spanning tree protocols stp/mstp/pvst/rstp."; } leaf cdp { type boolean; default "false"; description "Enable Cisco discovery protocol"; } leaf vtp { type boolean; default "false"; description "Enable/disable virtual trunk protocol."; } leaf dtp { type boolean; default "false"; description "Enable dynamic trunking protocol"; } leaf pagp { type boolean; default "false"; description "Enable/disable port aggregation protocol."; } leaf udld { type boolean; default "false"; description "Enable/disable unidirectional link detection."; } } // container protocols } // container termination } // container l2pt container dhcp { description "Enter the dhcp context"; leaf description { type types-sros:description; description "Text description"; } leaf snoop { type boolean; default "false"; description "Allow DHCP snooping of DHCP messages on the SAP or SDP"; } } // container dhcp container igmp-snooping { description "Enter the igmp-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum sources that are allowed per group"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum group source combinations"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Group address of static IGMP multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version."; } container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Group address of multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container mld-snooping container pim-snooping { description "Enter the pim-snooping context"; leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups for this interface"; } } // container pim-snooping container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list squelch-ingress-ctag-levels { type uint32 { range "0..7"; } max-elements 8; description "Squelch levels using additional VLAN C-Tag space"; } leaf vmep-filter { type boolean; default "false"; description "Suppress eth-cfm PDUs based on level lower than or equal to configured Virtual MEP"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf primary-vlan { type boolean; sros-ext:immutable; default "false"; description "MEP provisioned using MA primary VLAN ID"; } leaf direction { type types-eth-cfm:mp-direction; sros-ext:immutable; description "Direction the MEP faces"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container static-isid { description "Enter the static-isid context"; list range { key "range-id"; description "Enter the range list instance"; leaf range-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8191"; } } description "The range identifier for static ISID."; } leaf start { type types-services:isid-no-zero; description "The low value of the range for this entry."; } leaf end { type types-services:isid-no-zero; description "The high value of the range for this entry."; } } // list range } // container static-isid container mrp { description "Enter the mrp context"; leaf join-time { type uint32 { range "1..10"; } units "deciseconds"; default "2"; description "Set the maximum rate for attribute join messages to be sent on the SDP."; } leaf leave-time { type uint32 { range "30..60"; } units "deciseconds"; default "30"; description "Set the time an attribute is held in leave state before registration is removed."; } leaf leave-all-time { type uint32 { range "60..300"; } units "deciseconds"; default "100"; description "Set the frequency where all attribute declarations on the SDP are refreshed."; } leaf periodic-time { type uint32 { range "10..100"; } units "deciseconds"; default "10"; description "Set the freqeuency of retransmission of attribute declarations."; } leaf periodic-timer { type boolean; default "false"; description "Enable/Disable retransmission of attribute declarations."; } leaf policy { type types-sros:named-item; description "Specify they MRP policy to control which Group BMAC attributes will advertise on the egress SDP Bind."; } } // container mrp } // list spoke-sdp list mesh-sdp { key "sdp-bind-id"; description "Enter the mesh-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf vlan-vc-tag { type types-services:vlan-vc-tag; description "SDP bind VC tag"; } leaf collect-stats { type boolean; default "false"; description "Allow agent to collect accounting statistics"; } leaf accounting-policy { type types-log:log-policy-id; description "Policy to collect accounting statistics"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf force-vc-forwarding { type enumeration { enum "vlan" { value 1; } enum "qinq-c-tag-c-tag" { value 2; } enum "qinq-s-tag-c-tag" { value 3; } } description "VC forwarding action"; } leaf etree-root-leaf-tag { type boolean; sros-ext:immutable; default "false"; description "Status for E-tree root leaf tag"; } leaf etree-leaf { type boolean; sros-ext:immutable; default "false"; description "Enable etree leaf access-circuit status"; } leaf vc-type { type types-services:vpls-sdp-bind-vc-type; default "ether"; description "Type of virtual circuit (VC) associated with the SDP binding; VPLS not supported"; } leaf bfd-template { status obsolete; type types-sros:named-item; description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos container mfib-allowed-mda-destinations { description "Enter the mfib-allowed-mda-destinations context"; list mda { key "mda-id"; description "Add a list entry for mda"; leaf mda-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-isa:slot-mda; } description "MFIB allowed MDA destination"; } } // list mda } // container mfib-allowed-mda-destinations } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } } } // container cpu-protection container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type types-sros:named-item; description "BFD template associated with the SDP binding"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd container pbb { description "Enter the pbb context"; container fault-propagation { description "Enter the fault-propagation context"; list backbone-mac-name { key "name"; description "Add a list entry for backbone-mac-name"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Backbone MAC address name"; } } // list backbone-mac-name list backbone-mac-address { key "address"; description "Add a list entry for backbone-mac-address"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address-no-zero; } description "Backbone MAC address"; } } // list backbone-mac-address } // container fault-propagation } // container pbb container fdb { description "Enter the fdb context"; leaf mac-pinning { type boolean; default "false"; description "MAC address pinning in active status"; } leaf auto-learn-mac-protect { type boolean; default "false"; description "Enable/disable of automatic marking of MACs as protected"; } leaf auto-learn-mac-protect-exclude-list { type types-sros:named-item; description "Referenced MAC protect exclusion list name"; } leaf protected-src-mac-violation-action { type types-services:sdp-protected-src-mac-violation-action; description "Action to take whenever a relearn request for a protected MAC is received"; } } // container fdb container dhcp { description "Enter the dhcp context"; leaf description { type types-sros:description; description "Text description"; } leaf snoop { type boolean; default "false"; description "Allow DHCP snooping of DHCP messages on the SAP or SDP"; } } // container dhcp container igmp-snooping { description "Enter the igmp-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum sources that are allowed per group"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum group source combinations"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Group address of static IGMP multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version."; } container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Group address of multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container mld-snooping container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list squelch-ingress-ctag-levels { type uint32 { range "0..7"; } max-elements 8; description "Squelch levels using additional VLAN C-Tag space"; } leaf vmep-filter { type boolean; default "false"; description "Suppress eth-cfm PDUs based on level lower than or equal to configured Virtual MEP"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf primary-vlan { type boolean; sros-ext:immutable; default "false"; description "MEP provisioned using MA primary VLAN ID"; } leaf direction { type types-eth-cfm:mp-direction; sros-ext:immutable; description "Direction the MEP faces"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container mrp { description "Enter the mrp context"; leaf join-time { type uint32 { range "1..10"; } units "deciseconds"; default "2"; description "Set the maximum rate for attribute join messages to be sent on the SDP."; } leaf leave-time { type uint32 { range "30..60"; } units "deciseconds"; default "30"; description "Set the time an attribute is held in leave state before registration is removed."; } leaf leave-all-time { type uint32 { range "60..300"; } units "deciseconds"; default "100"; description "Set the frequency where all attribute declarations on the SDP are refreshed."; } leaf periodic-time { type uint32 { range "10..100"; } units "deciseconds"; default "10"; description "Set the freqeuency of retransmission of attribute declarations."; } leaf periodic-timer { type boolean; default "false"; description "Enable/Disable retransmission of attribute declarations."; } leaf policy { type types-sros:named-item; description "Specify they MRP policy to control which Group BMAC attributes will advertise on the egress SDP Bind."; } } // container mrp } // list mesh-sdp list bgp-mh-site { key "site-name"; description "Enter the bgp-mh-site list instance"; leaf site-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for the specific site"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the VPLS BGP multi-homing site"; } leaf id { type types-services:site-id; description "ID for the site"; } leaf boot-timer { type types-services:site-boot-timer; units "seconds"; description "Time that system waits after node reboot and before it runs DF election algorithm"; } leaf activation-timer { type types-services:site-activation-timer; units "seconds"; description "Time that the local sites are in standby status, waiting for BGP updates"; } leaf monitor-oper-group { type types-sros:named-item; description "Operational group to monitor"; } leaf failed-threshold { type types-services:failed-threshold; default "all"; description "Threshold for the site to be declared down"; } leaf min-down-timer { type types-services:site-min-down-timer; units "seconds"; description "Minimum downtime for BGP multi-homing site after transition from up to down"; } choice site-object { case spoke-sdp { leaf spoke-sdp { type types-services:sdp-bind-id; description "SDP to be associated with this site"; } } case sap { leaf sap { type types-sros:sap; description "SAP to be associated with this site"; } } case mesh-sdp { leaf mesh-sdp-binds { type empty; description "Specify if a mesh-sdp-binding is associated with this site"; } } case shg { leaf shg-name { type types-sros:named-item; description "Split horizon group to be associated with this site"; } } } } // list bgp-mh-site list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy"; } leaf anti-spoof { type types-services:anti-spoof-option; description "Type of anti-spoof filtering"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf calling-station-id { type types-sros:string-not-all-spaces { length "1..64"; } description "Calling station ID"; } leaf cflowd { type boolean; default "false"; description "Enable Cflowd collection and analysis on this SAP"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy for SAP"; } leaf host-admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of hosts"; } leaf host-lockout-policy { type types-sros:named-item; description "Host lockout policy"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf split-horizon-group { type types-sros:named-item; sros-ext:immutable; description "Split horizon group"; } leaf multicast-source { type boolean; sros-ext:immutable; default "false"; description "Enable/disable multicast-source on the SAP."; } leaf etree-leaf { type boolean; sros-ext:immutable; default "false"; description "Enable etree leaf access-circuit status"; } leaf arp-reply-agent { type types-services:arp-reply-agent; description "Enable arp-reply-agent function"; } leaf bpdu-translation { type types-services:bpdu-translation; description "Bpdu translation on this SAP"; } leaf process-cpm-traffic-on-sap-down { type boolean; default "false"; description "Process CPM traffic on SAP down event"; } leaf bgp-vpls-mh-veid { type int32 { range "1..65535"; } description "BGP-VPLS multi-homing VE-ID"; } leaf radius-auth-policy { type types-sros:named-item; description "RADIUS authentication policy"; } leaf shcv-policy-ipv4 { type types-sros:external-named-item; description "Subscriber host connectivity verification policy for IPv4"; } choice oper-group-association { case oper-group { leaf oper-group { type types-sros:named-item; description "Operational group"; } } case monitor-oper-group { leaf monitor-oper-group { type types-sros:named-item; description "Monitor operational group"; } } } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Queue group instance"; } } // container fp-redirect-group container overrides { description "Enter the overrides context"; container ip-criteria { description "Enter the ip-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv4 criteria"; } } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv6 criteria"; } } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-queue-id; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qtag-manipulation { if-feature nokia-features:sros-qtag-manipulation; description "Enter the qtag-manipulation context"; choice tags { case push-dot1q-vlan { leaf push-dot1q-vlan { type types-services:qtag-manipulation-info; description "VLAN translation information"; } } } } // container qtag-manipulation container vlan-manipulation { if-feature nokia-features:sros-vlan-manipulation; description "Enter the vlan-manipulation context"; leaf action { type types-services:vlan-manipulation-ingress-action-type; description "Action to manipulate the VLAN tag(s) of the packets."; } leaf outer-tag { type types-services:vlan-manipulate-ingress-vlan-type; default "null"; description "Outer VLAN tag to be applied."; } leaf inner-tag { type types-services:vlan-manipulate-ingress-vlan-type; default "null"; description "Inner VLAN tag to be applied in case of QinQ encapsulation."; } } // container vlan-manipulation container aggregate-policer { description "Enter the aggregate-policer context"; leaf rate { type types-qos:aggr-policer-rate; default "max"; description "Aggregate policer rate to be used in kbps"; } leaf burst { type types-qos:aggr-policer-burst; default "default"; description "Aggregate policer burst"; } leaf cir { type types-qos:aggr-policer-cir; description "Aggregate policer cir to be used in kbps"; } leaf cbs { type types-qos:aggr-policer-cbs; description "Aggregate policer cbs"; } } // container aggregate-policer } // container ingress container egress { description "Enter the egress context"; leaf dest-mac-rewrite { type types-sros:mac-unicast-address-no-zero; description "Destination MAC overwrite for unicast"; } container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port redirect queue group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of port queue group"; } } // container port-redirect-group container overrides { description "Enter the overrides context"; leaf hs-secondary-shaper { type types-sros:named-item; description "HS Secondary Shaper"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf secondary-shaper { status obsolete; type types-sros:named-item; description "Secondary shaper for the HSMDA queue"; } leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Packet byte offset for HSMDA queue"; } leaf wrr-policy { status obsolete; type types-sros:named-item; description "WRR policy for the HSMDA queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Egress HSMDA queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; description "Administrative PIR rate."; } leaf slope-policy { status obsolete; type types-sros:named-item; description "Name of the slope-policy which is used to override the default slope-policy for the named buffer pool."; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "Weight value for the HSMDA queue"; } } // list queue } // container hsmda-queues list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type types-sros:named-item; description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:sap-egress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hs-wrr-group-id; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Weight of scheduling class."; } choice rate-or-percent-rate { case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "Administrative PIR."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent."; } } } } // list hs-wrr-group } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Egress vlan-qos-policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Egress-remark-policy name"; } } // container egress-remark-policy } // container qos container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate container vlan-manipulation { if-feature nokia-features:sros-vlan-manipulation; description "Enter the vlan-manipulation context"; leaf action { type types-services:vlan-manipulation-egress-action-type; description "Action to manipulate the VLAN tag(s) of the packets."; } leaf tag { type types-services:vlan-manipulation-egress-vlan-type; default "null"; description "VLAN tag to be applied by action."; } } // container vlan-manipulation } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container etree-root-leaf-tag { presence "Enter the 'etree-root-leaf-tag' context"; description "Enable the etree-root-leaf-tag context"; leaf leaf { type int32 { range "1..4094"; } sros-ext:immutable; description "Leaf tag value"; } } // container etree-root-leaf-tag container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; description "Time during which the system continues to track inactive hosts"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of multicast groups to be tracked"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of multicast groups to be tracked per group"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of multicast sources to be tracked"; } leaf router-alert-check { type boolean; default "true"; description "Enable IGMP router alert check option"; } } // container igmp-host-tracking container igmp-snooping { description "Enter the igmp-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum sources that are allowed per group"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum group source combinations"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-mcast-cac:constraints-level; } description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } description "Bandwidth available for this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..64"; } } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; description "Level ID to associate with number of down LAG ports"; } } // list number-down } // container mc-constraints container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container mvr { description "Enter the mvr context"; leaf from-vpls { type types-services:service-name; description "MVR VPLS from which the multicast channels are taken"; } leaf to-sap { type types-sros:sap; description "Multicast channels copied to SAP"; } } // container mvr container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Group address of static IGMP multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version."; } container mvr { description "Enter the mvr context"; leaf from-vpls { type types-services:service-name; description "MVR VPLS from which the multicast channels are taken"; } leaf to-sap { type types-sros:sap; description "The SAP to which the multicast channels are copied"; } } // container mvr container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Group address of multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container mld-snooping container pim-snooping { description "Enter the pim-snooping context"; leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups for this interface"; } } // container pim-snooping container stp { description "Enter the stp context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of STP"; } leaf auto-edge { type boolean; default "true"; description "Enable/disable automatic detection of edge-port."; } leaf edge-port { type boolean; default "false"; description "Configure as edge-port."; } leaf link-type { type types-services:stp-link-type; default "pt-pt"; description "Configure STP link-type"; } leaf path-cost { type types-services:stp-path-cost; default "10"; description "Configure path-cost"; } leaf priority { type int32 { range "0..255"; } default "128"; description "Configure STP priority"; } leaf root-guard { type boolean; default "false"; description "Enable/disable STP root-guard"; } leaf port-num { type types-services:stp-port-num; description "Configure virtual port number"; } list mst-instance { key "mst-inst-number"; description "Enter the mst-instance list instance"; leaf mst-inst-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4094"; } } description "Multiple Spanning Tree Instance number"; } leaf mst-path-cost { type types-services:stp-path-cost; default "10"; description "MSTI path cost."; } leaf mst-port-priority { type int32 { range "0|16|32|48|64|80|96|112|128|144|160|176|192|208|224|240"; } default "128"; description "MSTI port priority. The value of the port priority field which is contained in the most significant 4 bits of the 16-bit Port ID associated with this SAP and MSTI."; } } // list mst-instance } // container stp container l2pt { description "Enter the l2pt context"; container termination { presence "Enter the 'termination' context"; description "Enable the termination context"; container protocols { description "Enter the protocols context"; leaf stp { type boolean; default "true"; description "Enable/disable spanning tree protocols stp/mstp/pvst/rstp."; } leaf cdp { type boolean; default "false"; description "Enable Cisco discovery protocol"; } leaf vtp { type boolean; default "false"; description "Enable/disable virtual trunk protocol."; } leaf dtp { type boolean; default "false"; description "Enable dynamic trunking protocol"; } leaf pagp { type boolean; default "false"; description "Enable/disable port aggregation protocol."; } leaf udld { type boolean; default "false"; description "Enable/disable unidirectional link detection."; } } // container protocols } // container termination container force-boundary { presence "Enter the 'force-boundary' context"; description "Enable the force-boundary context"; container protocols { description "Enter the protocols context"; leaf stp { type boolean; default "true"; description "Enable/disable spanning tree protocols stp/mstp/pvst/rstp."; } leaf cdp { type boolean; default "false"; description "Enable Cisco discovery protocol"; } leaf vtp { type boolean; default "false"; description "Enable/disable virtual trunk protocol."; } leaf dtp { type boolean; default "false"; description "Enable dynamic trunking protocol"; } leaf pagp { type boolean; default "false"; description "Enable/disable port aggregation protocol."; } leaf udld { type boolean; default "false"; description "Enable/disable unidirectional link detection."; } } // container protocols } // container force-boundary } // container l2pt container fdb { description "Enter the fdb context"; leaf discard-unknown-source { type boolean; default "false"; description "Discard frames with unknown source"; } leaf limit-mac-move { type types-services:limit-mac-move; default "blockable"; description "MAC move"; } leaf mac-pinning { type boolean; default "false"; description "Enable MAC address pinning on this SAP"; } leaf maximum-mac-addresses { type types-services:max-mac-addr; description "Maximum number of MAC entries in the FDB"; } leaf auto-learn-mac-protect { type boolean; default "false"; description "Enable automatic update of MAC protect list"; } leaf auto-learn-mac-protect-exclude-list { type types-sros:named-item; description "Referenced MAC protect exclusion list"; } leaf protected-src-mac-violation-action { type types-services:sap-protected-src-mac-violation-action; description "Action to take whenever a relearn request for a protected MAC is received"; } leaf discard-unprotected-dest-mac { type boolean; default "false"; description "Enable/disable unprotected dest MAC restriction"; } container mac-learning { description "Enter the mac-learning context"; leaf learning { type boolean; default "true"; description "Enable learning of new MAC addresses"; } leaf aging { type boolean; default "true"; description "Enable aging of MAC addresses"; } } // container mac-learning } // container fdb container mrp { description "Enter the mrp context"; leaf join-time { type uint32 { range "1..10"; } default "2"; description "Set the maximum rate for attribute join messages to be sent on the SDP."; } leaf leave-time { type uint32 { range "30..60"; } default "30"; description "Set the time an attribute is held in leave state before registration is removed."; } leaf leave-all-time { type uint32 { range "60..300"; } default "100"; description "Set the frequency where all attribute declarations on the SDP are refreshed."; } leaf periodic-time { type uint32 { range "10..100"; } default "10"; description "Set the freqeuency of retransmission of attribute declarations."; } leaf periodic-timer { type boolean; default "false"; description "Enable/Disable retransmission of attribute declarations."; } leaf policy { type types-sros:named-item; description "Specify they MMRP policy"; } } // container mrp container l2tpv3-session { presence "Enter the 'l2tpv3-session' context"; description "Enable the l2tpv3-session context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the session for the service"; } leaf vc-id { type types-services:vc-id; description "VC identifier."; } container pseudo-wire { description "Enter the pseudo-wire context"; choice type { case ethernet { leaf ethernet { type empty; description "Ethernet type."; } } case ethernet-vlan-id { leaf ethernet-vlan-id { type int32 { range "0..4095"; } description "Ethernet VLAN identifier."; } } } } // container pseudo-wire container router { description "Enter the router context"; leaf group { type types-sros:named-item; description "Tunnel group name."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance hosting the l2tpv3 session."; } } // container router } // container l2tpv3-session container i-vpls-mac-flush { description "Enter the i-vpls-mac-flush context"; container bgp-evpn { description "Enter the bgp-evpn context"; leaf send-to-bvpls { type boolean; default "true"; description "Send B-VPLS EVPN flush"; } } // container bgp-evpn } // container i-vpls-mac-flush container arp-host { description "Enter the arp-host context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ARP hosts"; } leaf host-limit { type uint32 { range "1..131071"; } default "1"; description "Maximum number of ARP triggered hosts."; } leaf min-auth-interval { type types-sros:time-duration { range "1..6000"; } units "minutes"; default "15"; description "Minimal time that has to pass before incoming ARPs of an active ARP host are re-authenticated."; } } // container arp-host container dhcp { description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf snoop { type boolean; default "false"; description "DHCP snooping."; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP proxy"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..66"; } description "Use user-defined hexadecimal string in the option"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..66"; } description "Use user-defined hexadecimal string in the option."; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "0..131071"; } default "0"; description "Maximum number of DHCPv4 leases"; } } // container lease-populate } // container dhcp container static-host { description "Enter the static-host context"; list ipv4 { key "ip mac"; description "Enter the ipv4 list instance"; leaf ip { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "IP address"; } leaf mac { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address; } description "MAC address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type types-sros:external-named-item; description "Sub-profile name"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id container shcv { description "Enter the shcv context"; } // container shcv } // list ipv4 } // container static-host container sub-sla-mgmt { description "Enter the sub-sla-mgmt context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of subscriber management on this SAP"; } leaf sub-ident-policy { type types-sros:external-named-item; description "Subscriber identification policy used on this SAP"; } leaf subscriber-limit { type types-submgt:sap-subscriber-limit; default "1"; description "Maximum number of subscribers on this SAP"; } leaf mac-da-hashing { type boolean; default "false"; description "Use destination MAC address instead of subscriber ID to select egress LAG link"; } container defaults { description "Enter the defaults context"; leaf sub-profile { type types-sros:external-named-item; description "Default subscriber profile used for subscribers on this SAP"; } leaf sla-profile { type types-sros:external-named-item; description "Default SLA profile for hosts on this SAP"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case auto-id { leaf auto-id { type empty; description "Use auto-generated subscriber identification string"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID as default subscriber identification string"; } } case string { leaf string { type types-submgt:subscriber-id; description "Default subscriber identification string for the SAP"; } } } } // container subscriber-id container int-dest-id { description "Enter the int-dest-id context"; choice int-dest-id { case top-q-tag { leaf top-q-tag { type empty; description "Use the top Q-tag of this SAP"; } } case string { leaf string { type types-submgt:int-dest-id; description "Use the configured string"; } } } } // container int-dest-id } // container defaults container single-sub-parameters { description "Enter the single-sub-parameters context"; leaf profiled-traffic-only { type boolean; default "false"; description "Include all traffic in subscriber profile"; } container non-sub-traffic { presence "Enter the 'non-sub-traffic' context"; description "Enable the non-sub-traffic context"; leaf sub-profile { type types-sros:external-named-item; description "Subscriber ID profile applied for all non-subscriber traffic"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile applicable for all non-subscriber traffic"; } leaf subscriber-id { type types-submgt:subscriber-id; sros-ext:immutable; description "Subscriber ID applied for all non-subscriber traffic"; } } // container non-sub-traffic } // container single-sub-parameters } // container sub-sla-mgmt container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list squelch-ingress-ctag-levels { type uint32 { range "0..7"; } max-elements 8; description "Squelch levels using additional VLAN C-Tag space"; } leaf vmep-filter { type boolean; default "false"; description "Suppress eth-cfm PDUs based on level lower than or equal to configured Virtual MEP"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf primary-vlan { type boolean; sros-ext:immutable; default "false"; description "MEP provisioned using MA primary VLAN ID"; } leaf direction { type types-eth-cfm:mp-direction; sros-ext:immutable; description "Direction the MEP faces"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container mc-ring { presence "Enter the 'mc-ring' context"; description "Enable the mc-ring context"; leaf ring-node { type types-sros:named-item; description "Name for the ring node associated with this SAP"; } } // container mc-ring container static-isid { description "Enter the static-isid context"; list range { key "range-id"; description "Enter the range list instance"; leaf range-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8191"; } } description "The range identifier for static ISID."; } leaf start { type types-services:isid-no-zero; description "The low value of the range for this entry."; } leaf end { type types-services:isid-no-zero; description "The high value of the range for this entry."; } } // list range } // container static-isid container managed-vlan-list { description "Enter the managed-vlan-list context"; list range { key "vlan-range"; description "Add a list entry for range"; leaf vlan-range { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { pattern "((([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4]))(\\.\\.(([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4])))?)|(default-sap)"; } } description "Range of vlans that are associated with the Mvpls SAP."; } } // list range } // container managed-vlan-list container pbb { description "Enter the pbb context"; container fault-propagation { description "Enter the fault-propagation context"; list backbone-mac-name { key "name"; description "Add a list entry for backbone-mac-name"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Backbone MAC address name."; } } // list backbone-mac-name list backbone-mac-address { key "address"; description "Add a list entry for backbone-mac-address"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address-no-zero; } description "Backbone MAC address."; } } // list backbone-mac-address } // container fault-propagation } // container pbb } // list sap list capture-sap { key "sap-id"; description "Enter the capture-sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy for SAP"; } leaf host-lockout-policy { type types-sros:named-item; description "Host lockout policy"; } leaf radius-auth-policy { type types-sros:named-item; description "RADIUS authentication policy"; } leaf nasreq-auth-policy { type types-sros:named-item; description "Diameter NASREQ application policy to use for authentication"; } leaf allow-dot1q-msaps { type boolean; default "false"; description "Create IEEE 802.1q Managed SAP's on an IEEE 802.1ad port"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance that this capture SAP tracks"; } container ingress { description "Enter the ingress context"; container filter { description "Enter the filter context"; leaf mac { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "MAC filter policy name"; } } // container filter } // container ingress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } } } // container cpu-protection container pfcp { description "Enter the pfcp context"; leaf association { type types-sros:named-item; description "Association used for PFCP messages on the capture SAP"; } } // container pfcp container trigger-packet { description "Enter the trigger-packet context"; leaf arp { type boolean; default "false"; description "ARP packet"; } leaf data { type boolean; default "false"; description "Data packet"; } leaf dhcp { type boolean; default "false"; description "DHCP packet"; } leaf dhcp6 { type boolean; default "false"; description "DHCP6 packet"; } leaf pppoe { type boolean; default "false"; description "PPPoE packet"; } leaf rtr-solicit { type boolean; default "false"; description "Router-solicit packet"; } } // container trigger-packet container msap-defaults { description "Enter the msap-defaults context"; leaf policy { type types-sros:named-item; description "MSAP policy"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf group-interface { type types-sros:interface-name; description "Group interface"; } } // container msap-defaults container ipoe-session { description "Enter the ipoe-session context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IPoE session management"; } leaf description { type types-sros:description; description "Text description"; } leaf ipoe-session-policy { type types-sros:named-item; description "IPoE Session policy to be used for new sessions"; } leaf user-db { type types-sros:named-item; description "Local user database that is used to (pre-)authenticate new sessions"; } } // container ipoe-session container dhcp { description "Enter the dhcp context"; leaf python-policy { type types-sros:named-item; description "Python policy"; } leaf user-db { type types-sros:named-item; description "Local user database"; } } // container dhcp container dhcp6 { description "Enter the dhcp6 context"; leaf python-policy { type types-sros:named-item; description "Python policy"; } leaf user-db { type types-sros:named-item; description "Local user database"; } } // container dhcp6 container pppoe { description "Enter the pppoe context"; leaf policy { type types-sros:named-item; description "PPP policy"; } leaf python-policy { type types-sros:named-item; description "Python policy"; } leaf user-db { type types-sros:named-item; description "Local user database"; } } // container pppoe container router-solicit { description "Enter the router-solicit context"; leaf user-db { type types-sros:named-item; description "Local user database"; } } // container router-solicit } // list capture-sap list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the interface"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address for the interface"; } container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 } // container hold-time container ipv4 { description "Enter the ipv4 context"; container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-address; description "IP address of the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } } // container primary container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf timeout { type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "ARP timeout value to determine how long an ARP entry remains in the ARP cache"; } list static-neighbor { key "ipv4-address"; description "Enter the static-neighbor list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "IPv4 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; description "Media-dependent physical address"; } } // list static-neighbor } // container neighbor-discovery } // container ipv4 } // list interface container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IGMP host tracking"; } leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "260"; description "Time during which the system continues to track inactive hosts"; } } // container igmp-host-tracking container wlan-gw { description "Enter the wlan-gw context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WLAN-GW"; } leaf description { type types-sros:description; description "Text description"; } } // container wlan-gw container gsmp { description "Enter the gsmp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of GSMP"; } list group { key "name"; max-elements 1024; description "Enter the group list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "GSMP neighbor group name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the GSMP group"; } leaf description { type types-sros:description; description "Text description"; } leaf keepalive { type types-sros:time-duration { range "1..25"; } units "seconds"; default "10"; description "Keepalive value for the GSMP connections in this group"; } leaf hold-multiplier { type uint32 { range "1..100"; } default "3"; description "Hold-multiplier for the GSMP connections in this group"; } leaf persistency { type boolean; default "false"; description "Store DSL line information when the GSMP connection terminates"; } leaf idle-filter { type boolean; default "false"; description "Filter ANCP messages from IDLE DSL lines"; } container ancp { description "Enter the ancp context"; leaf dynamic-topology-discovery { type boolean; default "true"; description "Enable the ANCP dynamic topology discovery capability"; } leaf oam { type boolean; default "false"; description "Enable GSMP ANCP OAM capability at startup of GSMP connection"; } } // container ancp list neighbor { key "remote-address"; description "Enter the neighbor list instance"; leaf remote-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "GSMP neighbor remote IP address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the GSMP neighbor"; } leaf description { type types-sros:description; description "Text description"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Restrict connections to this local address only within the service running ANCP"; } container priority-marking { description "Enter the priority-marking context"; choice priority-marking { case dscp { leaf dscp { type types-qos:dscp-name; description "DSCP that is used while remarking the in profile packets"; } } case prec { leaf prec { type types-qos:precedence-value; description "Precedence priority marking"; } } } } // container priority-marking } // list neighbor } // list group } // container gsmp container provider-tunnel { presence "Enter the 'provider-tunnel' context"; description "Enable the provider-tunnel context"; container inclusive { description "Enter the inclusive context"; leaf data-delay-interval { type int32 { range "3..180"; } units "seconds"; default "15"; description "Configure the delay interval that the system waits before BUM packets are forwarded over the provider-tunnel."; } leaf owner { type enumeration { enum "bgp-ad" { value 1; } enum "bgp-vpls" { value 2; } enum "bgp-evpn-mpls" { value 3; } } description "Configure provider-tunnel owner"; } leaf root-and-leaf { type boolean; default "false"; description "Configure whether the provider tunnel acts as a leaf or both a root and leaf"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of P2MP LSP as the I-PMSI"; } choice ipmsi { case mldp { leaf mldp { type empty; description "Enable/Disable MLDP"; } } case rsvp { container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf lsp-template { type types-sros:named-item; description "Configure LSP template name"; } } // container rsvp } } } // container inclusive } // container provider-tunnel container isid-policy { description "Enter the isid-policy context"; list entry { key "range-entry-id"; description "Enter the entry list instance"; leaf range-entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8191"; } } description "Range identifier for the ISID policy."; } leaf advertise-local { type boolean; default "true"; description "Local advertisement of the range."; } leaf use-def-mcast { type boolean; default "false"; description "Use default multicast tree to propagate ISIS range."; } container range { description "Enter the range context"; leaf start { type types-services:isid-no-zero; description "The low value of the range for this entry."; } leaf end { type types-services:isid-no-zero; description "The high value of the range for this entry."; } } // container range } // list entry } // container isid-policy } // list vpls list vprn { key "service-name"; description "Enter the vprn list instance"; leaf service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type types-services:customer-name; sros-ext:immutable; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf hash-label { type boolean; default "false"; description "Include hash label"; } leaf autonomous-system { type uint32 { range "1..max"; } description "AS number advertised to peers for this router"; } leaf ecmp { type types-router:ip-ecmp; default "1"; description "Maximum equal-cost routes for routing table instance"; } leaf entropy-label { type boolean; default "false"; description "Use entropy label"; } leaf fib-priority { type enumeration { enum "standard" { value 1; } enum "high" { value 2; } } default "standard"; description "FIB priority for VPRN BGP routes"; } leaf multicast-info-policy { type types-sros:named-item; description "Multicast policy name for virtual router"; } leaf router-id { type types-router:router-id; description "Unique router ID for the router in the AS"; } leaf weighted-ecmp { type enumeration { enum "false" { value 0; } enum "true" { value 1; } enum "strict" { value 2; } } default "false"; description "Allow weighted load-balancing"; } leaf label-mode { type enumeration { enum "vrf" { value 1; } enum "next-hop" { value 2; } } default "vrf"; description "Allocation mode for VPRN service labels"; } leaf allow-export-bgp-vpn { type boolean; default "false"; description "Include BGP-VPN routes for export"; } leaf ignore-nh-metric { type boolean; default "false"; description "Ignore next hop metric"; } leaf export-inactive-bgp { type boolean; default "false"; description "Export best BGP route as a VPN-IP route even if inactive due to a preferred route from another PE"; } leaf ecmp-unequal-cost { type boolean; default "false"; description "Enable/disable ecmp unequal cost capability. If enabled, BGP paths with unequal cost can be part of the same ECMP set."; } leaf class-forwarding { type boolean; default "false"; description "Enable/disable class forwarding. If class forwarding is enabled, packets are forwarded based on their forwarding class."; } leaf vprn-type { type enumeration { enum "regular" { value 1; } enum "hub" { value 2; } enum "spoke" { value 3; } enum "subscriber-split-horizon" { value 4; } } default "regular"; description "VPRN type"; } leaf carrier-carrier-vpn { type boolean; default "false"; description "Allow VPRN service to support a Carrier Supporting Carrier model"; } leaf selective-fib { type boolean; default "true"; description "Enable/disable selective FIB. If disabled, all active routes of this routing instance are installed on all line cards."; } leaf route-distinguisher { status obsolete; type types-services:vpn-route-distinguisher-or-auto-rd; description "Route distinguisher"; } container nat { presence "Enter the 'nat' context"; description "Enable the nat context"; container inside { description "Enter the inside context"; container l2-aware { description "Enter the l2-aware context"; list subscribers { key "prefix"; description "Add a list entry for subscribers"; leaf prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-prefix-with-host-bits; } description "Layer-2 Aware NAT subscriber prefix"; } } // list subscribers } // container l2-aware container large-scale { description "Enter the large-scale context"; leaf nat-policy { type types-sros:external-named-item; sros-ext:isa-auto-clear-on-modify; description "NAT policy for LSN"; } container nat44 { description "Enter the nat44 context"; leaf max-subscriber-limit { type types-nat:lsn-max-subscriber-limit; sros-ext:isa-auto-clear-on-modify; description "Largest value for all subscriber limits in each deterministic pool"; } list destination-prefix { key "ip-prefix-length"; max-elements 6144; description "Enter the destination-prefix list instance"; leaf ip-prefix-length { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "Traffic sent to destinations within this prefix will be NATed"; } leaf nat-policy { type types-sros:external-named-item; sros-ext:isa-auto-clear-on-modify; description "NAT policy"; } } // list destination-prefix container deterministic { description "Enter the deterministic context"; list policy-map { key "source-prefix"; description "Enter the policy-map list instance"; leaf source-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "Source prefix that adds traffic to NAT pool"; } leaf nat-policy { type types-sros:external-named-item; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "NAT policy"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this prefix"; } list map { key "from to"; description "Enter the map list instance"; leaf from { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Beginning of the range for IPv4 addresses that is mapped on the inside to outside IPv4 addresses"; } leaf to { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Ending of the range for IPv4 addresses that is mapped on the inside to outside IPv4 addresses"; } leaf first-outside-address { type types-sros:ipv4-address; sros-ext:immutable; description "IPv6 address range that is mapped to outside IPv4 address"; } } // list map } // list policy-map } // container deterministic } // container nat44 container dual-stack-lite { description "Enter the dual-stack-lite context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Dual Stack Lite"; } leaf max-subscriber-limit { type types-nat:lsn-max-subscriber-limit; sros-ext:isa-auto-clear-on-modify; description "Largest value for all subscriber limits in each deterministic pool"; } leaf subscriber-prefix-length { type types-nat:ipv6-subscriber-prefix-length; sros-ext:isa-auto-clear-on-modify; description "IPv6 prefix length of the Dual Stack Lite subscribers"; } list endpoint { key "address"; max-elements 128; description "Enter the endpoint list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "Dual Stack Lite IPv6 address"; } leaf ip-fragmentation { type types-nat:ip-fragmentation; description "Fragmentation control of the AFTR originated downstream IPv6 traffic"; } leaf tunnel-mtu { type uint32 { range "512..9212"; } default "1500"; description "Maximum size of IPv4 packet inside of DS-Lite tunnel"; } leaf reassembly { type boolean; default "false"; description "Reassembly of IPv6 payload datagrams"; } } // list endpoint container deterministic { description "Enter the deterministic context"; list policy-map { key "source-prefix"; description "Enter the policy-map list instance"; leaf source-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-prefix; } description "Source prefix that adds traffic to NAT pool"; } leaf nat-policy { type types-sros:external-named-item; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "NAT policy"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this prefix"; } list map { key "from to"; description "Enter the map list instance"; leaf from { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "Beginning of the range for IPv6 addresses that is mapped on the inside to outside IPv6addresses"; } leaf to { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "Ending of the range for IPv6 addresses that is mapped on the inside to outside IPv6 addresses"; } leaf first-outside-address { type types-sros:ipv4-address; sros-ext:immutable; description "IPv6 address range that is mapped to outside IPv4 address"; } } // list map } // list policy-map } // container deterministic } // container dual-stack-lite container nat64 { presence "Enter the 'nat64' context"; description "Enable the nat64 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NAT64"; } leaf drop-zero-ipv4-checksum { type boolean; default "false"; description "Drop UDP datagrams with zero IPv4 checksum"; } leaf insert-ipv6-fragment-header { type boolean; default "false"; description "Include IPv6 fragment header to indicate that the sender allows fragmentation"; } leaf ip-fragmentation { type types-nat:ip-fragmentation; description "Control fragmentation of originated downstream IPv6 traffic"; } leaf ipv6-mtu { type uint32 { range "1280..9212"; } default "1520"; description "Size of the IPv6 downstream packet in NAT64"; } leaf prefix { type types-sros:ipv6-prefix; sros-ext:isa-auto-clear-on-modify; default "64:ff9b::/96"; description "IPv6 prefix to derive the IPv6 address from the IPv4 address"; } leaf subscriber-prefix-length { type types-nat:ipv6-subscriber-prefix-length; sros-ext:isa-auto-clear-on-modify; description "IPv6 prefix length for the NAT64 subscribers"; } container tos { description "Enter the tos context"; container upstream { description "Enter the upstream context"; leaf set-tos { type union { type enumeration { enum "use-ipv6" { value -1; } } type uint32 { range "0..255"; } } default "use-ipv6"; description "TOS/DSCP bits in IPv4 frame in the upstream direction"; } } // container upstream container downstream { description "Enter the downstream context"; leaf use-ipv4 { type boolean; default "false"; description "Copy TOS/DSCP bits from the incoming IPv4 frame to the outgoing IPv6 frame"; } } // container downstream } // container tos } // container nat64 container subscriber-identification { description "Enter the subscriber-identification context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of subscriber identification"; } leaf description { type types-sros:description; description "Text description"; } leaf drop-unidentified-traffic { type boolean; default "false"; description "Drop traffic from unidentified flows"; } container attribute { description "Enter the attribute context"; leaf vendor { type types-nat:nat-subscriber-identification-attr-vendor-id; default "nokia"; description "The RADIUS Vendor"; } leaf type { type types-nat:nat-subscriber-identification-attr-type; default "alc-sub-string"; description "The RADIUS Vendor-Id value corresponding with this vendor."; } } // container attribute container radius-proxy-server { presence "Enter the 'radius-proxy-server' context"; description "Enable the radius-proxy-server context"; leaf router-instance { type string; description "Router instance"; } leaf server { type types-sros:named-item; description "Server name"; } } // container radius-proxy-server } // container subscriber-identification container dnat-only { description "Enter the dnat-only context"; leaf source-prefix-list { type types-sros:named-item; description "NAT prefix list that contains source IP addresses"; } } // container dnat-only container redundancy { description "Enter the redundancy context"; leaf peer { type types-sros:ipv4-unicast-address; description "IP address of the NAT redundancy peer for this virtual router instance"; } leaf peer6 { type types-sros:ipv6-unicast-address; description "IPv6 address of the NAT redundancy peer for this virtual router instance"; } leaf steering-route { type types-sros:ipv4-unicast-prefix; description "IP address and prefix length of the steering route"; } } // container redundancy container filters { description "Enter the filters context"; container downstream { description "Enter the downstream context"; leaf ipv4 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container downstream } // container filters } // container large-scale } // container inside container outside { description "Enter the outside context"; leaf mtu { type uint32 { range "512..9000"; } description "MTU for downstream traffic"; } container filters { description "Enter the filters context"; container downstream { description "Enter the downstream context"; leaf ipv4 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container downstream container upstream { description "Enter the upstream context"; leaf ipv4 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container upstream } // container filters container dnat-only { description "Enter the dnat-only context"; leaf route-limit { type uint32 { range "1..131072"; } default "32768"; description "Number that is used to limit internal routes for downstream traffic"; } } // container dnat-only list pool { key "name"; max-elements 4096; description "Enter the pool list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "NAT pool name"; } leaf type { type types-nat:pool-type; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "NAT pool type"; } leaf description { type types-sros:description; description "Text description"; } leaf mode { type types-nat:pool-mode; sros-ext:isa-auto-clear-on-modify; description "Mode of operation of this NAT address pool"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the outside NAT pool"; } choice isa { case nat { leaf nat-group { type uint32 { range "1..4"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "Create a NAT group"; } } case wlan-gw { leaf wlan-gw-group { type types-isa:wlan-gw-group-id; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "Create a WLAN GW group for NAT"; } } } container applications { description "Enter the applications context"; leaf agnostic { type boolean; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; default "false"; description "NAT pool to create in the outside routing context"; } } // container applications container port-forwarding { description "Enter the port-forwarding context"; leaf dynamic-block-reservation { type boolean; sros-ext:isa-auto-clear-on-modify; default "false"; description "Dynamic block to reserve for each subscriber with a forwarding port"; } leaf range-end { type uint16 { range "0|1023..65535"; } sros-ext:isa-auto-clear-on-modify; description "End of the wildcard range for port forwards"; } } // container port-forwarding container port-reservation { description "Enter the port-reservation context"; choice port-reservation { default "port-blocks"; case port-blocks { leaf port-blocks { type uint16 { range "1..64512"; } sros-ext:isa-auto-clear-on-modify; description "Number of dynamic port blocks per outside IP address"; } } case ports { leaf ports { type uint16 { range "1..32256"; } sros-ext:isa-auto-clear-on-modify; description "Number of ports in each dynamic port block within the pool"; } } } } // container port-reservation container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; description "Percentage for high watermark"; } leaf low { type types-sros:percent; description "Percentage for low watermark"; } } // container watermarks container large-scale { description "Enter the large-scale context"; leaf subscriber-limit { type uint32 { range "1..65535"; } sros-ext:isa-auto-clear-on-modify; description "Maximum number of subscribers per IP address"; } container redundancy { description "Enter the redundancy context"; choice redundancy { default "export-monitor-route"; case follow-pool { container follow { description "Enter the follow context"; leaf router-instance { type string; description "The virtual router instance of the pool."; } leaf name { type types-sros:named-item; description "NAT pool name"; } } // container follow } case export-monitor-route { leaf export-route { type types-sros:ipv4-unicast-prefix; description "Route to export to the peer"; } leaf monitor-route { type types-sros:ipv4-unicast-prefix; description "Monitor the peer route"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multi-chassis redundancy"; } } } } // container redundancy container deterministic { description "Enter the deterministic context"; leaf port-reservation { type types-nat:port-number; sros-ext:isa-auto-clear-on-modify; description "Number of ports per deterministic port-block"; } } // container deterministic } // container large-scale container l2-aware { description "Enter the l2-aware context"; leaf external-assignment { type boolean; sros-ext:isa-auto-clear-on-modify; default "false"; description "External IP address for Layer-2-aware"; } } // container l2-aware list address-range { key "start end"; max-elements 4096; description "Enter the address-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Start address of this range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "End address of this range"; } leaf description { type types-sros:description; description "Text description"; } leaf drain { type boolean; default "false"; description "Start or stop draining this NAT address range"; } } // list address-range } // list pool } // container outside container map { description "Enter the map context"; list map-domain { key "domain-name"; description "Add a list entry for map-domain"; leaf domain-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "MAP domain name"; } } // list map-domain } // container map } // container nat container firewall { description "Enter the firewall context"; list domain { key "name"; max-elements 1024; description "Enter the domain list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Firewall domain name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the firewall domain"; } choice isa { case nat { leaf nat-group { type uint32 { range "1..4"; } sros-ext:immutable; description "NAT group for this domain"; } } case wlan-gw { leaf wlan-gw-group { type types-isa:wlan-gw-group-id; sros-ext:immutable; description "WLAN GW group used for NAT in this domain"; } } } container dhcpv6-server { description "Enter the dhcpv6-server context"; leaf router-instance { type string; description "Router name"; } leaf name { type types-sros:named-item; description "DHCPv6 server name"; } } // container dhcpv6-server list prefix { key "ip-prefix"; max-elements 4096; description "Enter the prefix list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-prefix; } description "IP prefix and prefix length for the domain firewall"; } leaf description { type types-sros:description; description "Text description"; } } // list prefix } // list domain } // container firewall container gtp { description "Enter the gtp context"; container s11 { description "Enter the s11 context"; list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface where s11 is enabled."; } leaf apn-policy { type types-sros:named-item; description "The APN policy for this interface."; } } // list interface container peer-profile-map { description "Enter the peer-profile-map context"; list prefix { key "peer-prefix"; description "Enter the prefix list instance"; leaf peer-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Attribute ip-prefix/ip-prefix-length for address."; } leaf peer-profile { type types-sros:named-item; description "Peer profile used for peers in this prefix"; } } // list prefix } // container peer-profile-map } // container s11 container upf-data-endpoint { presence "Enter the 'upf-data-endpoint' context"; description "Enable the upf-data-endpoint context"; leaf interface { type types-sros:interface-name; description "The interface on which the data endpoint gtp packets are enabled."; } } // container upf-data-endpoint container uplink { presence "Enter the 'uplink' context"; description "Enable the uplink context"; leaf apn { type string { length "1..80"; pattern "([a-zA-Z0-9]+-+)*([a-zA-Z0-9]+\\.([a-zA-Z0-9]+-+)*)*[a-zA-Z0-9]+" { error-message "wrong format of apn name"; } } description "Network Identifier part of APN"; } leaf pdn-type { type enumeration { enum "ipv4" { value 0; } enum "ipv6" { value 1; } enum "ipv4v6" { value 2; } } default "ipv4"; description "Default 3GPP PDN in GTP"; } container peer-profile-map { description "Enter the peer-profile-map context"; list prefix { key "peer-prefix"; description "Enter the prefix list instance"; leaf peer-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Attribute ip-prefix/ip-prefix-length for address."; } leaf peer-profile { type types-sros:named-item; description "Peer profile name"; } } // list prefix } // container peer-profile-map } // container uplink } // container gtp container l2tp { presence "Enter the 'l2tp' context"; description "Enable the l2tp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of L2TP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:base-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:base-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:base-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:base-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:base-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:base-max-retries; description "Maximum retries for unestablished tunnels"; } leaf rtm-debounce-time { type types-l2tp:rtm-debounce-time; description "Debounce timer that declares L2TP action for route table management events"; } leaf radius-accounting-policy { type types-sros:named-item; description "RADIUS accounting policy"; } leaf peer-address-change-policy { type types-l2tp:peer-address-change-policy-option; description "Reaction when a L2TP response is received from a different address"; } leaf local-name { type types-l2tp:host-name; description "Local host name"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TP password"; } leaf challenge { type boolean; default "false"; description "Use challenge-response authentication"; } leaf avp-hiding { type types-l2tp:base-avp-hiding; description "Attribute of the Value Pair (AVP) hiding algorithm"; } leaf session-limit { type types-l2tp:base-session-limit; description "L2TP session limit of this router"; } leaf group-session-limit { type types-l2tp:base-session-limit; description "L2TP session limit for each group of this router"; } leaf tunnel-session-limit { type types-l2tp:base-tunnel-session-limit; description "L2TP session limit for each tunnel of this router"; } leaf session-assign-method { type types-l2tp:base-session-assign-method; description "Session assignment method"; } leaf next-attempt { type enumeration { enum "same-preference-level" { value 0; } enum "next-preference-level" { value 1; } } default "next-preference-level"; description "Tunnel that is selected when previous session setup failed"; } container exclude-avps { description "Enter the exclude-avps context"; leaf calling-number { type boolean; default "false"; description "Calling Number AVP to exclude"; } leaf initial-rx-lcp-conf-req { type boolean; default "false"; description "Exclude the Initial Received LCP CONFREQ AVP"; } } // container exclude-avps container ignore-avps { description "Enter the ignore-avps context"; leaf sequencing-required { type boolean; default "false"; description "Ignore Sequencing Required AVP"; } } // container ignore-avps container replace-result-code { description "Enter the replace-result-code context"; leaf cdn-invalid-dst { type boolean; default "false"; description "Replace result code with general error code"; } leaf cdn-permanent-no-facilities { type boolean; default "false"; description "Replace result code with general error"; } leaf cdn-temporary-no-facilities { type boolean; default "false"; description "Replace result code with general error"; } } // container replace-result-code container lac { description "Enter the lac context"; leaf df-bit { type boolean; default "true"; description "Send all L2TP packets with DF bit set to 1"; } leaf calling-number-format { type types-sros:ascii-specification { length "1..255"; pattern "([^%]+|%[Scrsl%])+"; } default "%S %s"; description "Calling Number AVP for L2TP control messages"; } container cisco-nas-port { description "Enter the cisco-nas-port context"; leaf ethernet { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[smpoi])+"; } description "L2TP Cisco NAS port AVP with binary patterns for Ethernet"; } } // container cisco-nas-port } // container lac container tunnel-selection-blacklist { description "Enter the tunnel-selection-blacklist context"; leaf max-time { type int32 { range "1..60"; } units "minutes"; default "5"; description "Max time that a tunnel or peer can remain in denylist"; } leaf max-list-length { type union { type int32 { range "1..65535"; } type enumeration { enum "infinite" { value -1; } } } default "infinite"; description "Tunnels or peers in the denylist"; } leaf timeout-action { type enumeration { enum "remove-from-blacklist" { value 0; } enum "try-one-session" { value 1; } } default "remove-from-blacklist"; description "Action when a tunnel or peer exceeds time in denylist"; } container add-tunnel-on { description "Enter the add-tunnel-on context"; leaf address-change-timeout { type boolean; default "false"; description "Enable a timed-out tunnel to be forced to the denylist"; } leaf cdn-err-code { type boolean; default "false"; description "Add to deny if CDN is received with code: General error"; } leaf cdn-invalid-dst { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 6"; } leaf cdn-permanent-no-facilities { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 5"; } leaf cdn-temporary-no-facilities { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 4"; } leaf stop-ccn-err-code { type boolean; default "false"; description "Add to denylist if received with general error code"; } leaf stop-ccn-other { type boolean; default "false"; description "Add to denylist if StopCCN received with general error"; } leaf tx-cdn-not-established-in-time { type boolean; default "false"; description "Add to denylist if CDN transmitted with result code"; } } // container add-tunnel-on } // container tunnel-selection-blacklist container failover { description "Enter the failover context"; leaf recovery-method { type types-l2tp:base-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:base-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } leaf recovery-max-session-lifetime { type uint32 { range "2..4294967295"; } units "centiseconds"; default "2"; description "Subset of sessions that this system attempts to synchronize in the Session State Synchronization phase"; } list track-srrp { key "id"; description "Enter the track-srrp list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4294967295"; } } description "SRRP instance ID for multi-chassis redundancy failover"; } leaf peer { type types-sros:ip-unicast-address; description "Multi-chassis peer address"; } leaf sync-tag { type types-sros:named-item; description "Synchronization tag on the multi-chassis peer"; } } // list track-srrp } // container failover container l2tpv3 { description "Enter the l2tpv3 context"; leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TPv3 password"; } leaf cookie-length { type types-l2tp:base-v3-cookie-length; description "Cookie field length"; } leaf digest-type { type types-l2tp:base-v3-digest-type; description "Hashing algorithm that calculates the message digest"; } leaf nonce-length { type types-l2tp:base-v3-nonce-length; description "Length of the local L2TPv3 nonce (random number)"; } leaf public-tcp-mss-adjust { type types-l2tp:base-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:base-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } container transport-type { description "Enter the transport-type context"; leaf ip { type boolean; default "false"; description "Use IP as the transport type for the L2TPv3 tunnel"; } } // container transport-type } // container l2tpv3 container ethernet-tunnel { description "Enter the ethernet-tunnel context"; leaf reconnect-timeout { type types-l2tp:base-v3-reconnect-timeout; description "Timeout for a session setup retry"; } } // container ethernet-tunnel list group { key "tunnel-group-name"; description "Enter the group list instance"; leaf tunnel-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64 { length "1..63"; } } description "Tunnel group name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2TP tunnel group"; } leaf description { type types-sros:description; description "Text description"; } leaf protocol { type types-l2tp:protocol-version; sros-ext:immutable; description "Protocol version"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:child-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:child-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:child-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:child-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:child-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:child-max-retries; description "Maximum retries for unestablished tunnels"; } leaf radius-accounting-policy { type types-sros:named-item; description "RADIUS accounting policy"; } leaf local-name { type types-l2tp:host-name; description "The local host name."; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "The password."; } leaf challenge { type types-sros:bool-with-inherit; description "Enable/disable the use of challenge-response authentication."; } leaf avp-hiding { type types-l2tp:child-avp-hiding; description "The AVP hiding algorithm"; } leaf session-limit { type types-l2tp:child-session-limit; description "Session limit"; } leaf session-assign-method { type types-l2tp:child-session-assign-method; description "Session assignment method"; } container failover { description "Enter the failover context"; leaf recovery-method { type types-l2tp:child-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:child-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } } // container failover container lac { description "Enter the lac context"; leaf df-bit { type types-sros:bool-with-inherit; description "DF (do not fragment) bit in data traffic transmitted as LAC"; } } // container lac container l2tpv3 { description "Enter the l2tpv3 context"; leaf rem-router-id { type types-sros:ipv4-address; default "0.0.0.0"; description "Filter on remote router ID"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TPv3 password"; } leaf track-password-change { type boolean; default "false"; description "Enable tracking of password changes"; } leaf cookie-length { type types-l2tp:child-v3-cookie-length; description "Cookie field length"; } leaf digest-type { type types-l2tp:child-v3-digest-type; description "Hashing algorithm that calculates the message digest"; } leaf nonce-length { type types-l2tp:child-v3-nonce-length; description "Length for the local L2TPv3 nonce (random number)"; } leaf public-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP Maximum Segment Size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } container pw-cap-list { description "Enter the pw-cap-list context"; leaf ethernet { type boolean; default "false"; description "Advertise Ethernet pseudowire type"; } leaf ethernet-vlan { type boolean; default "false"; description "Advertise Ethernet VLAN pseudowire type"; } } // container pw-cap-list } // container l2tpv3 container ethernet-tunnel { description "Enter the ethernet-tunnel context"; leaf reconnect-timeout { type types-l2tp:child-v3-reconnect-timeout; description "Timeout for a session setup retry at group level"; } } // container ethernet-tunnel container lns { description "Enter the lns context"; leaf load-balance-method { type types-l2tp:base-load-balance-method; default "per-session"; description "New sessions for L2TP ISA MDA"; } leaf lns-group { type types-l2tp:lns-group-id; description "ISA LNS group"; } container ppp { description "Enter the ppp context"; leaf authentication-policy { type types-sros:named-item; description "Authentication policy when a DHCP message is received"; } leaf user-db { type types-sros:named-item; description "Local user database for PPP PAP and CHAP authentication"; } leaf proxy-lcp { type boolean; default "false"; description "Proxy LCP AVPs that are received from LAC"; } leaf lcp-ignore-magic-numbers { type boolean; default "false"; description "Check Magic-Number field in LCP Echo-Request and LCP Echo-Reply messages"; } leaf lcp-force-ack-accm { type boolean; default "false"; description "Force acknowledgement of the LCP Asynchronous Control Character Map (ACCM) option"; } leaf reject-disabled-ncp { type boolean; default "false"; description "Enable/disable rejection of disabled Network Control Protocols (NCP)"; } leaf mtu { type types-l2tp:base-ppp-mtu; default "1500"; description "Maximum PPP MTU size"; } leaf proxy-authentication { type boolean; default "false"; description "Use authentication AVPs that are received from LAC"; } leaf authentication { type types-l2tp:base-ppp-auth-protocol; default "pref-chap"; description "PPP authentication protocol to negotiate"; } leaf ipcp-subnet-negotiation { type boolean; default "false"; description "Allow IPCP subnet negotiation for PPPoE hosts"; } container default-group-interface { description "Enter the default-group-interface context"; leaf interface { type types-sros:named-item; description "Group interface"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } } // container default-group-interface container keepalive { description "Enter the keepalive context"; leaf interval { type types-l2tp:base-lcp-keepalive-interval; default "30"; description "PPP keepalive interval"; } leaf multiplier { type types-l2tp:base-lcp-keepalive-multiplier; default "3"; description "PPP keepalive multiplier"; } } // container keepalive container chap-challenge-length { description "Enter the chap-challenge-length context"; leaf start { type types-l2tp:base-chap-challenge-length; default "32"; description "Minimum PPP CHAP challenge length"; } leaf end { type types-l2tp:base-chap-challenge-length; default "64"; description "Maximum PPP CHAP challenge length"; } } // container chap-challenge-length } // container ppp container mlppp { description "Enter the mlppp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MLPPP in this L2TP tunnel group"; } leaf max-links { type types-l2tp:base-mlppp-max-links; default "1"; description "Maximum MLPPP links"; } leaf interleave { type boolean; default "false"; description "Enable link fragmentation and interleaving"; } leaf max-fragment-delay { type types-l2tp:base-mlppp-max-frag-delay; default "no-fragmentation"; description "Maximum fragment delay caused by transmission on a link"; } leaf reassembly-timeout { type types-l2tp:base-mlppp-reassembly-timeout; default "1000"; description "Reassembly timeout"; } leaf short-sequence-numbers { type boolean; default "false"; description "Request a peer to send short sequence numbers"; } container endpoint { description "Enter the endpoint context"; choice endpoint { case ip { leaf ip { type types-ppp:mlppp-ip-endpoint; description "Endpoint ID as an IP address"; } } case mac { leaf mac { type types-ppp:mlppp-mac-endpoint; description "Endpoint ID as a MAC address"; } } } } // container endpoint } // container mlppp } // container lns list tunnel { key "tunnel-name"; max-elements 31; description "Enter the tunnel list instance"; leaf tunnel-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item { length "1..32"; } } description "Tunnel name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2TP tunnel"; } leaf description { type types-sros:description; description "Text description"; } leaf preference { type uint32 { range "0..16777215"; } default "50"; description "Tunnel preference number with its group"; } leaf auto-establish { type boolean; default "false"; description "Allow the tunnel to be automatically set up by the system"; } leaf peer { type types-sros:ipv4-unicast-address; description "Peer address"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:child-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:child-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:child-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:child-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:child-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:child-max-retries; description "Maximum retries for unestablished tunnels"; } leaf radius-accounting-policy { type types-sros:named-item; description "RADIUS accounting policy"; } leaf remote-name { type types-l2tp:host-name; description "Remote host name for tunnel"; } leaf local-name { type types-l2tp:host-name; description "The local host name."; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "The password."; } leaf challenge { type types-sros:bool-with-inherit; description "Enable/disable the use of challenge-response authentication."; } leaf avp-hiding { type types-l2tp:child-avp-hiding; description "The AVP hiding algorithm"; } leaf session-limit { type types-l2tp:child-tunnel-session-limit; description "L2TP session limit for each tunnel of this router"; } container failover { description "Enter the failover context"; leaf recovery-method { type types-l2tp:child-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:child-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } } // container failover container lac { description "Enter the lac context"; leaf df-bit { type types-sros:bool-with-inherit; description "DF (do not fragment) bit in data traffic transmitted as LAC"; } } // container lac container l2tpv3 { description "Enter the l2tpv3 context"; leaf public-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } } // container l2tpv3 container lns { description "Enter the lns context"; leaf load-balance-method { type types-l2tp:child-load-balance-method; description "New sessions for L2TP ISA MDA"; } leaf lns-group { type types-l2tp:lns-group-id; description "ISA LNS group"; } container ppp { description "Enter the ppp context"; leaf authentication-policy { type types-sros:named-item; description "Authentication policy when a DHCP message is received"; } leaf user-db { type types-sros:named-item; description "Local user database for PPP PAP and CHAP authentication"; } leaf proxy-lcp { type types-sros:bool-with-inherit; description "Use the Proxy LCP AVPs that are received from the LAC"; } leaf lcp-ignore-magic-numbers { type types-sros:bool-with-inherit; description "Magic-Number field in LCP Echo-Request and LCP Echo-Reply messages that are checked"; } leaf lcp-force-ack-accm { type types-sros:bool-with-inherit; description "Forced acknowledgement of the LCP Asynchronous Control Character Map (ACCM) option"; } leaf reject-disabled-ncp { type types-sros:bool-with-inherit; description "Enable/disable rejection of disabled Network Control Protocols (NCP)"; } leaf mtu { type types-l2tp:child-ppp-mtu; description "Maximum PPP MTU size"; } leaf proxy-authentication { type types-sros:bool-with-inherit; description "Authentication AVPs that are received from LAC"; } leaf authentication { type types-l2tp:child-ppp-auth-protocol; description "PPP authentication protocol to negotiate"; } leaf ipcp-subnet-negotiation { type types-sros:bool-with-inherit; description "Use of IPCP subnet negotiation for PPPoE hosts"; } container default-group-interface { description "Enter the default-group-interface context"; leaf interface { type types-sros:named-item; description "Group interface"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } } // container default-group-interface container keepalive { description "Enter the keepalive context"; leaf interval { type types-l2tp:child-lcp-keepalive-interval; description "PPP keepalive interval"; } leaf multiplier { type types-l2tp:child-lcp-keepalive-multiplier; description "PPP keepalive multiplier"; } } // container keepalive container chap-challenge-length { description "Enter the chap-challenge-length context"; leaf start { type types-l2tp:child-chap-challenge-length; description "Minimum PPP CHAP challenge length"; } leaf end { type types-l2tp:child-chap-challenge-length; description "Minimum PPP CHAP challenge length"; } } // container chap-challenge-length } // container ppp container mlppp { description "Enter the mlppp context"; leaf admin-state { type types-sros:admin-state-with-inherit; description "Administrative state of MLPPP in the L2TP tunnel"; } leaf max-links { type types-l2tp:child-mlppp-max-links; description "Maximum MLPPP links"; } leaf interleave { type types-sros:bool-with-inherit; description "Use of Link fragmentation and interleaving"; } leaf max-fragment-delay { type types-l2tp:child-mlppp-max-frag-delay; description "Maximum fragment delay caused by transmission on a link"; } leaf reassembly-timeout { type types-l2tp:child-mlppp-reassembly-timeout; description "Reassembly timeout"; } leaf short-sequence-numbers { type types-sros:bool-with-inherit; description "Request a peer to send short sequence numbers"; } container endpoint { description "Enter the endpoint context"; choice endpoint { case ip { leaf ip { type types-ppp:mlppp-ip-endpoint; description "Endpoint ID as an IP address"; } } case mac { leaf mac { type types-ppp:mlppp-mac-endpoint; description "Endpoint ID as a MAC address"; } } } } // container endpoint } // container mlppp } // container lns } // list tunnel } // list group } // container l2tp container igmp { presence "Enter the 'igmp' context"; description "Enable the igmp context"; leaf group-if-query-source-address { type types-sros:ipv4-unicast-address; description "Default query-source address for all group interfaces"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } units "seconds"; default "1"; description "Time between group-specific query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..10"; } default "2"; description "Number of retries after message loss"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP"; } container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address that specifies the start of the group range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address that specifies the end of the group range"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } // list group-range } // container ssm-translate list interface { key "ip-interface-name"; description "Enter the interface list instance"; leaf ip-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name."; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf subnet-check { type boolean; default "true"; description "Allow subnet checking"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf redundant-mcast { type boolean; default "false"; description "Use interface as a redundant-pair member for multicast"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-mcast-cac:constraints-level; } description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } description "Bandwidth available for this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..64"; } } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; description "Level ID to associate with number of down LAG ports"; } } // list number-down } // container mc-constraints container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address that specifies the start of the group range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address that specifies the end of the group range"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } // list group-range } // container ssm-translate container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Group address of static IGMP multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group list group-range { key "start end step"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address for the start of the static group range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "IP address for the end of the static group range"; } leaf step { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Step interval in the group-range address"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group-range } // container static } // list interface list group-interface { key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf subnet-check { type boolean; default "true"; description "Allow subnet checking"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow IGMP traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv4-unicast-address; description "Source address for IGMP queries"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list group-interface list forwarding-group-interface { key "forwarding-service group-interface-name"; description "Enter the forwarding-group-interface list instance"; leaf forwarding-service { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Forwarding service for a subscriber interface in a retailer context"; } leaf group-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf subnet-check { type boolean; default "true"; description "Allow subnet checking"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow IGMP traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv4-unicast-address; description "Source address for IGMP queries"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list forwarding-group-interface } // container igmp container ipsec { description "Enter the ipsec context"; leaf allow-reverse-route-override-type { type enumeration { enum "same-idi" { value 1; } enum "any-idi" { value 2; } } description "System behavior for new reverse route"; } leaf allow-reverse-route-override { status obsolete; type boolean; default "false"; description "Override the reverse route."; } list security-policy { key "id"; description "Enter the security-policy list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32768"; } } description "IPsec security policy ID."; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..16"; } } description "IPsec security policy entry ID."; } container local-ip { description "Enter the local-ip context"; choice any-or-ip { default "any"; case any { leaf any { type boolean; default "false"; description "Any IP address."; } } case ip { leaf address { type types-sros:ipv4-prefix; description "The IP address."; } } } } // container local-ip container local-ipv6 { description "Enter the local-ipv6 context"; choice any-or-ip { default "any"; case any { leaf any { type boolean; default "false"; description "Any IP address."; } } case ip { leaf address { type types-sros:ipv6-prefix; description "The IP address."; } } } } // container local-ipv6 container remote-ip { description "Enter the remote-ip context"; choice any-or-ip { default "any"; case any { leaf any { type boolean; default "false"; description "Any IP address."; } } case ip { leaf address { type types-sros:ipv4-prefix; description "The IP address."; } } } } // container remote-ip container remote-ipv6 { description "Enter the remote-ipv6 context"; choice any-or-ip { default "any"; case any { leaf any { type boolean; default "false"; description "Any IP address."; } } case ip { leaf address { type types-sros:ipv6-prefix; description "The IP address."; } } } } // container remote-ipv6 } // list entry } // list security-policy } // container ipsec container mld { presence "Enter the 'mld' context"; description "Enable the mld context"; leaf group-if-query-source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source address in queries for group interfaces when not configured at group interface level"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } units "seconds"; default "1"; description "Time between group-specific query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..10"; } default "2"; description "Robust count to tune for the expected packet loss on a subnet"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MLD operation"; } container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Start of group range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "End of group range"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } // list group-range } // container ssm-translate list interface { key "ip-interface-name"; description "Enter the interface list instance"; leaf ip-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name."; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type types-sros:named-item-64; description "Import policy to filter MLD packets"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-mcast-cac:constraints-level; } description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } description "Bandwidth available for this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..64"; } } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; description "Level ID to associate with number of down LAG ports"; } } // list number-down } // container mc-constraints container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Start of group range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "End of group range"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } // list group-range } // container ssm-translate container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Group address of multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group list group-range { key "start end step"; description "Enter the group-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Start of group range of multicast channel"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "End of group range for multicast channel"; } leaf step { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "Step interval for the group-range addresses"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group-range } // container static } // list interface list group-interface { key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type types-sros:named-item-64; description "Import policy to filter MLD packets"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } leaf subnet-check { type boolean; default "true"; description "Enable subnet checking"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow MLD traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source address for MLD queries"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list group-interface list forwarding-group-interface { key "forwarding-service group-interface-name"; description "Enter the forwarding-group-interface list instance"; leaf forwarding-service { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Forwarding service for a subscriber interface in a retailer context"; } leaf group-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type types-sros:named-item-64; description "Import policy to filter MLD packets"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } leaf subnet-check { type boolean; default "true"; description "Enable subnet checking"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow MLD traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source address for MLD queries"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list forwarding-group-interface } // container mld container pim { presence "Enter the 'pim' context"; description "Enable the pim context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PIM"; } leaf apply-to { type enumeration { enum "all" { value 3; } enum "none" { value 4; } } default "none"; description "IES and non-IES interfaces to create in PIM"; } leaf mc-ecmp-balance { type boolean; default "true"; description "Enable/disable multicast balancing of traffic over ECMP links."; } leaf mc-ecmp-balance-hold { type uint32 { range "2..600"; } units "minutes"; description "Hold time for multicast balancing over ECMP links"; } leaf non-dr-attract-traffic { type boolean; default "false"; description "Attract traffic when the router is not the designated one"; } leaf bgp-nh-override { type boolean; default "false"; description "Disable VRF import EC support for next-hop resolution"; } leaf mtu-over-head { type int32 { range "0|44|76|140|268|536"; } default "0"; description "MVPN tunnel MTU size reduction to allow for BIER header"; } container ipv4 { description "Enter the ipv4 context"; leaf ssm-assert-compatible-mode { type boolean; default "false"; description "Enable SSM assert compatible mode"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PIM operation for IPv4"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "Route table(s) for RPF lookup"; } leaf ssm-default-range { type boolean; default "true"; description "SSM default range"; } container grt-extranet { description "Enter the grt-extranet context"; choice prefix { case any { leaf any { type empty; description "GRT or VRF extranet for this instance"; } } case group-prefix { list group-prefix { key "ip-prefix"; description "Enter the group-prefix list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-multicast-prefix; } description "IP address and mask length"; } leaf starg { type boolean; default "false"; description "Add a static (*,G) entry"; } } // list group-prefix } } } // container grt-extranet } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PIM operation for IPv6"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "Route table(s) for RPF lookup"; } leaf ssm-default-range { type boolean; default "true"; description "SSM default range"; } } // container ipv6 container mc-ecmp-hashing { presence "Enter the 'mc-ecmp-hashing' context"; description "Enable the mc-ecmp-hashing context"; leaf rebalance { type boolean; default "false"; description "Rebalance flows to newly added links immediately instead of waiting until they are pruned"; } } // container mc-ecmp-hashing container import { description "Enter the import context"; leaf-list join-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Name of the policy is limited to 32 characters."; } leaf-list register-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Name of the policy is limited to 32 characters."; } } // container import list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Service VPRN interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf assert-period { type int32 { range "1..300"; } default "60"; description "Time for periodic refreshes of PIM Assert messages on an interface"; } leaf hello-interval { type int32 { range "0..255"; } default "30"; description "Frequency at which PIM Hello messages are sent over this interface"; } leaf hello-multiplier { type uint32 { range "20..100"; } default "35"; description "Multiplier of Hello in multiples of 0.1"; } leaf instant-prune-echo { type boolean; default "false"; description "Allow PIM to send an instant prune echo when router starts the prune pending timer for PIM interface"; } leaf max-groups { type uint32 { range "0|1..16000"; } default "0"; description "Max number of groups for which PIM can have local receiver information based on received PIM reports"; } leaf priority { type uint32 { range "1..max"; } default "1"; description "DR election priority for this interface"; } leaf three-way-hello { type boolean; default "false"; description "Allow three-way hello compatibility mode"; } leaf tracking-support { type boolean; default "false"; description "Allow upstream routers to explicitly track join membership"; } leaf bsm-check-rtr-alert { type boolean; default "false"; description "Check router alert option in bootstrap messages received"; } leaf improved-assert { type boolean; default "true"; description "Allow improved assert processing on interface"; } leaf multicast-senders { type enumeration { enum "auto" { value 0; } enum "always" { value 1; } enum "never" { value 2; } } default "auto"; description "Subnet matching for the incoming data packets"; } container p2mp-ldp-tree-join { description "Enter the p2mp-ldp-tree-join context"; leaf ipv4 { type boolean; default "false"; description "Allow dynamic mLDP in-band signaling for IPv4 PIM joins"; } leaf ipv6 { type boolean; default "false"; description "Allow dynamic mLDP in-band signaling for IPv6 PIM joins"; } } // container p2mp-ldp-tree-join container bfd-liveness { description "Enter the bfd-liveness context"; leaf ipv4 { type boolean; default "false"; description "Use Bidirectional Forwarding Detection for IPv4 on PIM interface"; } leaf ipv6 { type boolean; default "false"; description "Use Bidirectional Forwarding Detection for IPv6 on PIM interface"; } } // container bfd-liveness container ipv4 { description "Enter the ipv4 context"; leaf multicast { type boolean; default "true"; description "Enable PIM interface operation"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf name { type types-sros:named-item; description "Operational group to monitor for address family"; } leaf operation { type enumeration { enum "add" { value 1; } enum "subtract" { value 2; } enum "set" { value 3; } } description "Perform given operation when oper-group is active."; } leaf priority-delta { type uint32 { range "1..4294967295"; } description "Delta priority with operation when operational group is active"; } } // container monitor-oper-group } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf multicast { type boolean; default "true"; description "Enable PIM interface operation"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf name { type types-sros:named-item; description "Operational group to monitor for address family"; } leaf operation { type enumeration { enum "add" { value 1; } enum "subtract" { value 2; } enum "set" { value 3; } } description "Perform given operation when oper-group is active."; } leaf priority-delta { type uint32 { range "1..4294967295"; } description "Delta priority with operation when operational group is active"; } } // container monitor-oper-group } // container ipv6 container sticky-dr { presence "Enter the 'sticky-dr' context"; description "Enable the sticky-dr context"; leaf priority { type uint32 { range "1..max"; } default "1024"; description "DR election priority for this interface"; } } // container sticky-dr container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Name of multicast CAC interface policy"; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of constraint for multicast CAC policy"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-mcast-cac:constraints-level; } description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } description "Bandwidth available for this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..64"; } } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; description "Level ID to associate with number of down LAG ports"; } } // list number-down } // container mc-constraints } // container mcac } // list interface container rp { description "Enter the rp context"; container bootstrap { description "Enter the bootstrap context"; leaf-list import { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Name of the policy is limited to 32 characters."; } leaf-list export { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Name of the policy is limited to 32 characters."; } } // container bootstrap container ipv4 { description "Enter the ipv4 context"; leaf auto-rp-discovery { type boolean; default "false"; description "Enable auto RP discovery"; } leaf candidate { type boolean; default "false"; description "Enable the auto-RP to advertise candidate RP information"; } leaf mapping-agent { type boolean; default "false"; description "Enable the mapping agent on the node"; } list anycast { key "ipv4-address rp-set-peer"; description "Add a list entry for anycast"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Anycast RP address"; } leaf rp-set-peer { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Configure a peer in the anycast rp-set."; } } // list anycast container bsr-candidate { description "Enter the bsr-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate BSR"; } leaf priority { type int32 { range "0..255"; } default "0"; description "Bootstrap priority of the router"; } leaf address { type types-sros:ipv4-unicast-address; description "Candidate BSR IP address for Bootstrap Router election"; } leaf hash-mask-len { type int32 { range "0..32"; } default "30"; description "Length for bootstrap hash mask"; } } // container bsr-candidate container rp-candidate { description "Enter the rp-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate RP"; } leaf holdtime { type int32 { range "5..255"; } units "seconds"; default "150"; description "Time during which the neighboring router considers this router to be up"; } leaf priority { type int32 { range "0..255"; } default "192"; description "Candidate RP priority"; } leaf address { type types-sros:ipv4-unicast-address; description "Local RP address"; } list group-range { key "ipv4-prefix"; description "Add a list entry for group-range"; leaf ipv4-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-prefix; } description "IPv4 address and prefix length"; } } // list group-range } // container rp-candidate container static { description "Enter the static context"; list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Configure the address of the statically configured RP."; } leaf override { type boolean; default "false"; description "Change the precedence for static RP over dynamically learnt RP"; } list group-prefix { key "ipv4-prefix"; description "Add a list entry for group-prefix"; leaf ipv4-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-prefix; } description "IPv4 address and prefix length"; } } // list group-prefix } // list address } // container static } // container ipv4 container ipv6 { description "Enter the ipv6 context"; list anycast { key "ipv6-address rp-set-peer"; description "Add a list entry for anycast"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Anycast RP address"; } leaf rp-set-peer { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Configure a peer in the anycast rp-set."; } } // list anycast container bsr-candidate { description "Enter the bsr-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate BSR"; } leaf priority { type int32 { range "0..255"; } default "0"; description "Bootstrap priority of the router"; } leaf address { type types-sros:ipv6-unicast-address; description "Candidate BSR IP address for Bootstrap Router election"; } leaf hash-mask-len { type int32 { range "0..128"; } default "126"; description "Length for bootstrap hash mask"; } } // container bsr-candidate container embedded-rp { presence "Enter the 'embedded-rp' context"; description "Enable the embedded-rp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of embedded RP"; } list group-range { key "ipv6-prefix"; description "Add a list entry for group-range"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-prefix; } description "IPv6 address and prefix length"; } } // list group-range } // container embedded-rp container rp-candidate { description "Enter the rp-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate RP"; } leaf holdtime { type int32 { range "5..255"; } units "seconds"; default "150"; description "Time during which the neighboring router considers this router to be up"; } leaf priority { type int32 { range "0..255"; } default "192"; description "Candidate RP priority"; } leaf address { type types-sros:ipv6-unicast-address; description "Local RP address"; } list group-range { key "ipv6-prefix"; description "Add a list entry for group-range"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-prefix; } description "IPv6 address and prefix length"; } } // list group-range } // container rp-candidate container static { description "Enter the static context"; list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Static IP address of the RP"; } leaf override { type boolean; default "false"; description "Change the precedence for static RP over dynamically learnt RP"; } list group-prefix { key "ipv6-prefix"; description "Add a list entry for group-prefix"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-prefix; } description "IPv6 address and prefix length"; } } // list group-prefix } // list address } // container static } // container ipv6 } // container rp list spt-switchover { key "ip-prefix"; description "Enter the spt-switchover list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-multicast-prefix; } description "IP address and mask length"; } leaf threshold { type union { type uint32 { range "1..4294967294"; } type enumeration { enum "infinity" { value -1; } } } units "kilobps"; description "SPT switchover threshold"; } } // list spt-switchover container ssm-groups { description "Enter the ssm-groups context"; list group-range { key "ip-prefix"; description "Add a list entry for group-range"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-multicast-prefix; } description "IP address and mask length"; } } // list group-range } // container ssm-groups } // container pim container vrf-target { status obsolete; description "Enter the vrf-target context"; choice vrf-target { status obsolete; case vrf-both-target { status obsolete; leaf community { status obsolete; type types-services:route-target; description "Extended BGP community"; } } case vrf-ovr-target { status obsolete; leaf import-community { status obsolete; type types-services:route-target; description "Communities accepted from remote PE neighbors"; } leaf export-community { status obsolete; type types-services:route-target; description "Communities to be sent to remote PE neighbors"; } } } } // container vrf-target container bgp-shared-queue { presence "Enter the 'bgp-shared-queue' context"; description "Enable the bgp-shared-queue context"; leaf cir { type types-qos:bgp-shared-queue-cir-rate; units "kilobps"; default "4000"; description "Committed information rate for shared queue"; } leaf pir { type types-qos:bgp-shared-queue-pir-rate; units "kilobps"; default "4000"; description "Peak information rate for shared queue"; } } // container bgp-shared-queue container vrf-import { status obsolete; presence "Enter the 'vrf-import' context"; description "Enable the vrf-import context"; leaf-list policy { status obsolete; type types-sros:vrf-policy; min-elements 1; max-elements 15; ordered-by user; description "Name of the import policy. The name of the policy is limited to 64 characters except for the first policy."; } } // container vrf-import container vrf-export { status obsolete; presence "Enter the 'vrf-export' context"; description "Enable the vrf-export context"; leaf-list policy { status obsolete; type types-sros:vrf-policy; min-elements 1; max-elements 15; ordered-by user; description "Name of the export policy. The name of the policy is limited to 64 characters except for the first policy."; } } // container vrf-export container wpp { presence "Enter the 'wpp' context"; description "Enable the wpp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WPP"; } list portal { key "name"; description "Enter the portal list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "WPP portal name"; } leaf address { type types-sros:ip-unicast-without-local-address; sros-ext:immutable; description "WPP portal address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the WPP portal"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Message authentication between portal and BRAS by applying the secret used by WPPv2"; } leaf version { type uint32 { range "1|2"; } default "1"; description "Protocol version to be expected by the WPP portal"; } leaf retry-interval { type uint32 { range "10..2000"; } units "milliseconds"; default "2000"; description "Time between two consecutive retransmissions"; } leaf ntf-logout-retry-count { type uint32 { range "0..5"; } default "5"; description "Number of retransmissions of an NTF_LOGOUT message"; } leaf ack-auth-retry-count { type uint32 { range "0..5"; } default "5"; description "Number of retransmissions of an ACK_OUT message"; } leaf port-format { type enumeration { enum "standard" { value 1; } enum "vendor-specific" { value 2; } } default "standard"; description "Format of the port in the ACK_INO message"; } } // list portal } // container wpp container mvpn { presence "Enter the 'mvpn' context"; description "Enable the mvpn context"; leaf c-mcast-signaling { type enumeration { enum "bgp" { value 0; } enum "pim" { value 1; } } default "pim"; description "Specifies the protocol to use for PE-to-PE signaling of CE multicast states."; } leaf mdt-type { type enumeration { enum "sender-only" { value 0; } enum "receiver-only" { value 1; } enum "sender-receiver" { value 2; } } default "sender-receiver"; description "Specifies the type of the PE node (for P2MP only)."; } leaf umh-selection { type enumeration { enum "highest-ip" { value 0; } enum "hash-based" { value 1; } enum "tunnel-status" { value 2; } enum "unicast-rt-pref" { value 3; } } default "highest-ip"; description "Specifies the algorithm for selecting the UMH from the UMH route candidate set."; } container auto-discovery { description "Enter the auto-discovery context"; leaf type { type enumeration { enum "bgp" { value 1; } enum "mdt-safi" { value 2; } } description "Whether multicast VPN membership auto-discovery via BGP is enabled."; } leaf source-address { type types-sros:ipv4-address; default "0.0.0.0"; description "a.b.c.d - source address."; } } // container auto-discovery container intersite-shared { description "Enter the intersite-shared context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of inter-site shared C-trees use"; } leaf persistent-type5-advertisement { type boolean; default "false"; description "Whether to advertise of source active route by RP."; } leaf kat-type5-advertisement-withdraw { type boolean; default "false"; description "Whether the withdrawal of Type 5 routes is enabled."; } } // container intersite-shared container redundant-source-list { description "Enter the redundant-source-list context"; list source-prefix { key "ip-prefix"; max-elements 16; description "Add a list entry for source-prefix"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Attribute ip-prefix/prefix-length."; } } // list source-prefix } // container redundant-source-list container rpf-select { description "Enter the rpf-select context"; list core-mvpn { key "core-mvpn-service-name"; description "Enter the core-mvpn list instance"; leaf core-mvpn-service-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "Core-mvpn instance."; } list group-prefix { key "ip-group-prefix"; min-elements 1; description "Enter the group-prefix list instance"; leaf ip-group-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-prefix; } description "Multicast group-prefix/prefix-length."; } leaf starg { type boolean; sros-ext:immutable; default "false"; description "Starg flag."; } } // list group-prefix } // list core-mvpn } // container rpf-select container umh-pe-backup { description "Enter the umh-pe-backup context"; list umh-pe { key "ip-address"; description "Enter the umh-pe list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "[a.b.c.d]."; } leaf standby { type types-sros:ipv4-unicast-address; description "ip-address."; } } // list umh-pe } // container umh-pe-backup container vrf-import { description "Enter the vrf-import context"; choice vrf-import { case policy { leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Name of the import policy. The name of the policy is limited to 64 characters except for the first policy."; } } case unicast { leaf unicast { type boolean; default "false"; description "The unicast boolean."; } } } } // container vrf-import container vrf-export { description "Enter the vrf-export context"; choice vrf-export { case policy { leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Name of the export policy. The name of the policy is limited to 64 characters except for the first policy."; } } case unicast { leaf unicast { type boolean; default "false"; description "The unicast boolean."; } } } } // container vrf-export container vrf-target { description "Enter the vrf-target context"; leaf community { type types-services:route-target; description "Extended community name for the Multicast VPN (MVPN) vrf-import or vrf-export policy."; } leaf unicast { type boolean; default "false"; description "The boolean to specify whether unicast vrf-target extended community is used for the Multicast VPN."; } container import { description "Enter the import context"; leaf community { type types-services:route-target; description "Extended community name for the Multicast VPN vrf-import policy."; } leaf unicast { type boolean; default "false"; description "The boolean to specify whether unicast vrf-target import extended community is used for the Multicast VPN."; } } // container import container export { description "Enter the export context"; leaf community { type types-services:route-target; description "Extended community name for the Multicast VPN vrf-export policy."; } leaf unicast { type boolean; default "false"; description "The boolean to specify whether unicast vrf-target export extended community is used for the Multicast VPN."; } } // container export } // container vrf-target container provider-tunnel { description "Enter the provider-tunnel context"; container inclusive { description "Enter the inclusive context"; leaf bsr { type enumeration { enum "unicast" { value 1; } enum "spmsi" { value 2; } } description "The bsr signaling."; } leaf wildcard-spmsi { type boolean; default "false"; description "Whether the wildcard spmsi is enabled."; } choice ipmsi { case rsvp { container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RSVP use for provider tunnels"; } leaf bfd-leaf { type boolean; default "false"; description "Whether the bfd-leaf is enabled."; } leaf lsp-template { type types-sros:named-item; description "Specify the Lsp Template."; } container bfd-root { presence "Enter the 'bfd-root' context"; description "Enable the bfd-root context"; leaf transmit-interval { type uint32 { range "10..100000"; } description "[10..100000] in milliseconds."; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "[3..20]."; } } // container bfd-root } // container rsvp } case mldp { container mldp { presence "Enter the 'mldp' context"; description "Enable the mldp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MLDP LSP use for tunnels"; } } // container mldp } case pim { container pim { presence "Enter the 'pim' context"; description "Enable the pim context"; leaf mode { type enumeration { enum "asm" { value 1; } enum "ssm" { value 2; } } description "keyword - PIM mode."; } leaf group-address { type types-sros:ipv4-multicast-address; description "a.b.c.d - multicast group address."; } leaf hello-interval { type uint32 { range "0..255"; } default "30"; description "The frequency at which PIM hello messages are sent over this interface."; } leaf hello-multiplier { type uint32 { range "20..100"; } default "35"; description "Hello-multiplier in multiples of 0.1 (deci-units)."; } leaf improved-assert { type boolean; default "true"; description "Whether the improved assert processing is enabled."; } leaf three-way-hello { type boolean; default "false"; description "Compatibility mode for three-way-hello."; } leaf tracking-support { type boolean; default "false"; description "Whether the tracking support is enabled."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PIM use for provider tunnels"; } } // container pim } case bier { container bier { presence "Enter the 'bier' context"; description "Enable the bier context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the use of BIER."; } leaf sub-domain { type int32 { range "0..255"; } description "The BIER sub domain."; } } // container bier } } } // container inclusive container selective { description "Enter the selective context"; leaf auto-discovery { type boolean; default "false"; description "Whether the multicast VPN membership auto-discovery via BGP is enabled."; } leaf data-delay-interval { type uint32 { range "3..180"; } default "3"; description "The data delay interval."; } leaf join-tlv-packing { type boolean; default "true"; description "Disable/enable packing of multiple MDT join tlvs."; } leaf asm-mdt { type boolean; default "false"; description "Whether the mdt-range check at egress for classic draft-rosen only is enabled."; } choice spmsi { case rsvp { container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf lsp-template { type types-sros:named-item; description "Specify the Lsp Template."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RSVP use for provider tunnels"; } leaf maximum-p2mp-spmsi { type uint32 { range "1..4000"; } default "10"; description "Specify the maximum number of p2mp s-pmsi tunnels for the mvpn."; } } // container rsvp } case mldp { container mldp { presence "Enter the 'mldp' context"; description "Enable the mldp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MLDP LSP use for tunnels"; } leaf maximum-p2mp-spmsi { type uint32 { range "1..4000"; } default "10"; description "Specify the maximum number of p2mp s-pmsi tunnels for the mvpn."; } } // container mldp } case pim { container pim { presence "Enter the 'pim' context"; description "Enable the pim context"; leaf mode { type enumeration { enum "asm" { value 1; } enum "ssm" { value 2; } } description "PIM mode."; } leaf group-prefix { type types-sros:ipv4-multicast-prefix; description "Multicast group-prefix."; } } // container pim } case bier { container bier { presence "Enter the 'bier' context"; description "Enable the bier context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the use of BIER."; } leaf sub-domain { type int32 { range "0..255"; } description "The BIER sub domain."; } } // container bier } } container data-threshold { description "Enter the data-threshold context"; list group-prefix { key "ip-group-prefix"; description "Enter the group-prefix list instance"; leaf ip-group-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-multicast-prefix; } description "Multicast group-prefix."; } leaf threshold { type int64 { range "0..4294967294"; } units "kilobps"; description "The threshold in kbps for a group prefix."; } leaf pe-threshold-add { type uint32 { range "1..65535"; } default "65535"; description "The threshold."; } leaf pe-threshold-delete { type uint32 { range "2..65535"; } default "65535"; description "The threshold."; } } // list group-prefix } // container data-threshold list multistream-spmsi { key "multistream-id"; description "Enter the multistream-spmsi list instance"; leaf multistream-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..1024"; } } description "Multistream spmsi id"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multi-stream S-PMSI"; } choice spmsi { case lsp-template { leaf lsp-template { type types-sros:named-item; description "Specify the Lsp Template."; } } case pim { container pim { presence "Enter the 'pim' context"; description "Enable the pim context"; leaf mode { type enumeration { enum "asm" { value 1; } enum "ssm" { value 2; } } description "The mode."; } leaf group-address { type types-sros:ipv4-multicast-address; description "a.b.c.d - multicast group address."; } } // container pim } } list group-prefix { key "ip-group-prefix source-prefix"; description "Add a list entry for group-prefix"; leaf ip-group-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-multicast-prefix; } description "Multicast group-prefix/prefix-length."; } leaf source-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Multicast source-prefix/prefix-length."; } } // list group-prefix } // list multistream-spmsi } // container selective } // container provider-tunnel } // container mvpn container ntp { presence "Enter the 'ntp' context"; description "Enable the ntp context"; leaf authentication-check { type boolean; default "true"; description "Reject NTP PDUs that do not match the authentication key-id, type, or key requirements"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NTP execution"; } leaf authenticate { type boolean; default "false"; description "Authentication of NTP PDUs when acting as a server"; } list authentication-key { key "key-id"; description "Enter the authentication-key list instance"; leaf key-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "Index of the NTP authentication key table that uniquely identifies an authentication key and type"; } leaf key { type types-sros:encrypted-leaf { length "1..71"; } description "Key to authenticate NTP packets"; } leaf type { type enumeration { enum "des" { value 1; } enum "message-digest" { value 2; } } description "Type of authentication method to authenticate NTP packet"; } } // list authentication-key list broadcast { key "interface-name"; description "Enter the broadcast list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name."; } leaf version { type uint32 { range "2..4"; } default "4"; description "NTP version number generated or accepted by this node in NTP packets"; } leaf ttl { type uint32 { range "1..255"; } default "127"; description "TTL value of messages transmitted by this broadcast address"; } leaf key-id { type uint32 { range "1..255"; } description "Specifies the key-id of the authentication key and its authentication type used by this node to receive and transmit NTP packets to and from an NTP node."; } } // list broadcast } // container ntp container bgp-evpn { description "Enter the bgp-evpn context"; list mpls { key "bgp-instance"; description "Enter the mpls list instance"; leaf bgp-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1"; } } description "BGP instance ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP-EVPN MPLS"; } leaf route-distinguisher { type types-services:vprn-bgp-evpn-mpls-rd; description "Route distinguisher"; } leaf default-route-tag { type types-services:one-byte-value; description "Default route tag"; } container send-tunnel-encap { description "Enter the send-tunnel-encap context"; leaf mpls { type boolean; default "true"; description "Enable MPLS encapsulation"; } leaf mpls-over-udp { type boolean; default "false"; description "Enable MPLS over UDP encapsulation"; } } // container send-tunnel-encap container vrf-export { presence "Enter the 'vrf-export' context"; description "Enable the vrf-export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Policy name"; } } // container vrf-export container vrf-import { presence "Enter the 'vrf-import' context"; description "Enable the vrf-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Policy name"; } } // container vrf-import container vrf-target { description "Enter the vrf-target context"; choice vrf-target { case vrf-both-target { leaf community { type types-services:route-target; description "Extended BGP community"; } } case vrf-ovr-target { leaf import-community { type types-services:route-target; description "Communities accepted from remote PE neighbors"; } leaf export-community { type types-services:route-target; description "Communities sent to remote PE neighbors"; } } } } // container vrf-target container auto-bind-tunnel { description "Enter the auto-bind-tunnel context"; leaf resolution { type types-services:resolve-status; default "none"; description "Resolution method for tunnel selection"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Allow enforcement of strict tunnel tagging"; } leaf ecmp { type types-router:mpls-ecmp; default "1"; description "Maximum ECMP routes allowed"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable/disable routes with another flex-algo-id as fallback"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; default "false"; description "Use BGP tunneling for next-hop resolution"; } leaf ldp { type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // container auto-bind-tunnel } // list mpls } // container bgp-evpn container bgp-ipvpn { description "Enter the bgp-ipvpn context"; container mpls { description "Enter the mpls context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP-IPVPN MPLS"; } leaf route-distinguisher { type types-services:vprn-bgp-evpn-mpls-rd; description "Route distinguisher"; } container vrf-target { description "Enter the vrf-target context"; choice vrf-target { case vrf-both-target { leaf community { type types-services:route-target; description "Extended BGP community"; } } case vrf-ovr-target { leaf import-community { type types-services:route-target; description "Communities accepted from remote PE neighbors"; } leaf export-community { type types-services:route-target; description "Communities sent to remote PE neighbors"; } } } } // container vrf-target container vrf-import { presence "Enter the 'vrf-import' context"; description "Enable the vrf-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Policy name"; } } // container vrf-import container vrf-export { presence "Enter the 'vrf-export' context"; description "Enable the vrf-export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Policy name"; } } // container vrf-export container auto-bind-tunnel { description "Enter the auto-bind-tunnel context"; leaf ecmp { type types-router:mpls-ecmp; default "1"; description "Maximum ECMP routes allowed"; } leaf weighted-ecmp { type boolean; default "false"; description "Allow weighted load-balancing"; } leaf resolution { type types-services:resolve-status; default "none"; description "Resolution method for tunnel selection"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Allow enforcement of strict tunnel tagging"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable flexible algorithm fallback"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; default "true"; description "Use BGP tunneling for next-hop resolution"; } leaf gre { type boolean; default "false"; description "Use GRE tunneling for next-hop resolution"; } leaf ldp { type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // container auto-bind-tunnel } // container mpls } // container bgp-ipvpn container aaa { description "Enter the aaa context"; container remote-servers { description "Enter the remote-servers context"; container tacplus { presence "Enter the 'tacplus' context"; description "Enable the tacplus context"; leaf interactive-authentication { type boolean; default "false"; description "Enable/disable TACACS+ interactive authentication."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the TACACS+ protocol operation"; } leaf server-timeout { type types-sros:time-duration { range "1..90"; } units "seconds"; default "3"; description "Timeout for a response from an TACACS+ server."; } leaf use-default-template { type boolean; default "true"; description "Enable/disable TACACS+ default template."; } container accounting { presence "Enter the 'accounting' context"; description "Enable the accounting context"; leaf record-type { type enumeration { enum "start-stop" { value 1; } enum "stop-only" { value 2; } } default "stop-only"; description "Configure the type of accounting record packet that is to be sent to the TACACS+ server."; } } // container accounting container authorization { presence "Enter the 'authorization' context"; description "Enable the authorization context"; leaf use-priv-lvl { type boolean; default "false"; description "Enable/disable the privilege level mapping."; } } // container authorization container priv-lvl-map { description "Enter the priv-lvl-map context"; list priv-lvl { key "level"; description "Enter the priv-lvl list instance"; leaf level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..15"; } } description "Specifies the privilege level for this mapping."; } leaf user-profile-name { type types-sros:named-item { pattern "[^ ]*" { error-message "The name cannot contain spaces."; } } description "Specifies the user profile for this mapping."; } } // list priv-lvl } // container priv-lvl-map list server { key "index"; max-elements 5; description "Enter the server list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..5"; } } description "Identifies a specific TACACS+ server."; } leaf address { type types-sros:ip-unicast-address; description "IP address of TACACS+ server."; } leaf port { type types-qos:tcp-udp-match-port; default "49"; description "TCP port number on which to contact TACACS+ server."; } leaf secret { type types-sros:encrypted-leaf { length "1..199"; } description "The secret key associated with the TACACS+ server. The value of secret cannot be set to an empty string."; } } // list server } // container tacplus container radius { presence "Enter the 'radius' context"; description "Enable the radius context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RADIUS authentication"; } leaf accounting { type boolean; default "false"; description "Enable/disable RADIUS command accounting."; } leaf accounting-port { type uint32 { range "1..65535"; } default "1813"; description "Port number on which to contact RADIUS server for accounting requests."; } leaf authorization { type boolean; default "false"; description "Enable/disable RADIUS command authorization."; } leaf interactive-authentication { type boolean; default "false"; description "Enable/disable RADIUS interactive authentication."; } leaf server-retry { type uint32 { range "1..10"; } default "3"; description "Number of attempts to retry contacting RADIUS."; } leaf server-timeout { type uint32 { range "1..90"; } units "seconds"; default "3"; description "Timeout for a response from RADIUS server."; } leaf port { type uint32 { range "1..65535"; } default "1812"; description "Port number on which to contact RADIUS server."; } leaf use-default-template { type boolean; default "false"; description "Enable/disable RADIUS default template."; } leaf access-algorithm { type enumeration { enum "direct" { value 1; } enum "round-robin" { value 2; } } default "direct"; description "Configure the algorithm used to access the set of RADIUS servers."; } list server { key "index"; max-elements 5; description "Enter the server list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..5"; } } description "Unique number which identifies a specific RADIUS server."; } leaf address { type types-sros:ip-unicast-address; description "IP address of Radius server."; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "The secret key associated with RADIUS server. The value of secret cannot be set to an empty string."; } } // list server } // container radius } // container remote-servers } // container aaa container aggregates { description "Enter the aggregates context"; list aggregate { key "ip-prefix"; description "Enter the aggregate list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Destination IP address prefix of the aggregate route"; } leaf as-set { type boolean; default "false"; description "Use AS_SET path segment type for the aggregate route"; } leaf-list community { type types-sros:community; max-elements 12; ordered-by user; description "Community name that is added to the aggregate route"; } leaf description { type types-sros:description; description "Text description"; } leaf summary-only { type boolean; default "false"; description "Advertise the aggregate route only"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Local preference used when aggregate route is exported"; } leaf discard-component-communities { type boolean; default "false"; description "Advertise aggregate with aggregate route community set"; } leaf policy { type types-sros:named-item-64; description "Policy name for the aggregated route"; } leaf tunnel-group { type types-redundancy:tunnel-group-id; description "Tunnel group from which to associate the MC IPSec state"; } choice next-hop { case blackhole { container blackhole { presence "Enter the 'blackhole' context"; description "Enable the blackhole context"; leaf generate-icmp { type boolean; default "false"; description "Send ICMP unreachable messages for aggregate routes"; } } // container blackhole } case indirect { leaf indirect { type types-sros:ip-unicast-address; sros-ext:immutable; description "Address of the indirect next hop"; } } } container aggregator { description "Enter the aggregator context"; leaf as-number { type uint32 { range "1..max"; } description "Aggregator AS number"; } leaf address { type types-sros:ipv4-unicast-address; description "Aggregator IP address"; } } // container aggregator } // list aggregate } // container aggregates container wlan-gw { presence "Enter the 'wlan-gw' context"; description "Enable the wlan-gw context"; container mobility-triggered-accounting { description "Enter the mobility-triggered-accounting context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of mobility-triggered-accounting"; } leaf include-counters { type boolean; default "false"; description "Include counters in interim updates"; } leaf hold-down { type types-sros:time-duration { range "60..86400"; } units "seconds"; description "Hold additional mobility-triggered update until this timer expires"; } } // container mobility-triggered-accounting container distributed-subscriber-mgmt { description "Enter the distributed-subscriber-mgmt context"; leaf ipv6-tcp-mss-adjust { type uint32 { range "160..10240"; } description "Insert or decrease the TCP Maximum Segment Size option to this value for upstream IPv6 SYN messages"; } } // container distributed-subscriber-mgmt container xconnect { description "Enter the xconnect context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the WLAN-GW cross-connect"; } leaf tunnel-source-ip { type types-sros:ipv6-prefix; description "IPv6 prefix from which source addresses of cross-connect tunnels will be chosen"; } leaf wlan-gw-group { type types-isa:wlan-gw-group-id; description "ISA WLAN-GW Group"; } } // container xconnect } // container wlan-gw container auto-bind-tunnel { status obsolete; description "Enter the auto-bind-tunnel context"; leaf ecmp { status obsolete; type types-router:mpls-ecmp; default "1"; description "Maximum ECMP routes allowed"; } leaf weighted-ecmp { status obsolete; type boolean; default "false"; description "Allow weighted load-balancing"; } leaf resolution { status obsolete; type types-services:resolve-status; default "none"; description "Resolution method for tunnel selection"; } leaf enforce-strict-tunnel-tagging { status obsolete; type boolean; default "false"; description "Allow enforcement of strict tunnel tagging"; } leaf allow-flex-algo-fallback { status obsolete; type boolean; default "false"; description "Enable flexible algorithm fallback"; } container resolution-filter { status obsolete; description "Enter the resolution-filter context"; leaf bgp { status obsolete; type boolean; default "true"; description "Use BGP tunneling for next-hop resolution"; } leaf gre { status obsolete; type boolean; default "false"; description "Use GRE tunneling for next-hop resolution"; } leaf ldp { status obsolete; type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { status obsolete; type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { status obsolete; type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { status obsolete; type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { status obsolete; type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { status obsolete; type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf rib-api { status obsolete; type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf mpls-fwd-policy { status obsolete; type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-policy { status obsolete; type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf sr-ospf3 { status obsolete; type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // container auto-bind-tunnel container dns { presence "Enter the 'dns' context"; description "Enable the dns context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DNS"; } leaf-list server { type types-sros:ip-unicast-address; max-elements 3; ordered-by user; description "List of DNS servers used for address resolution."; } leaf ipv4-source-address { type union { type enumeration { enum "use-interface-ip" { value 0; } } type types-sros:ipv4-unicast-address; } default "use-interface-ip"; description "Source address to contact an IPv4 DNS server"; } leaf ipv6-source-address { type union { type enumeration { enum "use-interface-ip" { value 0; } } type types-sros:ipv6-unicast-address; } default "use-interface-ip"; description "Source address to contact an IPv6 DNS server"; } leaf default-domain { type types-sros:fully-qualified-domain-name { pattern "[a-z0-9\\-\\.]+"; } description "Domain name added in DNS retries"; } } // container dns container bgp { presence "Enter the 'bgp' context"; description "Enable the bgp context"; leaf description { type types-sros:description; description "Text description"; } leaf connect-retry { type int32 { range "1..65535"; } default "120"; description "BGP connect retry timer value"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP instance"; } leaf keepalive { type int32 { range "0..21845"; } default "30"; description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; default "false"; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type uint32; default "100"; description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; default "ignore-loop"; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } default "0"; description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type uint32 { range "384..9746"; } description "TCP maximum segment size override"; } leaf min-route-advertisement { type int16 { range "1..255"; } default "30"; description "Minimum time before a prefix can be advertised to peer"; } leaf aggregator-id-zero { type boolean; default "false"; description "Set router ID in the BGP AGGREGATOR attribute to 0"; } leaf preference { type uint32 { range "1..255"; } default "170"; description "Route preference for routes learned from all peers"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; default "true"; description "Allow client reflection of routes by route reflector"; } leaf asn-4-byte { type boolean; default "true"; description "Advertise support for 4-byte ASNs"; } leaf eibgp-loadbalance { type boolean; default "false"; description "Use ECMP over BGP VPN and BGP routes"; } leaf path-mtu-discovery { type boolean; default "false"; description "Enable Path MTU Discovery"; } leaf enforce-first-as { type boolean; default "false"; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; default "false"; description "Send BGP updates as soon as session comes up"; } leaf router-id { type types-sros:ipv4-address; description "Router ID for the BGP instance in the AS"; } leaf ibgp-multipath { type boolean; default "false"; description "Enable IBGP multipath load balancing"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf fast-external-failover { type boolean; default "true"; description "Drop external BGP session immediately when link fails"; } leaf advertise-inactive { type boolean; default "false"; description "Advertise inactive BGP routes to peers"; } leaf authentication-keychain { type types-sros:named-item; description "TCP authentication keychain for the session"; } leaf rapid-withdrawal { type boolean; default "false"; description "Send BGP withdrawal UPDATE messages immediately"; } leaf peer-ip-tracking { type boolean; default "false"; description "Enable BGP peer tracking"; } leaf split-horizon { type boolean; default "false"; description "Prevent routes being reflected back to best-route peer"; } leaf third-party-nexthop { type boolean; default "false"; description "Apply third-party next-hop processing to EBGP peers"; } leaf dynamic-neighbor-limit { type uint32 { range "1..8192"; } description "Max dynamic BGP sessions to accept from remote peers"; } leaf label-preference { type uint32 { range "1..255"; } default "170"; description "Route preference for routes from labeled-unicast peers"; } leaf peer-tracking-policy { type types-sros:named-item-64; description "Policy for BGP peer tracking on router instance"; } container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } default "90"; description "Maximum time BGP waits between successive messages"; } leaf minimum-hold-time { type int32 { range "0|3..65535"; } default "0"; description "Minimum hold time between successive messages"; } } // container hold-time container family { description "Enter the family context"; leaf ipv4 { type boolean; default "true"; description "Advertise MP-BGP support for the IPv4 address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } } // container family container send-default { description "Enter the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable IPv4 family type"; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type types-sros:named-item-64; description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } default "0"; description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } default "0"; description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } default "0"; description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } default "0"; description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if AS-PATH contains eBGP peer's ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } } // container cluster container ebgp-default-reject-policy { description "Enter the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global AS when advertising routes to BGP peer"; } } // container local-as container best-path-selection { description "Enter the best-path-selection context"; leaf compare-origin-validation-state { type boolean; default "false"; description "Specifies whether the origin validation state is used in the BGP decision process."; } leaf deterministic-med { type boolean; default "false"; description "Group paths based on AS before MED attribute comparison"; } leaf origin-invalid-unusable { type boolean; default "false"; description "Specifies whether to use or ignore the routes that have an origin validation state of 'Invalid'."; } leaf ignore-nh-metric { type boolean; default "false"; description "Ignore next-hop distance in best path selection"; } container always-compare-med { description "Enter the always-compare-med context"; leaf med-value { type types-bgp:med-value; default "off"; description "Action for a missing MED attribute"; } leaf strict-as { type boolean; default "true"; description "Compare MED only for routes from same neighbor AS"; } } // container always-compare-med container as-path-ignore { description "Enter the as-path-ignore context"; leaf ipv4 { type boolean; default "false"; description "Ignore AS path length for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Ignore AS path length for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Ignore AS path length for labeled-unicast IPv4 routes"; } } // container as-path-ignore container ignore-router-id { presence "Enter the 'ignore-router-id' context"; description "Enable the ignore-router-id context"; } // container ignore-router-id container ebgp-ibgp-equal { description "Enter the ebgp-ibgp-equal context"; leaf ipv4 { type boolean; default "false"; description "Consider EBGP and IBGP IPv4 routes equal"; } leaf ipv6 { type boolean; default "false"; description "Consider EBGP and IBGP IPv6 routes equal"; } leaf label-ipv4 { type boolean; default "false"; description "Consider EBGP and IBGP label-IPv4 routes equal"; } } // container ebgp-ibgp-equal } // container best-path-selection container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; default "true"; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; default "true"; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; default "true"; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; default "false"; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container backup-path { description "Enter the backup-path context"; leaf ipv4 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } } // container backup-path container flowspec { description "Enter the flowspec context"; leaf validate-dest-prefix { type boolean; default "false"; description "Validate destination prefix in FlowSpec-IPv4/IPv6 route"; } leaf validate-redirect-ip { type boolean; default "false"; description "Validate the redirect-to-IPv4 action in FlowSpec route"; } } // container flowspec container convergence { description "Enter the convergence context"; leaf min-wait-to-advertise { type uint32 { range "0..3600"; } default "0"; description "Minimum wait time before advertising routes"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } } } description "Address family for which convergence selection applies"; } leaf max-wait-to-advertise { type uint32 { range "0..3600"; } default "0"; description "Maximum wait time before advertising routes"; } } // list family } // container convergence container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Import policy name"; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Export policy name"; } } // container export container extended-nh-encoding { description "Enter the extended-nh-encoding context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container extended-nh-encoding container advertise-ipv6-next-hops { description "Enter the advertise-ipv6-next-hops context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "120"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform Graceful Restart procedures"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-bgp:vprn-bgp-llgr-family-identifiers; } description "Address family type for LLGR"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } } // list family } // container long-lived } // container graceful-restart container next-hop-resolution { description "Enter the next-hop-resolution context"; leaf use-bgp-routes { type boolean; default "false"; description "Use BGP routes to resolve BGP next hops"; } leaf policy { type types-sros:named-item-64; description "Policy that filters routes for BGP next-hop resolution"; } } // container next-hop-resolution container multipath { description "Enter the multipath context"; leaf max-paths { type types-router:ip-ecmp; default "1"; description "Maximum multipaths per prefix"; } leaf ebgp { type types-router:ip-ecmp; description "Maximum multipaths per prefix for EBGP learned routes"; } leaf ibgp { type types-router:ip-ecmp; description "Maximum multipaths per prefix for IBGP learned routes"; } leaf restrict { type types-bgp:restrict; default "same-as-path-length"; description "AS path restriction for the non-best path"; } leaf unequal-cost { type boolean; default "false"; description "Ignore differences in the next-hop cost for multipath"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } enum "label-ipv4" { value 17; } } } description "Address family for which multipath selection applies"; } leaf max-paths { type types-router:ip-ecmp; description "Maximum multipaths per prefix or NLRI"; } leaf ebgp { type types-router:ip-ecmp; description "Attribute ebgp-max-paths for multipath."; } leaf ibgp { type types-router:ip-ecmp; description "Attribute ibgp-max-paths for multipath."; } leaf restrict { type types-bgp:restrict; default "same-as-path-length"; description "AS path restriction for the non-best path"; } leaf unequal-cost { type boolean; default "false"; description "Ignore differences in the next-hop cost for multipath"; } } // list family } // container multipath container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "BMP monitoring station"; } } // list station } // container monitor container rib-management { description "Enter the rib-management context"; container ipv4 { description "Enter the ipv4 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type types-sros:named-item-64; description "Name of policy that controls route importation into RIB"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } } // container leak-import } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type types-sros:named-item-64; description "Name of policy that controls route importation into RIB"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } } // container leak-import } // container ipv6 container label-ipv4 { description "Enter the label-ipv4 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type types-sros:named-item-64; description "Name of policy that controls route importation into RIB"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } } // container leak-import } // container label-ipv4 } // container rib-management list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "BGP peer group"; } leaf description { type types-sros:description; description "Text description"; } leaf connect-retry { type int32 { range "1..65535"; } description "BGP connect retry timer value"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP group"; } leaf static-group { type boolean; default "true"; description "Use group for static peers"; } leaf keepalive { type int32 { range "0..21845"; } description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type union { type uint32 { range "384..9746"; } type enumeration { enum "ip-stack" { value 0; } } } description "TCP maximum segment size override"; } leaf min-route-advertisement { type int16 { range "1..255"; } description "Minimum time before a prefix can be advertised to peer"; } leaf aggregator-id-zero { type boolean; description "Set router ID in the BGP AGGREGATOR attribute to zero"; } leaf preference { type uint32 { range "1..255"; } description "Route preference for routes learned from all peers"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; description "Allow cluster RR to advertise routes to its clients"; } leaf as-override { type boolean; default "false"; description "Replace the peer's ASN with the local ASN in AS Path"; } leaf asn-4-byte { type boolean; description "Advertise the use of 4-byte ASNs"; } leaf path-mtu-discovery { type boolean; description "Enable Path MTU Discovery"; } leaf next-hop-self { type boolean; default "false"; description "Advertise routes with local address as next-hop address"; } leaf passive { type boolean; default "false"; description "Enable passive mode for BGP communication"; } leaf type { type types-bgp:peer-type; default "no-type"; description "BGP peer type"; } leaf peer-as { type uint32 { range "1..4294967295"; } description "Peer AS number"; } leaf capability-negotiation { type boolean; default "true"; description "Enable capability negotiation"; } leaf enforce-first-as { type boolean; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; description "Send BGP updates as soon as the session comes up"; } leaf local-address { type types-bgp:local-address; description "Local IP address used when communicating with BGP peers"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for an incoming BGP packet"; } leaf advertise-inactive { type boolean; description "Advertise an inactive BGP route to peers"; } leaf authentication-keychain { type types-sros:named-item; description "TCP authentication keychain for the session"; } leaf bfd-liveness { type boolean; description "Enable BFD"; } leaf fast-external-failover { type boolean; description "Drop external BGP session immediately when link fails"; } leaf peer-ip-tracking { type boolean; description "Enable BGP peer tracking"; } leaf dynamic-neighbor-limit { type uint32 { range "1..8192"; } description "Maximum dynamic BGP sessions to accept from remote peer"; } leaf split-horizon { type boolean; description "Prevent routes being reflected back to best-route peer"; } leaf third-party-nexthop { type boolean; description "Apply third-party next-hop processing to EBGP peers"; } leaf label-preference { type uint32 { range "1..255"; } description "Route preference for routes from labeled-unicast peers"; } leaf multipath-eligible { type boolean; default "false"; description "Allow routes from group peers in multipath eligibility"; } container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } description "Maximum time BGP waits between successive messages"; } leaf minimum-hold-time { type int32 { range "0|3..65536"; } default "0"; description "Minimum hold time between successive messages"; } } // container hold-time container family { presence "Enter the 'family' context"; description "Enable the family context"; leaf ipv4 { type boolean; default "false"; description "Add support for the IPv4 address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } } // container family container send-default { presence "Enter the 'send-default' context"; description "Enable the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type types-sros:named-item-64; description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if it is the same as the BGP peer ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } } // container cluster container ebgp-default-reject-policy { presence "Enter the 'ebgp-default-reject-policy' context"; description "Enable the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global ASN when advertising routes to BGP peer"; } } // container local-as container origin-validation { description "Enter the origin-validation context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } } // container origin-validation container link-bandwidth { description "Enter the link-bandwidth context"; container accept-from-ebgp { description "Enter the accept-from-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container accept-from-ebgp container add-to-received-ebgp { description "Enter the add-to-received-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container add-to-received-ebgp container aggregate-used-paths { description "Enter the aggregate-used-paths context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container aggregate-used-paths container send-to-ebgp { description "Enter the send-to-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container send-to-ebgp } // container link-bandwidth container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each repeated session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Specifies the name of the import policy. The name of the policy is limited to 64 characters except for the first policy."; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Export policy name"; } } // container export container extended-nh-encoding { presence "Enter the 'extended-nh-encoding' context"; description "Enable the extended-nh-encoding context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container extended-nh-encoding container advertise-ipv6-next-hops { presence "Enter the 'advertise-ipv6-next-hops' context"; description "Enable the advertise-ipv6-next-hops context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "300"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform graceful restart procedures after NOTIFICATION"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "Advertised long-lived stale time for LLGR routes"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-bgp:vprn-bgp-llgr-family-identifiers; } description "Address family type for LLGR"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777216"; } default "16777216"; description "Locally-configured stale routes override time"; } } // list family } // container long-lived } // container graceful-restart list prefix-limit { key "family"; description "Enter the prefix-limit list instance"; leaf family { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } enum "mcast-ipv4" { value 4; } enum "flow-ipv4" { value 10; } enum "flow-ipv6" { value 14; } enum "mcast-ipv6" { value 16; } enum "label-ipv4" { value 17; } } } description "Address family to which the limit applies"; } leaf maximum { type uint32 { range "1..4294967295"; } description "Maximum number of routes to be learned from a peer"; } leaf log-only { type boolean; default "false"; description "Send warning message at threshold instead of take-down"; } leaf threshold { type uint32 { range "1..100"; } default "90"; description "Percentage threshold that triggers a warning message"; } leaf idle-timeout { type int32 { range "1..1024"; } description "Time which BGP peering remains idle before reconnecting"; } leaf post-import { type boolean; default "false"; description "Apply limit only to routes accepted by import policies"; } } // list prefix-limit container dynamic-neighbor { description "Enter the dynamic-neighbor context"; container match { description "Enter the match context"; list prefix { key "ip-prefix"; description "Enter the prefix list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "Dynamic peer prefix for the group"; } leaf-list allowed-peer-as { type string { pattern "(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))|(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])\\.\\.([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))"; } max-elements 32; ordered-by user; description "Allowed peer AS range"; } } // list prefix } // container match } // container dynamic-neighbor container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "BMP monitoring station"; } } // list station } // container monitor } // list group list neighbor { key "ip-address"; description "Enter the neighbor list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address-with-zone; } description "IP address that the neighbor uses to communicate with BGP peers"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for an incoming BGP packet"; } leaf advertise-inactive { type boolean; description "Advertise an inactive BGP route to peers"; } leaf authentication-keychain { type types-sros:named-item; description "TCP authentication keychain for the session"; } leaf bfd-liveness { type boolean; description "Enable BFD"; } leaf fast-external-failover { type boolean; description "Drop external BGP session immediately when link fails"; } leaf peer-ip-tracking { type boolean; description "Enable BGP peer tracking"; } leaf split-horizon { type boolean; description "Prevent routes being reflected back to best-route peer"; } leaf third-party-nexthop { type boolean; description "Apply third-party next-hop processing to EBGP peers"; } leaf label-preference { type uint32 { range "1..255"; } description "Route preference for routes from labeled-unicast peers"; } leaf multipath-eligible { type boolean; description "Allow routes from this peer in multipath eligibility"; } leaf group { type types-sros:named-item-64; sros-ext:immutable; description "Neighbor to group"; } leaf peer-creation-type { type types-bgp:peer-creation-type; default "static"; description "Peer creation type"; } leaf connect-retry { type int32 { range "1..65535"; } description "BGP connect retry timer value"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP neighbor"; } leaf keepalive { type int32 { range "0..21845"; } description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type union { type uint32 { range "384..9746"; } type enumeration { enum "ip-stack" { value 0; } } } description "TCP maximum segment size override"; } leaf min-route-advertisement { type int16 { range "1..255"; } description "Minimum interval between successive prefix updates"; } leaf aggregator-id-zero { type boolean; description "Set router ID in the BGP AGGREGATOR attribute to zero"; } leaf preference { type uint32 { range "1..255"; } description "Route preference for routes learned from all peers"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; description "Allow cluster RR to advertise routes to its clients"; } leaf as-override { type boolean; description "Replace the peer's ASN with the local ASN in AS Path"; } leaf asn-4-byte { type boolean; description "Advertise the use of 4-byte ASNs"; } leaf path-mtu-discovery { type boolean; description "Enable path MTU discovery"; } leaf local-address { type types-bgp:local-address; description "Local IP address used when communicating with BGP peers"; } leaf next-hop-self { type boolean; description "Advertise routes with local address as next-hop address"; } leaf passive { type boolean; description "Use passive mode for BGP communication"; } leaf type { type types-bgp:peer-type; description "BGP peer type"; } leaf peer-as { type uint32 { range "1..4294967295"; } description "Peer AS number"; } leaf capability-negotiation { type boolean; description "Enable capability negotiation"; } leaf enforce-first-as { type boolean; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; description "Send BGP updates as soon as the session comes up"; } container origin-validation { presence "Enter the 'origin-validation' context"; description "Enable the origin-validation context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } } // container origin-validation container link-bandwidth { description "Enter the link-bandwidth context"; container accept-from-ebgp { presence "Enter the 'accept-from-ebgp' context"; description "Enable the accept-from-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container accept-from-ebgp container add-to-received-ebgp { presence "Enter the 'add-to-received-ebgp' context"; description "Enable the add-to-received-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container add-to-received-ebgp container aggregate-used-paths { presence "Enter the 'aggregate-used-paths' context"; description "Enable the aggregate-used-paths context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container aggregate-used-paths container send-to-ebgp { presence "Enter the 'send-to-ebgp' context"; description "Enable the send-to-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container send-to-ebgp } // container link-bandwidth container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each repeated session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } description "BGP hold time"; } leaf minimum-hold-time { type int32 { range "0|3..65536"; } default "0"; description "Minimum time BGP waits between successive messages"; } } // container hold-time container family { presence "Enter the 'family' context"; description "Enable the family context"; leaf ipv4 { type boolean; default "false"; description "Add support for the IPv4 address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } } // container family container send-default { presence "Enter the 'send-default' context"; description "Enable the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable IPv4 family type"; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type types-sros:named-item-64; description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if it is the same as the BGP peer ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } } // container cluster container ebgp-default-reject-policy { presence "Enter the 'ebgp-default-reject-policy' context"; description "Enable the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global ASN when advertising routes to BGP peer"; } } // container local-as container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Specifies the name of the import policy. The name of the policy is limited to 64 characters except for the first policy."; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Export policy name"; } } // container export container extended-nh-encoding { presence "Enter the 'extended-nh-encoding' context"; description "Enable the extended-nh-encoding context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container extended-nh-encoding container advertise-ipv6-next-hops { presence "Enter the 'advertise-ipv6-next-hops' context"; description "Enable the advertise-ipv6-next-hops context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "300"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform graceful restart procedures after NOTIFICATION"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "Advertised long-lived stale time for LLGR routes"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-bgp:vprn-bgp-llgr-family-identifiers; } description "Address family type for LLGR"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777216"; } default "16777216"; description "Locally-configured stale routes override time"; } } // list family } // container long-lived } // container graceful-restart list prefix-limit { key "family"; description "Enter the prefix-limit list instance"; leaf family { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } enum "mcast-ipv4" { value 4; } enum "flow-ipv4" { value 10; } enum "flow-ipv6" { value 14; } enum "mcast-ipv6" { value 16; } enum "label-ipv4" { value 17; } } } description "Address family to which the limit applies"; } leaf maximum { type uint32 { range "1..4294967295"; } description "Maximum number of routes to be learned from a peer"; } leaf log-only { type boolean; default "false"; description "Send warning message at threshold instead of take-down"; } leaf threshold { type uint32 { range "1..100"; } default "90"; description "Percentage threshold that triggers a warning message"; } leaf idle-timeout { type int32 { range "1..1024"; } description "Time which BGP peering remains idle before reconnecting"; } leaf post-import { type boolean; default "false"; description "Apply limit only to routes accepted by import policies"; } } // list prefix-limit container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "BMP monitoring station"; } } // list station } // container monitor } // list neighbor } // container bgp container confederation { description "Enter the confederation context"; leaf confed-as-num { type inet:as-number { range "1..4294967295"; } description "Confederation number within an autonomous system"; } list members { key "as-number"; max-elements 256; description "Add a list entry for members"; leaf as-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type inet:as-number { range "1..4294967295"; } } description "Tertiary index for tBgpConfederation4ByteTable. Each confederation member entry is differentiated by an autonomous system number."; } } // list members } // container confederation container eth-cfm { description "Enter the eth-cfm context"; } // container eth-cfm container maximum-ipv4-routes { description "Enter the maximum-ipv4-routes context"; leaf value { type int32 { range "1..2147483647"; } description "Maximum number of routes that are configured on this virtual router"; } leaf log-only { type boolean; default "false"; description "Action when the maximum number of routes, held within a VRF context, is reached"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; description "Mid-level water marker for the number of routes which this VRF holds"; } } // container maximum-ipv4-routes container maximum-ipv6-routes { description "Enter the maximum-ipv6-routes context"; leaf value { type int32 { range "1..2147483647"; } description "Maximum number of routes that are configured on this virtual router"; } leaf log-only { type boolean; default "false"; description "Action when the maximum number of routes, held within a VRF context, is reached"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; description "Mid-level water marker for the number of routes which this VRF holds"; } } // container maximum-ipv6-routes container mc-maximum-routes { description "Enter the mc-maximum-routes context"; leaf value { type int32 { range "1..2147483647"; } description "Maximum number of multicast routes to be configured on this virtual router"; } leaf log-only { type boolean; default "false"; description "Action when the maximum number of multicast routes, held within a VRF context, is reached"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; description "Mid-level water marker for the number of multicast routes which this VRF holds"; } } // container mc-maximum-routes container mss-adjust { presence "Enter the 'mss-adjust' context"; description "Enable the mss-adjust context"; leaf nat-group { type uint32; sros-ext:immutable; description "NAT group (including WLAN Gateway group) that executes the adjustment"; } leaf segment-size { type uint32 { range "160..10240"; } description "Intended value for the Maximum Segment Size (MSS) option in transmitted TCP SYN requests"; } } // container mss-adjust container reassembly { presence "Enter the 'reassembly' context"; description "Enable the reassembly context"; leaf nat-group { type uint32; sros-ext:immutable; description "NAT group (including WLAN Gateway group) that executes the reassembly"; } leaf to-base-network { type boolean; default "false"; description "Enable/disable sending reassembled traffic to network interface on base router"; } } // container reassembly container sfm-overload { presence "Enter the 'sfm-overload' context"; description "Enable the sfm-overload context"; leaf holdoff-time { type uint32 { range "1..600"; } units "seconds"; description "The delay between the detection of the SFM condition and the IGP entering the overload state."; } } // container sfm-overload container mtrace2 { description "Enter the mtrace2 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multicast path tracing"; } leaf udp-port { type uint32 { range "1024..49151"; } default "5000"; description "Destination UDP port for mstat2|mtrace2 test, or unsolicited mstat2|mtrace2 packets"; } } // container mtrace2 list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Name of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the interface"; } leaf radius-auth-policy { type types-sros:named-item; description "Authentication policy"; } leaf tunnel { type boolean; sros-ext:immutable; default "false"; description "Enable/disable tunnel interface"; } leaf static-tunnel-redundant-nexthop { type types-sros:ipv4-unicast-address; description "IPv4 address of the redundant next-hop for static ISA tunnels on this interface"; } leaf dynamic-tunnel-redundant-nexthop { type types-sros:ipv4-unicast-address; description "IPv4 address of the redundant next-hop for dynamic ISA tunnels on this interface"; } leaf loopback { type boolean; default "false"; description "Use interface as a loopback interface"; } leaf monitor-oper-group { type types-sros:named-item; description "Operational group to monitor"; } leaf shcv-policy-ipv4 { type types-sros:external-named-item; description "Host connectivity IPv4 policy"; } leaf cpu-protection { type types-services:cpm-prot-policy-id; description "CPU protection policy"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf tos-marking-state { type types-router:tos-marking-state; default "trusted"; description "TOS marking state"; } leaf ingress-stats { type boolean; default "false"; description "Collect ingress statistics"; } leaf mac-accounting { type boolean; default "false"; description "Enable MAC accounting functionality"; } leaf vas-if-type { type types-router:vas-if-type; description "VAS interface type"; } container ingress { description "Enter the ingress context"; leaf policy-accounting { type types-sros:named-item; description "Configure ingress policy accounting."; } leaf destination-class-lookup { type boolean; default "false"; description "Enable BGP destination class lookup"; } } // container ingress container load-balancing { description "Enter the load-balancing context"; leaf ip-load-balancing { type types-router:ip-load-balancing; default "both"; description "Configure IP load balancing algorithm."; } leaf spi-load-balancing { type boolean; default "false"; description "Allow use of SPI (Security Parameter Index) in hashing for ESP/AH encrypted IPv4/IPv6 traffic"; } leaf teid-load-balancing { type boolean; default "false"; description "Include TEID in hashing algorithm for GTP-U/C encapsulated traffic"; } } // container load-balancing container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv6 } // container hold-time container ping-template { presence "Enter the 'ping-template' context"; description "Enable the ping-template context"; leaf name { type types-sros:named-item-64; sros-ext:immutable; description "Ping template name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ping template"; } leaf destination-address { type types-sros:ipv4-unicast-address; description "Ping template destination address"; } } // container ping-template container cflowd-parameters { description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:cflowd-sampling; } description "Unicast or multicast traffic"; } leaf type { type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } } // list sampling } // container cflowd-parameters container ipv4 { description "Enter the ipv4 context"; leaf tcp-mss { type types-router:ipv4-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf allow-directed-broadcasts { type boolean; default "false"; description "Forward directed broadcasts"; } leaf local-dhcp-server { type types-sros:named-item; description "DHCP server for the interface"; } leaf qos-route-lookup { type types-router:qos-route-lookup; description "QoS Route lookup"; } leaf ip-helper-address { type types-sros:ipv4-unicast-address; description "Gateway address"; } container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container unnumbered { description "Enter the unnumbered context"; choice source { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IP address of the interface"; } } case ip-int-name { leaf ip-int-name { type types-sros:interface-name; description "Name of the interface"; } } } } // container unnumbered container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; description "Primary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } } // container primary list secondary { key "address"; description "Enter the secondary list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Secondary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf igp-inhibit { type boolean; default "false"; description "Secondary IP address that is not recognized as local interface by the running IGP"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } } // list secondary container addresses { description "Enter the addresses context"; list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IPv4 address for the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } } // list address } // container addresses container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf timeout { type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } leaf retry-timer { type uint32 { range "1..300"; } units "deciseconds"; default "50"; description "ARP retry interval"; } leaf learn-unsolicited { type boolean; default "false"; description "Learn new entries from any received NA message"; } leaf proactive-refresh { type boolean; default "false"; description "Send a single refresh message with no retries 30 seconds prior to entry timeout"; } leaf populate { type boolean; default "false"; description "Allow static and dynamic hosts to be populated in system ARP cache"; } leaf local-proxy-arp { type boolean; default "false"; description "Enable local proxy ARP on interface"; } leaf remote-proxy-arp { type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Proxy ARP policy name"; } leaf populate-host { status obsolete; type boolean; default "false"; description "Allow addition or deletion of host routes in route table derived from ARP entries in ARP cache"; } leaf route-tag { status obsolete; type types-router:route-tag; description "ARP route tag"; } container host-route { description "Enter the host-route context"; list populate { key "route-type"; description "Enter the populate list instance"; leaf route-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } enum "evpn" { value 3; } } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "1..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } } // list populate } // container host-route container limit { description "Enter the limit context"; leaf max-entries { type types-router:ipv4-neighbor-limit; description "Maximum number of entries that can be learned"; } leaf log-only { type boolean; default "false"; description "Apply the limit to log entries only"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message"; } } // container limit container static-neighbor-unnumbered { presence "Enter the 'static-neighbor-unnumbered' context"; description "Enable the static-neighbor-unnumbered context"; leaf mac-address { type yang:mac-address; description "Media-dependent physical address"; } } // container static-neighbor-unnumbered list static-neighbor { key "ipv4-address"; description "Enter the static-neighbor list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "IPv4 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; description "Media-dependent physical address"; } } // list static-neighbor } // container neighbor-discovery container dhcp { description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf python-policy { type types-sros:named-item; description "Python policy"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "IP addresses for DHCP server requests"; } leaf trusted { type boolean; default "false"; description "Relay untrusted packets"; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf relay-plain-bootp { type boolean; default "false"; description "Enable/disable relaying of plain BOOTP packets."; } leaf use-arp { type boolean; default "false"; description "Enable/disable the use of ARP to determine the destination Hw address."; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP proxy server"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "The address used as source and siaddr when emulating a DHCP server."; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the circuit-id."; } } case ifindex { leaf ifindex { type empty; description "Use the interface index for the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in the option."; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf pool-name { type boolean; default "false"; description "Send the pool name in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "0..511999"; } default "0"; description "The maximum number of DHCPv4 leases."; } } // container lease-populate container relay-proxy { presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy } // container dhcp list vrrp { key "virtual-router-id"; description "Enter the vrrp list instance"; leaf virtual-router-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..255"; } } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Password for simple text authentication"; } leaf-list backup { type types-sros:ipv4-unicast-address; max-elements 16; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "1..2559"; } units "deciseconds"; default "10"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "false"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type uint32 { range "1..9999"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ssh-reply { type boolean; default "false"; description "Allow non-owner master to reply to SSH requests"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type types-sros:named-item; description "Operational group name associated with VRRP"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-address; sros-ext:immutable; description "Destination IP address to be used for BFD session"; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Name of interface running BFD"; } } // container bfd-liveness } // list vrrp } // container ipv4 list spoke-sdp { key "sdp-bind-id"; max-elements 1; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf collect-stats { type boolean; default "false"; description "Allow agent to collect accounting statistics"; } leaf accounting-policy { type types-log:log-policy-id; description "Policy to collect accounting statistics"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf vc-type { type types-services:ies-sdp-bind-vc-type; sros-ext:immutable; default "ether"; description "Type of virtual circuit (VC) associated with the SDP binding"; } leaf bfd-template { status obsolete; type types-sros:named-item; description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-qos:network-policy-name; description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type types-sros:named-item; description "BFD template associated with the SDP binding"; } leaf failure-action { type types-services:sbind-bfd-fail-action; default "none"; description "VCCV BFD action taken on the SDP binding"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; description "Time to wait for BFD up status"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm } // list spoke-sdp list sap { key "sap-id"; max-elements 1; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy"; } leaf anti-spoof { type types-services:anti-spoof-option; description "Anti-spoof filtering"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf calling-station-id { type types-sros:string-not-all-spaces { length "1..64"; } description "Calling station ID"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy for SAP"; } leaf host-admin-state { type types-sros:admin-state; default "enable"; description "Enable/disable administrative state of hosts"; } leaf host-lockout-policy { type types-sros:named-item; description "Host lockout policy"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } container ingress { description "Enter the ingress context"; leaf queue-group-redirect-list { type types-sros:named-item; description "Queue group redirect list"; } container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "Forwarding-plane queue group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Queue group instance"; } } // container fp-redirect-group container overrides { description "Enter the overrides context"; container ip-criteria { description "Enter the ip-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv4 criteria"; } } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv6 criteria"; } } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-queue-id; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container aggregate-policer { description "Enter the aggregate-policer context"; leaf rate { type types-qos:aggr-policer-rate; default "max"; description "Aggregate policer rate to be used in kbps"; } leaf burst { type types-qos:aggr-policer-burst; default "default"; description "Aggregate policer burst"; } leaf cir { type types-qos:aggr-policer-cir; description "Aggregate policer cir to be used in kbps"; } leaf cbs { type types-qos:aggr-policer-cbs; description "Aggregate policer cbs"; } } // container aggregate-policer } // container ingress container egress { description "Enter the egress context"; leaf queue-group-redirect-list { type types-sros:named-item; description "Queue group redirect list"; } container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Policy for port redirect queue group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of port queue group"; } } // container port-redirect-group container overrides { description "Enter the overrides context"; leaf hs-secondary-shaper { type types-sros:named-item; description "HS Secondary Shaper"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf secondary-shaper { status obsolete; type types-sros:named-item; description "Secondary shaper for the HSMDA queue"; } leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Packet byte offset for HSMDA queue"; } leaf wrr-policy { status obsolete; type types-sros:named-item; description "WRR policy for the HSMDA queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Egress HSMDA queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; description "Administrative PIR rate."; } leaf slope-policy { status obsolete; type types-sros:named-item; description "Name of the slope-policy which is used to override the default slope-policy for the named buffer pool."; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "Weight value for the HSMDA queue"; } } // list queue } // container hsmda-queues list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type types-sros:named-item; description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:sap-egress-policer-id; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hs-wrr-group-id; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Weight of scheduling class."; } choice rate-or-percent-rate { case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "Administrative PIR."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent."; } } } } // list hs-wrr-group } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler override policy name"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Egress vlan-qos-policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type types-qos:qos-policy-name; description "Egress-remark-policy name"; } } // container egress-remark-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container fwd-wholesale { description "Enter the fwd-wholesale context"; leaf pppoe-service { type types-services:service-name; description "PPPoE service name"; } } // container fwd-wholesale container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm list ip-tunnel { key "tunnel-name"; max-elements 1; description "Enter the ip-tunnel list instance"; leaf tunnel-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "IP tunnel name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the tunnel"; } leaf description { type types-sros:description; description "Text description"; } leaf clear-df-bit { type boolean; default "false"; description "Clear the Do-not-Fragment bit"; } leaf delivery-service { type types-services:service-name; description "Delivery service name"; } leaf dscp { type types-qos:dscp-name; description "Differentiated Services Code Point (DSCP) name"; } leaf encapsulated-ip-mtu { type uint32 { range "512..9000"; } units "bytes"; description "Encapsulated IP MTU of this tunnel"; } leaf ip-mtu { type uint32 { range "512..9000"; } units "bytes"; description "IP MTU of this tunnel"; } leaf public-tcp-mss-adjust { type union { type uint32 { range "512..9000"; } type enumeration { enum "auto" { value 0; } } } units "bytes"; description "TCP maximum segment size (MSS) on private network"; } leaf private-tcp-mss-adjust { type int32 { range "512..9000"; } units "bytes"; description "TCP maximum segment size (MSS) on private network"; } leaf reassembly { type union { type int32 { range "1..5000"; } type enumeration { enum "use-tunnel-group-setting" { value -1; } enum "none" { value 0; } } } units "milliseconds"; description "Reassembly wait time"; } leaf remote-ip-address { type types-sros:ip-address; description "Remote IP address of this tunnel"; } leaf backup-remote-ip-address { type types-sros:ip-address; description "Backup remote IP address that is applied to this tunnel"; } leaf local-ip-address { type types-sros:ip-address; description "Local IP address of this tunnel"; } container icmp6-generation { description "Enter the icmp6-generation context"; container packet-too-big { description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of sending Packet Too Big messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Number of packet-too-big ICMPv6 messages issued in a specified time frame"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time frame to limit the number of packet-too-big ICMPv6 messages"; } } // container packet-too-big } // container icmp6-generation container gre-header { description "Enter the gre-header context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of the GRE header in the tunnel"; } container key { description "Enter the key context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the keys in the GRE header"; } leaf send { type uint32; default "0"; description "Send key of a GRE header"; } leaf receive { type uint32; default "0"; description "Receive key of a GRE header"; } } // container key } // container gre-header list dest-ip { key "dest-ip-address"; description "Add a list entry for dest-ip"; leaf dest-ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "Destination IP address of the tunnel"; } } // list dest-ip } // list ip-tunnel list ipsec-gateway { key "name"; max-elements 1; description "Enter the ipsec-gateway list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "IPsec gateway name."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec gateway."; } leaf default-tunnel-template { type types-ipsec:tunnel-template-id; description "The IPsec tunnel template ID."; } leaf ike-policy { type types-ipsec:ike-policy-id; description "IKE policy ID."; } leaf pre-shared-key { type types-sros:encrypted-leaf { length "1..115"; } description "The pre-shared key used for authentication by two peers forming the tunnel for the IPSec gateway."; } leaf ts-list { type types-sros:named-item; description "The name of Traffic Selector (TS) list, used for IKEv2 TS negotiation."; } container dhcp-address-assignment { description "Enter the dhcp-address-assignment context"; container dhcpv4 { presence "Enter the 'dhcpv4' context"; description "Enable the dhcpv4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec DHCPv4 server."; } leaf gi-address { type types-sros:ipv4-unicast-address; description "The giaddr of relayed DHCPv4 header."; } leaf send-release { type boolean; default "true"; description "Send DHCPv4 release messages."; } container server { description "Enter the server context"; leaf-list address { type types-sros:ipv4-unicast-address; max-elements 8; description "The DHCPv4 server addresses."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance to reach the DHCPv4 server."; } } // container server } // container dhcpv4 container dhcpv6 { presence "Enter the 'dhcpv6' context"; description "Enable the dhcpv6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec DHCPv6 server."; } leaf link-address { type types-sros:ipv6-unicast-address; description "The link-address in DHCPv6 relay packet."; } leaf send-release { type boolean; default "true"; description "Send DHCPv6 release messages when a tunnel is down."; } container server { description "Enter the server context"; leaf-list address { type types-sros:ipv6-unicast-address; max-elements 8; description "The DHCPv6 server addresses."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance to reach the DHCPv6 server."; } } // container server } // container dhcpv6 } // container dhcp-address-assignment container cert { description "Enter the cert context"; leaf cert-profile { type types-sros:named-item; description "Certificate profile name."; } leaf trust-anchor-profile { type types-sros:named-item; description "Trust anchor profile."; } container status-verify { description "Enter the status-verify context"; leaf default-result { type enumeration { enum "revoked" { value 0; } enum "good" { value 1; } } default "revoked"; description "The default result of Certificate Status Verification (CSV)."; } leaf primary { type types-ipsec:cert-revocation-status; default "crl"; description "The primary method used to verify the peer certificate's revocation status."; } leaf secondary { type types-ipsec:cert-revocation-status-with-none; default "none"; description "The secondary method used to verify the peer certificate's revocation status."; } } // container status-verify } // container cert container client-db { presence "Enter the 'client-db' context"; description "Enable the client-db context"; leaf name { type types-sros:named-item; description "IPsec client database name."; } leaf fallback { type boolean; default "true"; description "Fall back to the tunnel authentication and creation attribute as if client-db is not configured when IPsec database client matching has failed."; } } // container client-db container default-secure-service { presence "Enter the 'default-secure-service' context"; description "Enable the default-secure-service context"; leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf interface { type types-sros:interface-name; description "The name of the default interface used by this IPsec gateway."; } } // container default-secure-service container local { description "Enter the local context"; leaf gateway-address { type types-sros:ip-address; description "The IPsec gateway address."; } container address-assignment { presence "Enter the 'address-assignment' context"; description "Enable the address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignments"; } container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance hosting the DHCPv4 connection."; } leaf dhcp-server { type types-sros:named-item; description "Local DHCPv4 server name"; } leaf pool { type types-sros:named-item; description "Name of the pool defined in the specified DHCPv4 server"; } leaf secondary-pool { type types-sros:named-item; description "Name of the secondary pool defined in the DHCPv4 server"; } } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance hosting the DHCPv6 connection."; } leaf dhcp-server { type types-sros:named-item; description "Local DHCPv6 server name"; } leaf pool { type types-sros:named-item; description "Name of the secondary pool defined in the DHCPv6 server"; } } // container ipv6 } // container address-assignment container id { description "Enter the id context"; choice id { default "auto"; case auto { leaf auto { type empty; description "System picks a local ID automatically based on auth-method configured in ike-policy."; } } case ipv4 { leaf ipv4 { type types-sros:ipv4-unicast-address; description "The IPv4 Local ID."; } } case ipv6 { leaf ipv6 { type types-sros:ip-address; description "The IPv6 Local ID."; } } case fqdn { leaf fqdn { type types-sros:fully-qualified-domain-name; description "The Fully Qualified Domain Name (FQDN) Local ID."; } } } } // container id } // container local container radius { description "Enter the radius context"; leaf accounting-policy { type types-sros:named-item; description "RADIUS accounting policy."; } leaf authentication-policy { type types-sros:named-item; description "RADIUS authentication policy."; } } // container radius container max-history-key-records { description "Enter the max-history-key-records context"; leaf ike { type uint32 { range "1..3"; } description "The maximum number of historical IKE keys which can be recorded by the system."; } leaf esp { type uint32 { range "1..48"; } description "The maximum number of historical ESP keys which can be recorded by the system."; } } // container max-history-key-records } // list ipsec-gateway list ipsec-tunnel { key "name"; description "Enter the ipsec-tunnel list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item { pattern "[a-zA-Z]+.*" { error-message "IPSec tunnel name cannot start with a number"; } } } description "IPsec ipsec name."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec tunnel."; } leaf description { type types-sros:description; description "Text description"; } leaf clear-df-bit { type boolean; default "false"; description "Clear Do-not-Fragment bit."; } leaf encapsulated-ip-mtu { type uint32 { range "512..9000"; } units "bytes"; description "Encapsulated IP MTU of this tunnel."; } leaf ip-mtu { type uint32 { range "512..9000"; } units "bytes"; description "IP MTU of this tunnel."; } leaf replay-window { type uint32 { range "32|64|128|256|512"; } units "packets"; description "Anti replay window size."; } leaf public-tcp-mss-adjust { type union { type uint32 { range "512..9000"; } type enumeration { enum "auto" { value 0; } } } units "bytes"; description "TCP maximum segment size (MSS) on public network."; } leaf private-tcp-mss-adjust { type int32 { range "512..9000"; } units "bytes"; description "TCP maximum segment size (MSS) on private network."; } container bfd { description "Enter the bfd context"; leaf bfd-designate { type boolean; default "false"; description "Enable BFD designated tunnel."; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-unicast-address; description "Destination address for this BFD session."; } leaf interface { type types-sros:interface-name; description "The name of the interface used by this BFD session."; } leaf service-name { type types-services:service-name; description "Administrative service name"; } } // container bfd-liveness } // container bfd container icmp6-generation { description "Enter the icmp6-generation context"; container packet-too-big { description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Send packet-too-big messages"; } leaf message-count { type uint32 { range "10..1000"; } default "100"; description "The maximum number of ICMPv6 messages that can be sent during the period specified by 'interval'."; } leaf interval { type uint32 { range "1..60"; } units "seconds"; default "10"; description "The maximum interval that the ICMPv6 messages can be sent."; } } // container packet-too-big } // container icmp6-generation container key-exchange { description "Enter the key-exchange context"; choice type { case dynamic { container dynamic { presence "Enter the 'dynamic' context"; description "Enable the dynamic context"; leaf auto-establish { type boolean; default "false"; description "Whether to attempt to establish a IKE SA automatically."; } leaf ike-policy { type types-ipsec:ike-policy-id; description "IKE policy ID."; } leaf-list ipsec-transform { type uint32 { range "1..2048"; } max-elements 4; description "IPsec transform used by the dynamic key."; } leaf pre-shared-key { type types-sros:encrypted-leaf { length "1..115"; } description "The shared secret between the two peers forming the tunnel."; } container cert { description "Enter the cert context"; leaf cert-profile { type types-sros:named-item; description "Certificate profile name."; } leaf trust-anchor-profile { type types-sros:named-item; description "Trust anchor profile."; } container status-verify { description "Enter the status-verify context"; leaf default-result { type enumeration { enum "revoked" { value 0; } enum "good" { value 1; } } default "revoked"; description "The default result of Certificate Status Verification (CSV)."; } leaf primary { type types-ipsec:cert-revocation-status; default "crl"; description "The primary method used to verify the peer certificate's revocation status."; } leaf secondary { type types-ipsec:cert-revocation-status-with-none; default "none"; description "The secondary method used to verify the peer certificate's revocation status."; } } // container status-verify } // container cert container id { description "Enter the id context"; choice id { case ipv4 { leaf ipv4 { type types-sros:ipv4-unicast-address; description "The IPv4 Local ID."; } } case ipv6 { leaf ipv6 { type types-sros:ip-address; description "The IPv6 Local ID."; } } case fqdn { leaf fqdn { type types-sros:fully-qualified-domain-name; description "The Fully Qualified Domain Name (FQDN) Local ID."; } } } } // container id } // container dynamic } case manual { container manual { presence "Enter the 'manual' context"; description "Enable the manual context"; list keys { key "security-association direction"; description "Enter the keys list instance"; leaf security-association { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..16"; } } description "The unique identifier of an security association (SA)."; } leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "inbound" { value 1; } enum "outbound" { value 2; } } } description "The direction on the IPsec tunnel to which this SA can be applied."; } leaf ipsec-transform { type uint32 { range "1..2048"; } sros-ext:immutable; description "IPsec transform used by the manual key."; } leaf spi { type uint32 { range "256..16383"; } sros-ext:immutable; description "Security Parameter Index (SPI)."; } leaf authentication-key { type types-sros:hex-string { length "1..130"; } sros-ext:immutable; description "The key value used for the authentication algorithm defined by the IPsec transform."; } leaf encryption-key { type types-sros:hex-string { length "1..66"; } sros-ext:immutable; description "The key value used for the encryption algorithm defined by the IPsec transform."; } } // list keys } // container manual } } } // container key-exchange container max-history-key-records { description "Enter the max-history-key-records context"; leaf ike { type uint32 { range "1..3"; } description "The maximum number of historical IKE keys which can be recorded by the system."; } leaf esp { type uint32 { range "1..48"; } description "The maximum number of historical ESP keys which can be recorded by the system."; } } // container max-history-key-records container tunnel-endpoint { presence "Enter the 'tunnel-endpoint' context"; description "Enable the tunnel-endpoint context"; leaf local-gateway-address { type types-sros:ip-address; description "The IPsec local gateway address for this tunnel."; } leaf remote-ip-address { type types-sros:ip-address; description "Remote IP address of this tunnel."; } leaf delivery-service { type types-services:service-name; description "Delivery service name."; } } // container tunnel-endpoint list dest-ip { key "address"; max-elements 16; description "Add a list entry for dest-ip"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "Private IP address of the remote IP tunnel endpoint"; } } // list dest-ip container security-policy { description "Enter the security-policy context"; leaf id { type uint32 { range "1..32768"; } description "Security policy ID"; } leaf strict-match { type boolean; default "false"; description "The system does a strict match when it receives a CREATE_CHILD exchange request, which is not for rekey, for this IPsec tunnel."; } } // container security-policy } // list ipsec-tunnel container static-host { description "Enter the static-host context"; list ipv4 { key "ip mac"; description "Enter the ipv4 list instance"; leaf ip { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "IP address"; } leaf mac { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address; } description "MAC address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type types-sros:external-named-item; description "Sub-profile name"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id } // list ipv4 } // container static-host } // list sap list vpls { key "vpls-name"; max-elements 1; description "Enter the vpls list instance"; leaf vpls-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "VPLS service"; } container evpn { description "Enter the evpn context"; container arp { description "Enter the arp context"; leaf learn-dynamic { type boolean; default "true"; description "Process ARP or ND messages on EVPN tunnels"; } leaf flood-garp-and-unknown-req { type boolean; default "true"; description "Allow CPM originated ARP frames to flood R-VPLS service"; } list advertise { key "route-type"; description "Enter the advertise list instance"; leaf route-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "0..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } } // list advertise } // container arp container nd { description "Enter the nd context"; leaf learn-dynamic { type boolean; default "true"; description "Process ARP or ND messages on EVPN tunnels"; } list advertise { key "route-type"; description "Enter the advertise list instance"; leaf route-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "0..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } } // list advertise } // container nd } // container evpn container evpn-tunnel { presence "Enter the 'evpn-tunnel' context"; description "Enable the evpn-tunnel context"; leaf ipv6-gateway-address { type enumeration { enum "ip" { value 0; } enum "mac" { value 1; } } default "ip"; description "Type of IPv6 gateway address"; } leaf supplementary-broadcast-domain { type boolean; default "false"; description "Use the EVPN tunnel as a Supplementary Broadcast Domain"; } } // container evpn-tunnel container egress { description "Enter the egress context"; leaf reclassify-using-qos { type types-qos:qos-policy-name; description "Egress QoS policy"; } container routed-override-filter { description "Enter the routed-override-filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container routed-override-filter } // container egress container ingress { description "Enter the ingress context"; container routed-override-filter { description "Enter the routed-override-filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container routed-override-filter } // container ingress } // list vpls container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf qos-route-lookup { type types-router:qos-route-lookup; description "QoS Route lookup"; } leaf forward-ipv4-packets { type boolean; default "false"; description "Forward unencapsulated IPv4 packets"; } leaf tcp-mss { type types-router:ipv6-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf duplicate-address-detection { type boolean; default "true"; description "Enable/disable Duplicate Address Detection"; } leaf local-dhcp-server { type types-sros:named-item; description "DHCP server for the interface"; } container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container icmp6 { description "Enter the icmp6 context"; container packet-too-big { description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of packet-too-big messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of packet-too-big messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit packet-too-big messages"; } } // container packet-too-big container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of param-problem messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of parameter-problem messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit parameter problem messages"; } } // container param-problem container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of redirect messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit redirect messages"; } } // container redirects container time-exceeded { description "Enter the time-exceeded context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the time-exceeded messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of time-exceeded messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit time-exceeded messages"; } } // container time-exceeded container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of unreachable messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit unreachable messages"; } } // container unreachables } // container icmp6 container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd container link-local-address { description "Enter the link-local-address context"; leaf address { type types-sros:ipv6-address; description "Link-local IPv6 address of this router interface"; } leaf duplicate-address-detection { type boolean; default "true"; description "Enable/disable Duplicate Address Detection."; } } // container link-local-address list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "IPv6 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..128"; } description "IPv6 address prefix length"; } leaf eui-64 { type boolean; sros-ext:immutable; default "false"; description "Form complete IPv6 address from supplied prefix and 64-bit interface identifier"; } leaf duplicate-address-detection { type boolean; sros-ext:immutable; default "true"; description "Enable/disable Duplicate Address Detection."; } leaf primary-preference { type uint32 { range "1..4294967295"; } description "Index assigned to the IPv6 address of the interface"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "Track the state of the SRRP instance on this IP address"; } } // list address container dhcp6 { description "Enter the dhcp6 context"; container relay { description "Enter the relay context"; leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 relay"; } leaf link-address { type types-sros:ipv6-address; description "Link address of the DHCPv6 relay messages"; } leaf neighbor-resolution { type boolean; default "false"; description "Enable neighbor resolution via DHCPv6 relay"; } leaf python-policy { type types-sros:named-item; description "Python policy name"; } leaf source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source IPv6 address of the DHCPv6 relay messages"; } leaf user-db { type types-sros:named-item; description "Local user database for authentication"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCPv6 server to which the DHCPv6 requests are forwarded"; } container lease-populate { description "Enter the lease-populate context"; leaf max-nbr-of-leases { type int32 { range "0..32767"; } default "0"; description "Maximum number of lease states allocated by the DHCPv6 relay function, allowed on interface"; } container route-populate { description "Enter the route-populate context"; leaf na { type boolean; default "false"; description "Create route based on IA_NA prefix option in relay-reply message"; } leaf ta { type boolean; default "false"; description "Create route based on IA_TA prefix option in relay-reply message"; } container pd { presence "Enter the 'pd' context"; description "Enable the pd context"; leaf exclude { type boolean; default "false"; description "Create back hole route based on prefix exclude option in relay-reply message"; } } // container pd } // container route-populate } // container lease-populate container option { description "Enter the option context"; leaf remote-id { type boolean; default "false"; description "Allow remote ID option to be sent in the DHCPv6 relay packet"; } container interface-id { description "Enter the interface-id context"; choice interface-id { case ascii-tuple { leaf ascii-tuple { type empty; description "Use ASCII-encoded concatenated tuple in interface ID option in DHCPv6 relay packet"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in interface ID option in DHCPv6 relay packet"; } } case if-index { leaf if-index { type empty; description "Use interface index in interface ID option in DHCPv6 relay packet"; } } case string { leaf string { type types-sros:string-not-all-spaces { length "1..80"; } description "String for interface ID option in DHCPv6 relay packet"; } } } } // container interface-id } // container option } // container relay container server { description "Enter the server context"; leaf max-nbr-of-leases { type int32 { range "0..8000"; } default "8000"; description "DHCPv6 leases allowed"; } container prefix-delegation { description "Enter the prefix-delegation context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the prefix delegation"; } list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "IPv6 prefix to be delegated"; } leaf preferred-lifetime { type types-services:ipv6-prefix-lifetime; units "seconds"; default "604800"; description "IPv6 prefix/mask preferred life time"; } leaf valid-lifetime { type types-services:ipv6-prefix-lifetime; units "seconds"; default "2592000"; description "IPv6 prefix/mask valid life time"; } container client-id { description "Enter the client-id context"; leaf duid { type string { length "1..130"; } description "Requesting router ID"; } leaf iaid { type uint32 { range "1..4294967295"; } description "IAID from the requesting router that matches to delegate the prefix"; } } // container client-id } // list prefix } // container prefix-delegation } // container server } // container dhcp6 container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf reachable-time { type types-router:neighbor-discovery-reachable-time; description "Timer for neighbor reachability detection"; } leaf stale-time { type types-router:neighbor-discovery-stale-time; description "Time during which a neighbor discovery cache entry remains stale"; } leaf learn-unsolicited { type types-router:ipv6-address-type-selection; description "Type of entries learned from unsolicited NA messages"; } leaf proactive-refresh { type types-router:ipv6-address-type-selection; description "Neighbor entries to be refreshed proactively"; } leaf local-proxy-nd { type boolean; default "false"; description "Enable neighbor discovery on interface"; } leaf-list proxy-nd-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Name of the proxy Neighbor Discovery policies for the interface"; } leaf populate-host { status obsolete; type boolean; default "false"; description "Allow addition or deletion of host routes in route table derived from ARP entries in ARP cache"; } leaf route-tag { status obsolete; type types-router:route-tag; description "ARP route tag"; } container host-route { description "Enter the host-route context"; list populate { key "route-type"; description "Enter the populate list instance"; leaf route-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } enum "evpn" { value 3; } } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "1..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } } // list populate } // container host-route container secure-nd { description "Enter the secure-nd context"; leaf allow-unsecured-msgs { type boolean; default "true"; description "Accept unsecured messages"; } leaf public-key-min-bits { type uint32 { range "512..1024"; } default "1024"; description "Minimum acceptable key length for public keys"; } leaf security-parameter { type uint32 { range "0..1"; } default "1"; description "Security parameter in the generation of a cryptographical address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of secure neighbor discovery"; } } // container secure-nd container limit { description "Enter the limit context"; leaf max-entries { type types-router:ipv6-neighbor-limit; description "Maximum number of entries that can be learned on an IP interface"; } leaf log-only { type boolean; default "false"; description "Log warning messages at threshold or when limit is exceeded, however entries are learned above limit"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message to be sent"; } } // container limit list static-neighbor { key "ipv6-address"; description "Enter the static-neighbor list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "IPv6 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; description "Media-dependent physical address"; } } // list static-neighbor } // container neighbor-discovery list vrrp { key "virtual-router-id"; max-elements 1; description "Enter the vrrp list instance"; leaf virtual-router-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..255"; } } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf-list backup { type types-sros:ipv6-address; max-elements 4; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "10..4095"; } units "centiseconds"; default "100"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "true"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type uint32 { range "1..9999"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type types-sros:named-item; description "Operational group name associated with VRRP"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv6-address; sros-ext:immutable; description "ip-address."; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Name of interface running BFD"; } } // container bfd-liveness } // list vrrp } // container ipv6 container if-attribute { description "Enter the if-attribute context"; leaf-list admin-group { type types-sros:named-item; max-elements 32; description "Names of the admin group memberships of the interface"; } list srlg-group { key "name"; description "Add a list entry for srlg-group"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Shared Risk Link Group (SRLG) name."; } } // list srlg-group } // container if-attribute } // list interface list network-interface { key "interface-name"; description "Enter the network-interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "The administrative name assigned to this router interface. The interface name must be unique among entries with the same vRtrID value."; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the interface"; } leaf cpu-protection { type types-services:cpm-prot-policy-id; description "CPM Protection policy associated with an interface"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf tos-marking-state { type types-router:tos-marking-state; default "trusted"; description "TOS marking state"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy"; } leaf ingress-stats { type boolean; default "false"; description "Collect ingress statistics"; } choice port-binding { case port-encap { leaf port { type types-sros:port-and-encap; description "Port to bind the interface"; } } case loopback { leaf loopback { type empty; description "Use interface as a loopback interface"; } } } container egress { description "Enter the egress context"; container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container filter } // container egress container ingress { description "Enter the ingress context"; container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container filter } // container ingress container load-balancing { description "Enter the load-balancing context"; leaf lsr-load-balancing { type types-router:lsr-load-balancing; description "LSR load balancing algorithm"; } leaf ip-load-balancing { type types-router:ip-load-balancing; default "both"; description "Configure IP load balancing algorithm."; } leaf spi-load-balancing { type boolean; default "false"; description "Allow use of SPI (Security Parameter Index) in hashing for ESP/AH encrypted IPv4/IPv6 traffic"; } leaf teid-load-balancing { type boolean; default "false"; description "Include TEID in hashing algorithm for GTP-U/C encapsulated traffic"; } } // container load-balancing container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 } // container hold-time container cflowd-parameters { description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:cflowd-sampling; } description "Unicast or multicast traffic"; } leaf type { type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } } // list sampling } // container cflowd-parameters container qos { description "Enter the qos context"; leaf network-policy { type types-qos:network-policy-name; description "Network policy name associated with a network interface"; } leaf egress-port-redirect-group { type types-sros:named-item; description "QoS queue group name"; } leaf egress-instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress queue group for this interface"; } leaf ingress-fp-redirect-group { type types-sros:named-item; description "Forwarding-plane queue group policy for this interface"; } leaf ingress-instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress queue group for this interface"; } } // container qos container ipv4 { description "Enter the ipv4 context"; leaf tcp-mss { type types-router:ipv4-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf allow-directed-broadcasts { type boolean; default "false"; description "Accept broadcasts that are directed to this interface"; } container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; description "Primary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } } // container primary list secondary { key "address"; description "Enter the secondary list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Secondary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf igp-inhibit { type boolean; default "false"; description "Secondary IP address that is not recognized as local interface by the running IGP"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } } // list secondary container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf timeout { type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } leaf retry-timer { type uint32 { range "1..300"; } units "deciseconds"; default "50"; description "ARP retry interval"; } list static-neighbor { key "ipv4-address"; description "Enter the static-neighbor list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "IPv4 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; description "Media-dependent physical address"; } } // list static-neighbor } // container neighbor-discovery } // container ipv4 } // list network-interface list redundant-interface { key "interface-name"; description "Enter the redundant-interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Name of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the interface"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 } // container hold-time list spoke-sdp { key "sdp-bind-id"; max-elements 1; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container filter } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container filter } // container egress } // list spoke-sdp container ipv4 { description "Enter the ipv4 context"; container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; description "IPv4 address to be assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } description "The prefix length 0..32 for IPv4 Address."; } leaf remote-ip { type types-sros:ipv4-unicast-address; description "IP address of the remote redundant interface."; } } // container primary } // container ipv4 } // list redundant-interface list ip-mirror-interface { key "interface-name"; description "Enter the ip-mirror-interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Name of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the interface"; } list spoke-sdp { key "sdp-bind-id"; max-elements 1; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container filter } // container ingress } // list spoke-sdp } // list ip-mirror-interface container ipv6 { description "Enter the ipv6 context"; container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf reachable-time { type types-router:neighbor-discovery-reachable-time; default "30"; description "Timer for neighbor reachability detection"; } leaf stale-time { type types-router:neighbor-discovery-stale-time; default "14400"; description "Neighbor discovery cache entry stale time"; } } // container neighbor-discovery container router-advertisement { description "Enter the router-advertisement context"; container dns-options { presence "Enter the 'dns-options' context"; description "Enable the dns-options context"; leaf rdnss-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type int32 { range "0|4..3600"; } } units "seconds"; default "infinite"; description "Maximum time over which the RDNSS address is valid"; } leaf-list server { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "Router advertisements that are forwarded to servers"; } } // container dns-options list interface { key "ip-int-name"; description "Enter the interface list instance"; leaf ip-int-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "VPRN interface name"; } leaf current-hop-limit { type uint16 { range "0..255"; } default "64"; description "Hop limit to advertise in router advertisement messages"; } leaf managed-configuration { type boolean; default "false"; description "Set the managed address configuration flag"; } leaf max-advertisement-interval { type uint32 { range "4..1800"; } units "seconds"; default "600"; description "Maximum time between sending router advertisement msgs"; } leaf min-advertisement-interval { type uint32 { range "3..1350"; } units "seconds"; default "200"; description "Minimum time between sending router advertisement msgs"; } leaf mtu { type uint32 { range "1280..9800"; } description "MTU for sending packets to the router"; } leaf other-stateful-configuration { type boolean; default "false"; description "Set the other configuration flag"; } leaf reachable-time { type uint32 { range "0..3600000"; } units "milliseconds"; default "0"; description "Time the router is reachable by other hosts or nodes"; } leaf retransmit-time { type uint32 { range "0..1800000"; } units "milliseconds"; default "0"; description "Time to advertise ICMPv6 ND router advertisement msgs"; } leaf router-lifetime { type uint32 { range "0|4..9000"; } units "seconds"; default "1800"; description "Lifetime value in ICMPv6 ND router advertisement msgs"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf use-virtual-mac { type boolean; default "false"; description "Send router advert msg using VRRP virtual MAC addr"; } container dns-options { presence "Enter the 'dns-options' context"; description "Enable the dns-options context"; leaf include-rdnss { type boolean; default "true"; description "Include the RDNSS option in the router advertisement"; } leaf rdnss-lifetime { type union { type int32 { range "0|4..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Maximum time over which the RDNSS address 25 is valid"; } leaf-list server { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "Router advertisements that are forwarded to servers"; } } // container dns-options list prefix { key "ipv6-prefix"; max-elements 254; description "Enter the prefix list instance"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "IPv6 address prefix"; } leaf autonomous { type boolean; default "true"; description "Set the autonomous flag value"; } leaf on-link { type boolean; default "true"; description "Use prefix for on-link determination"; } leaf preferred-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type uint32 { range "0..4294967294"; } } units "seconds"; default "604800"; description "Remaining time that the prefix remains preferred"; } leaf valid-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type uint32 { range "0..4294967294"; } } units "seconds"; default "2592000"; description "Remaining time in which the prefix is still valid"; } } // list prefix } // list interface } // container router-advertisement } // container ipv6 list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:sdp-bind-id; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } } // list spoke-sdp container source-address { description "Enter the source-address context"; list ipv4 { key "application"; description "Enter the ipv4 list instance"; leaf application { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "telnet" { value 1; } enum "ssh" { value 3; } enum "ping" { value 8; } enum "traceroute" { value 9; } enum "ntp" { value 12; } enum "cflowd" { value 13; } enum "ptp" { value 23; } enum "icmp-error" { value 29; } } } description "Source IP address for the application"; } choice source { case interface-name { leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Interface name whose IP address to be used in all packets sent by the application"; } } case address { leaf address { type types-sros:ipv4-address; sros-ext:immutable; description "Source IPv4 address to be used in all packets sent by the application"; } } } } // list ipv4 list ipv6 { key "application"; description "Enter the ipv6 list instance"; leaf application { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "telnet" { value 14; } enum "ping" { value 20; } enum "traceroute" { value 21; } enum "cflowd" { value 25; } enum "ntp" { value 26; } enum "icmp6-error" { value 30; } } } description "Source IPv6 address for the application"; } leaf address { type types-sros:ipv6-address; sros-ext:immutable; description "Source IPv6 address to be used in all packets sent by the application"; } } // list ipv6 } // container source-address container static-routes { description "Enter the static-routes context"; container hold-down { presence "Enter the 'hold-down' context"; description "Enable the hold-down context"; leaf initial { type uint32 { range "1..65535"; } description "Value for the initial hold down time"; } leaf multiplier { type uint32 { range "1..10"; } description "Value by which the previous hold-down time is multiplied to calculate the new one"; } leaf max-value { type uint32 { range "1..65535"; } description "Maximum value of the hold down time"; } } // container hold-down list route { key "ip-prefix route-type"; description "Enter the route list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "IP prefix and prefix length for the static routes"; } leaf route-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:unicast-multicast; } description "Indicates the type of that static-route being configured, either for unicast routing or for use with multicast rpf."; } leaf-list community { type types-sros:community; max-elements 12; ordered-by user; description "Community ID associated with the static route"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf backup-tag { type uint32 { range "1..max"; } description "Configure static route backup tag."; } container blackhole { presence "Enter the 'blackhole' context"; description "Enable the blackhole context"; leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf generate-icmp { type boolean; default "false"; description "Send ICMP unreachable messages when received packets match a static route with black-hole next-hop"; } container prefix-list { description "Enter the prefix-list context"; leaf name { type types-sros:named-item; description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list } // container blackhole container grt { presence "Enter the 'grt' context"; description "Enable the grt context"; leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } } // container grt list indirect { key "ip-address"; description "Enter the indirect list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "Indirect next hop for static routes"; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type types-sros:named-item; description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "IP address of the target CPE device."; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } } // list cpe-check } // list indirect list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name."; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Load-balancing weight for all of the ECMP next hops"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type types-sros:named-item; description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "IP address of the target CPE device."; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } } // list cpe-check } // list interface list ipsec-tunnel { key "ipsec-tunnel-name"; description "Enter the ipsec-tunnel list instance"; leaf ipsec-tunnel-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Ipsec tunnel name."; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos } // list ipsec-tunnel list next-hop { key "ip-address"; description "Enter the next-hop list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address-with-zone; } description "IP address of the next-hop."; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf bfd-liveness { type boolean; default "false"; description "Use Bidirectional Forwarding Detection on this static route"; } leaf validate-next-hop { type boolean; default "false"; description "Track the state of the next hop in the IPv4 ARP Cache or the IPv6 Neighbor Cache"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Load-balancing weight for all of the ECMP next hops"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type types-sros:named-item; description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list container backup-next-hop { description "Enter the backup-next-hop context"; leaf address { type types-sros:ip-address; description "This is the backup next-hop ip address."; } } // container backup-next-hop list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "IP address of the target CPE device."; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } } // list cpe-check } // list next-hop } // list route } // container static-routes container flowspec { description "Enter the flowspec context"; leaf ip-filter-max-size { type uint32 { range "0..262143"; } default "512"; description "Maximum number of flowspec rule entries in IPv4 filter"; } leaf ipv6-filter-max-size { type uint32 { range "0..262143"; } default "512"; description "Maximum number of flowspec rule entries in IPv6 filter"; } leaf filter-cam-type { type enumeration { enum "normal" { value 0; } enum "packet-length" { value 2; } } default "normal"; description "Filter policy type for FlowSpec embedding"; } } // container flowspec container log { description "Enter the log context"; list filter { key "filter-name"; max-elements 1500; description "Enter the filter list instance"; leaf filter-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:log-filter-name; } description "The value of name uniquely identifies an event log filter"; } leaf description { type types-sros:description; description "Text description"; } leaf default-action { type types-log:filter-action; default "forward"; description "Default action for the event filter"; } list entry { status obsolete; key "entry-id"; description "Enter the entry list instance"; leaf entry-id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..999"; } } description "Identification number for an event log filter parameter"; } leaf description { status obsolete; type types-sros:description; description "Text description"; } leaf action { status obsolete; type types-log:filter-action; description "Action for this event filter entry"; } container match { status obsolete; description "Enter the match context"; container application { status obsolete; description "Enter the application context"; choice application-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-log:application-obsolete; description "Application to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-log:application-obsolete; description "Application to be filtered out"; } } } } // container application container message { status obsolete; description "Enter the message context"; leaf regexp { status obsolete; type boolean; default "false"; description "String comparison to determine if the log event matches the value of pattern"; } choice message-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type string { length "1..400"; } description "Log event message to match"; } } case neq { status obsolete; leaf neq { status obsolete; type string { length "1..400"; } description "Log event message to be filtered out"; } } } } // container message container event { status obsolete; description "Enter the event context"; choice event-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type uint32 { range "1..max"; } description "Log event message to match"; } } case neq { status obsolete; leaf neq { status obsolete; type uint32 { range "1..max"; } description "Log event message to filter out"; } } case lt { status obsolete; leaf lt { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case lte { status obsolete; leaf lte { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gt { status obsolete; leaf gt { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gte { status obsolete; leaf gte { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } } } // container event container severity { status obsolete; description "Enter the severity context"; choice severity-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-log:severity-level; description "Log event severity level to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-log:severity-level; description "Log event severity level to filter out"; } } case lt { status obsolete; leaf lt { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case lte { status obsolete; leaf lte { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case gt { status obsolete; leaf gt { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case gte { status obsolete; leaf gte { status obsolete; type types-log:severity-level; description "Log event severity level"; } } } } // container severity container subject { status obsolete; description "Enter the subject context"; leaf regexp { status obsolete; type boolean; default "false"; description "String comparison to determine if the log event matches the value of subject"; } choice subject-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-sros:named-item; description "Log event subject string to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-sros:named-item; description "Log event subject string to filter out"; } } } } // container subject } // container match } // list entry list named-entry { key "entry-name"; max-elements 999; ordered-by user; description "Enter the named-entry list instance"; leaf entry-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:log-filter-entry-name; } description "The value of name uniquely identifies an event log filter entry"; } leaf description { type types-sros:description; description "Text description"; } leaf action { type types-log:filter-action; description "Action for this event filter entry"; } container match { description "Enter the match context"; container application { description "Enter the application context"; choice application-match { case eq { leaf eq { type types-log:application; description "Application to match"; } } case neq { leaf neq { type types-log:application; description "Application to be filtered out"; } } } } // container application container message { description "Enter the message context"; leaf regexp { type boolean; default "false"; description "String comparison to determine if the log event matches the value of pattern"; } choice message-match { case eq { leaf eq { type string { length "1..400"; } description "Log event message to match"; } } case neq { leaf neq { type string { length "1..400"; } description "Log event message to be filtered out"; } } } } // container message container event { description "Enter the event context"; choice event-match { case eq { leaf eq { type uint32 { range "1..max"; } description "Log event message to match"; } } case neq { leaf neq { type uint32 { range "1..max"; } description "Log event message to filter out"; } } case lt { leaf lt { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case lte { leaf lte { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gt { leaf gt { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gte { leaf gte { type uint32 { range "1..max"; } description "Number of the log event to match"; } } } } // container event container severity { description "Enter the severity context"; choice severity-match { case eq { leaf eq { type types-log:severity-level; description "Log event severity level to match"; } } case neq { leaf neq { type types-log:severity-level; description "Log event severity level to filter out"; } } case lt { leaf lt { type types-log:severity-level; description "Log event severity level"; } } case lte { leaf lte { type types-log:severity-level; description "Log event severity level"; } } case gt { leaf gt { type types-log:severity-level; description "Log event severity level"; } } case gte { leaf gte { type types-log:severity-level; description "Log event severity level"; } } } } // container severity container subject { description "Enter the subject context"; leaf regexp { type boolean; default "false"; description "String comparison to determine if the log event matches the value of subject"; } choice subject-match { case eq { leaf eq { type types-sros:named-item; description "Log event subject string to match"; } } case neq { leaf neq { type types-sros:named-item; description "Log event subject string to filter out"; } } } } // container subject } // container match } // list named-entry } // list filter list log-id { key "name"; max-elements 30; description "Enter the log-id list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:li-log-name; } description "The value of name uniquely identifies an event stream log."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the log"; } leaf description { type types-sros:description; description "Text description"; } leaf netconf-stream { type types-sros:named-item; description "Destination NETCONF stream name"; } leaf time-format { type enumeration { enum "utc" { value 1; } enum "local" { value 2; } } default "utc"; description "Time zone displayed for log events"; } leaf filter { type types-log:log-filter-name; description "Filter for this log's source event stream to limit the event output in this log destination"; } leaf python-policy { type types-sros:named-item; description "Python policy name"; } container source { description "Enter the source context"; leaf main { type boolean; default "false"; description "Collect log events from the main event stream"; } leaf security { type boolean; default "false"; description "Collect log events from the security event stream"; } leaf change { type boolean; default "false"; description "Collect log events from the change event stream"; } leaf debug { type boolean; default "false"; description "Collect log events from the debug event stream"; } } // container source container destination { description "Enter the destination context"; choice log-id-destination { case syslog { leaf syslog { type types-log:log-vprn-syslog-name; sros-ext:immutable; description "Index with the information to format event messages sent to a specific SYSLOG collector"; } } case snmp { container snmp { presence "Enter the 'snmp' context"; description "Enable the snmp context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this snmp log."; } } // container snmp } case netconf { container netconf { presence "Enter the 'netconf' context"; description "Enable the netconf context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this netconf log."; } } // container netconf } } } // container destination } // list log-id list snmp-trap-group { key "log-name"; description "Enter the snmp-trap-group list instance"; leaf log-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:svc-vprn-snmp-trap-group-name; } description "SNMP notification group to be associated with the event log for vprn."; } leaf description { type types-sros:description; description "Text description"; } leaf log-id { type int32 { range "1..100"; } sros-ext:immutable; description "SNMP notification group associated with the event log"; } list trap-target { key "name"; max-elements 25; description "Enter the trap-target list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..28"; } } description "Name for an SNMP notification destination within the SNMP notification group"; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; description "IP address of the trap receiver"; } leaf port { type types-qos:tcp-udp-match-port; default "162"; description "UDP port number to send messages to this remote SNMP notification collector"; } leaf version { type enumeration { enum "snmpv1" { value 0; } enum "snmpv2c" { value 1; } enum "snmpv3" { value 3; } } default "snmpv3"; description "SNMP version to format notification messages sent to this SNMP notification collector"; } leaf notify-community { type string { length "1..31"; } description "SNMPv1 or SNMPv2c community name string, or SNMPv3 security name, for sending a notification"; } leaf security-level { type enumeration { enum "no-auth-no-privacy" { value 1; } enum "auth-no-privacy" { value 2; } enum "privacy" { value 3; } } default "no-auth-no-privacy"; description "Security level at which SNMP notification messages are sent to SNMP notification collector"; } leaf replay { type boolean; default "false"; description "Retransmit missed notifications"; } } // list trap-target } // list snmp-trap-group list syslog { key "syslog-name"; max-elements 30; description "Enter the syslog list instance"; leaf syslog-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-log:log-vprn-syslog-name; } description "Unique arbitrary identifier for this syslog collector target."; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; description "Target syslog host address"; } leaf facility { type enumeration { enum "kernel" { value 0; } enum "user" { value 1; } enum "mail" { value 2; } enum "systemd" { value 3; } enum "auth" { value 4; } enum "syslogd" { value 5; } enum "printer" { value 6; } enum "netnews" { value 7; } enum "uucp" { value 8; } enum "cron" { value 9; } enum "authpriv" { value 10; } enum "ftp" { value 11; } enum "ntp" { value 12; } enum "logaudit" { value 13; } enum "logalert" { value 14; } enum "cron2" { value 15; } enum "local0" { value 16; } enum "local1" { value 17; } enum "local2" { value 18; } enum "local3" { value 19; } enum "local4" { value 20; } enum "local5" { value 21; } enum "local6" { value 22; } enum "local7" { value 23; } } default "local7"; description "Facility code for messages"; } leaf severity { type enumeration { enum "emergency" { value 0; } enum "alert" { value 1; } enum "critical" { value 2; } enum "error" { value 3; } enum "warning" { value 4; } enum "notice" { value 5; } enum "info" { value 6; } enum "debug" { value 7; } } default "info"; description "Severity level threshold for the syslog message"; } leaf log-prefix { type union { type enumeration { enum "no-prefix" { value -1; } } type string { length "1..32"; pattern "([!-9;<>-~])+" { error-message "String must contain only printable characters between 33 - 126 ASCII except ':' and '='"; } } } default "TMNX"; description "String that is prepended to every log message sent to this target syslog host"; } leaf port { type types-qos:tcp-udp-match-port; default "514"; description "UDP port to generate syslog messages"; } } // list syslog } // container log container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IGMP host tracking"; } leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "260"; description "Time during which the system continues to track inactive hosts"; } } // container igmp-host-tracking container pcp { description "Enter the pcp context"; list server { key "name"; max-elements 8; description "Enter the server list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "PCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this PCP server"; } leaf description { type types-sros:description; description "Text description"; } leaf dual-stack-lite-address { type types-sros:ipv6-unicast-address; description "Inside Dual Stack Lite AFTR address"; } leaf fwd-inside-router { type string; description "PCP forwarding inside virtual router instance"; } leaf policy { type types-sros:named-item; description "PCP server policy"; } list interface { key "name"; max-elements 32; description "Add a list entry for interface"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name"; } } // list interface } // list server } // container pcp container bgp-vpn-backup { description "Enter the bgp-vpn-backup context"; leaf ipv4 { type boolean; default "false"; description "Allows BGP-VPN routes to be used as backup paths for IPv4 prefixes."; } leaf ipv6 { type boolean; default "false"; description "Allows BGP-VPN routes to be used as backup paths for IPv6 prefixes."; } } // container bgp-vpn-backup container grt-leaking { description "Enter the grt-leaking context"; leaf export-limit { type uint32 { range "0..1000"; } default "5"; description "Maximum number of routes that can be exported."; } leaf export-v6-limit { type uint32 { range "0..1000"; } default "5"; description "Maximum number of IPv6 routes that can be exported."; } leaf grt-lookup { type boolean; default "false"; description "Enable/disable global route table lookup."; } leaf allow-local-management { type boolean; default "false"; description "Enable/disable management traffic from GRT-leaking enabled VPRN instances to reach local interfaces in the base routing instance."; } container export-grt { description "Enter the export-grt context"; leaf-list policy-name { type union { type types-sros:policy-expr-string; type string; } max-elements 5; ordered-by user; description "Attribute policy-name for export-grt."; } } // container export-grt container import-grt { description "Enter the import-grt context"; leaf-list policy-name { type union { type types-sros:policy-expr-string; type string; } max-elements 5; ordered-by user; description "Attribute policy-name for import-grt."; } } // container import-grt } // container grt-leaking container gsmp { description "Enter the gsmp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of GSMP"; } list group { key "name"; max-elements 1024; description "Enter the group list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "GSMP neighbor group name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the GSMP group"; } leaf description { type types-sros:description; description "Text description"; } leaf keepalive { type types-sros:time-duration { range "1..25"; } units "seconds"; default "10"; description "Keepalive value for the GSMP connections in this group"; } leaf hold-multiplier { type uint32 { range "1..100"; } default "3"; description "Hold-multiplier for the GSMP connections in this group"; } leaf persistency { type boolean; default "false"; description "Store DSL line information when the GSMP connection terminates"; } leaf idle-filter { type boolean; default "false"; description "Filter ANCP messages from IDLE DSL lines"; } container ancp { description "Enter the ancp context"; leaf dynamic-topology-discovery { type boolean; default "true"; description "Enable the ANCP dynamic topology discovery capability"; } leaf oam { type boolean; default "false"; description "Enable GSMP ANCP OAM capability at startup of GSMP connection"; } } // container ancp list neighbor { key "remote-address"; description "Enter the neighbor list instance"; leaf remote-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "GSMP neighbor remote IP address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the GSMP neighbor"; } leaf description { type types-sros:description; description "Text description"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Restrict connections to this local address only within the service running ANCP"; } container priority-marking { description "Enter the priority-marking context"; choice priority-marking { case dscp { leaf dscp { type types-qos:dscp-name; description "DSCP that is used while remarking the in profile packets"; } } case prec { leaf prec { type types-qos:precedence-value; description "Precedence priority marking"; } } } } // container priority-marking } // list neighbor } // list group } // container gsmp container vxlan { description "Enter the vxlan context"; list tunnel-termination { key "ip-address"; description "Enter the tunnel-termination list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "Non system IP address to terminate the VXLAN"; } leaf fpe-id { type uint32 { range "1..64"; } sros-ext:immutable; description "FPE id for this entry"; } } // list tunnel-termination } // container vxlan container ttl-propagate { description "Enter the ttl-propagate context"; leaf local { type types-router:vprn-ttl-propagate; default "use-base"; description "Manage TTL propagation from IP header into label stack for local packets."; } leaf transit { type types-router:vprn-ttl-propagate; default "use-base"; description "Manage TTL propagation from IP header into label stack for transit packets."; } } // container ttl-propagate container sgt-qos { description "Enter the sgt-qos context"; container dscp { description "Enter the dscp context"; list application { key "dscp-app-name"; description "Enter the application list instance"; leaf dscp-app-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:dscp-app-name-vprn; } description "DSCP application identifier on the NOKIA SR OS router that generates control traffic over IP"; } leaf dscp { type union { type types-qos:dscp-name; type int32 { range "0..63"; } } description "DSCP value to the traffic generated by this application"; } } // list application list dscp-map { key "dscp-name"; description "Enter the dscp-map list instance"; leaf dscp-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:dscp-name; } description "DSCP name mapped to forwarding class"; } leaf fc { type types-sros:fc-name; description "Value for the forwarding class for this mapping"; } } // list dscp-map } // container dscp container dot1p { description "Enter the dot1p context"; list application { key "dot1p-app-name"; description "Enter the application list instance"; leaf dot1p-app-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:dot1p-app-name; } description "Dot1p application identifier on the NOKIA SR OS router that generates control traffic over IP"; } leaf dot1p { type union { type types-sros:fc-name; type int32 { range "0..7"; } } description "Dot1p value to the traffic generated by this application"; } } // list application } // container dot1p } // container sgt-qos container snmp { description "Enter the snmp context"; leaf access { type boolean; default "false"; description "Enable/Disable SNMP access for the vprn service"; } list community { key "community-string"; description "Enter the community list instance"; leaf community-string { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:encrypted-leaf { length "1..114"; } } description "Community string for which this entry represents a configuration. community-string - [64 chars max] hash-key - [113 chars max] hash2-key - [114 chars max]"; } leaf access-permissions { type enumeration { enum "r" { value 1; } enum "rw" { value 2; } } description "Community string for which this entry represents a configuration."; } leaf version { type enumeration { enum "v1" { value 1; } enum "v2c" { value 2; } enum "both" { value 3; } } default "both"; description "SNMP version."; } leaf source-access-list { type types-sros:string-not-all-spaces { length "1..32"; pattern "([A-Za-z].*[^ \\\\t]?$)|(^[^_].*[^ \\\\t]?)" { error-message "List name must begin with a letter"; } } description "The context in which management information is accessed when using the community string."; } } // list community } // container snmp container network { description "Enter the network context"; container ingress { description "Enter the ingress context"; leaf urpf-check { type boolean; default "true"; description "Enable/disable URPF checking when the network interface is in selective VPRN mode"; } container qos { description "Enter the qos context"; leaf network-policy { type types-qos:network-policy-name; description "Network policy name associated with a VPRN"; } leaf fp-redirect-group { type types-sros:named-item; description "The forwarding-plane queue group Policy for this VPRN"; } leaf instance { type types-services:qos-qgrp-instance-id; description "The instance of the forwarding-plane ingress Queue Group for this VPRN"; } } // container qos container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter } // container ingress } // container network container management { presence "Enter the 'management' context"; description "Enable the management context"; leaf allow-telnet { type boolean; default "false"; description "Allow/disallow access to telnet server."; } leaf allow-telnet6 { type boolean; default "false"; description "Allow/disallow access to telnet IPv6 server."; } leaf allow-ftp { type boolean; default "false"; description "Allow/disallow access to ftp server."; } leaf allow-ssh { type boolean; default "false"; description "Allow/disallow access to ssh server."; } leaf allow-netconf { type boolean; default "false"; description "Allow/disallow access to netconf server."; } leaf allow-grpc { type boolean; default "false"; description "Allow/disallow access to grpc server."; } } // container management container dhcp-server { description "Enter the dhcp-server context"; list dhcpv4 { key "name"; description "Enter the dhcpv4 list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "DHCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP server"; } leaf description { type types-sros:description; description "Text description"; } leaf user-db { type types-sros:named-item; description "Local user database for authentication"; } leaf user-identification { type enumeration { enum "mac-circuit-id" { value 1; } enum "duid" { value 2; } enum "interface-id" { value 3; } enum "interface-id-link-local" { value 4; } enum "client-id" { value 5; } enum "mac" { value 6; } enum "circuit-id" { value 7; } enum "remote-id" { value 8; } } default "mac-circuit-id"; description "User identification method for the DHCP server"; } leaf force-renews { type boolean; default "false"; description "Send FORCERENEW messages to force renewals of leases"; } container pool-selection { description "Enter the pool-selection context"; container use-gi-address { presence "Enter the 'use-gi-address' context"; description "Enable the use-gi-address context"; leaf scope { type enumeration { enum "subnet" { value 0; } enum "pool" { value 1; } } default "subnet"; description "GI address-matching scope"; } } // container use-gi-address container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type types-sros:string-not-all-spaces { length "1"; } description "Delimiter to combine primary and secondary pool names"; } } // container use-pool-from-client } // container pool-selection container lease-hold { description "Enter the lease-hold context"; leaf time { type types-sros:time-duration { range "1..631152000"; } units "seconds"; description "Lease hold time"; } container additional-scenarios { description "Enter the additional-scenarios context"; leaf internal-lease-ipsec { type boolean; default "false"; description "Enable lease hold timer for internal IPsec clients"; } leaf solicited-release { type boolean; default "false"; description "Enable lease hold timer for solicited releases"; } } // container additional-scenarios } // container lease-hold container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; default "120"; description "Time between initialization and assuming active role"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Tag that identifies synchronizing server or pool pairs"; } } // list peer } // container failover list pool { key "pool-name"; description "Enter the pool list instance"; leaf pool-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "DHCP server pool name"; } leaf description { type types-sros:description; description "Text description"; } leaf min-lease-time { type types-sros:time-duration { range "10..315446399"; } units "seconds"; default "600"; description "Minimum lease time"; } leaf max-lease-time { type types-sros:time-duration { range "10..315446399"; } units "seconds"; default "864000"; description "Maximum lease time"; } leaf offer-time { type types-sros:time-duration { range "10..600"; } units "seconds"; default "60"; description "Time interval during which a DHCP offer remains valid"; } leaf nak-non-matching-subnet { type boolean; default "false"; description "Send NAK if no match for request address pool range"; } container minimum-free { description "Enter the minimum-free context"; leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when addresses are depleted"; } choice value { default "absolute"; case absolute { leaf absolute { type uint32 { range "0..255"; } default "1"; description "Minimum number of free addresses in this pool or subnet"; } } case percent { leaf percent { type uint32 { range "0..100"; } default "1"; description "Minimum free addresses as a percentage"; } } } } // container minimum-free container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } } description "DHCP option to send identification strings to client"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration"; } } case ipv4-address { leaf-list ipv4-address { type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option."; } } } } // list option } // container options container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; default "120"; description "Time between initialization and assuming active role"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Tag that identifies synchronizing server or pool pairs"; } } // list peer } // container failover list subnet { key "ipv4-prefix"; description "Enter the subnet list instance"; leaf ipv4-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "IPv4 prefix for the subnet"; } leaf drain { type boolean; default "false"; description "Prevent new lease assignment from this subnet"; } leaf maximum-declined { type uint32; default "64"; description "Maximum number of declined addresses allowed"; } container minimum-free { description "Enter the minimum-free context"; leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when addresses are depleted"; } choice value { default "absolute"; case absolute { leaf absolute { type uint32 { range "0..255"; } default "1"; description "Minimum number of free addresses in this pool or subnet"; } } case percent { leaf percent { type uint32 { range "0..100"; } default "1"; description "Minimum free addresses as a percentage"; } } } } // container minimum-free container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } } description "DHCP option to send identification strings to client"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration"; } } case ipv4-address { leaf-list ipv4-address { type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option."; } } } } // list option } // container options list address-range { key "start end"; description "Enter the address-range list instance"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Start address of this range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "End address of this range"; } leaf failover-control-type { type types-dhcp:failover-control-type; sros-ext:immutable; default "local"; description "Failover control type for this range"; } } // list address-range list exclude-addresses { key "start end"; description "Add a list entry for exclude-addresses"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Start address of this range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "End address of this range"; } } // list exclude-addresses } // list subnet } // list pool } // list dhcpv4 list dhcpv6 { key "name"; description "Enter the dhcpv6 list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "DHCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP server"; } leaf auto-provisioned { type boolean; sros-ext:immutable; default "false"; description "Auto-provision the pools of this server"; } leaf description { type types-sros:description; description "Text description"; } leaf user-identification { type enumeration { enum "mac-circuit-id" { value 1; } enum "duid" { value 2; } enum "interface-id" { value 3; } enum "interface-id-link-local" { value 4; } enum "client-id" { value 5; } enum "mac" { value 6; } enum "circuit-id" { value 7; } enum "remote-id" { value 8; } } default "duid"; description "User identification method for the DHCP server"; } leaf ignore-rapid-commit { type boolean; default "false"; description "Ignore Rapid Commit option"; } leaf interface-id-mapping { type boolean; default "false"; description "Map hosts within interface-to-prefix combinations"; } leaf lease-query { type boolean; default "false"; description "Handle and reply to lease query messages"; } container pool-selection { description "Enter the pool-selection context"; container use-link-address { presence "Enter the 'use-link-address' context"; description "Enable the use-link-address context"; leaf scope { type enumeration { enum "subnet" { value 0; } enum "pool" { value 1; } } default "subnet"; description "Scope of the IP address selection"; } } // container use-link-address container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type types-sros:string-not-all-spaces { length "1"; } description "Delimiter to combine primary and secondary pool names"; } } // container use-pool-from-client } // container pool-selection container lease-hold { description "Enter the lease-hold context"; leaf time { type types-sros:time-duration { range "1..631152000"; } units "seconds"; description "Lease hold time"; } container additional-scenarios { description "Enter the additional-scenarios context"; leaf internal-lease-ipsec { type boolean; default "false"; description "Enable lease hold timer for internal IPsec clients"; } leaf solicited-release { type boolean; default "false"; description "Enable lease hold timer for solicited releases"; } } // container additional-scenarios } // container lease-hold container server-id { description "Enter the server-id context"; choice value { default "duid-link-local"; case duid-link-local { leaf duid-link-local { type empty; description "Derive DUID server ID from a system link-layer address"; } } case duid-enterprise { container duid-enterprise { description "Enter the duid-enterprise context"; choice duid-enterprise-value { case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..58"; } description "DUID enterprise server ID specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..118"; } description "DUID enterprise server ID specified as a hex string"; } } } } // container duid-enterprise } } } // container server-id container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; default "120"; description "Time between initialization and assuming active role"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Tag that identifies synchronizing server or pool pairs"; } } // list peer } // container failover container defaults { description "Enter the defaults context"; leaf preferred-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "3600"; description "Time this lease remains preferred"; } leaf valid-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "86400"; description "Time for the lease to remain valid"; } leaf renew-time { type types-sros:time-duration { range "0..604800"; } units "seconds"; default "1800"; description "Renew time for the lease"; } leaf rebind-time { type types-sros:time-duration { range "0..1209600"; } units "seconds"; default "2880"; description "Rebind time for the lease"; } container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } } description "DHCP option number"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options } // container defaults list pool { key "pool-name"; description "Enter the pool list instance"; leaf pool-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "DHCP server pool name"; } leaf description { type types-sros:description; description "Text description"; } container delegated-prefix { description "Enter the delegated-prefix context"; leaf length { type uint32 { range "48..127"; } default "64"; description "Prefix length for pool if unspecified by client"; } leaf minimum { type uint32 { range "48..127"; } default "48"; description "Minimum delegated prefix length for this pool"; } leaf maximum { type uint32 { range "48..127"; } default "64"; description "Maximum delegated prefix length for this pool"; } } // container delegated-prefix container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; default "120"; description "Time between initialization and assuming active role"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Tag that identifies synchronizing server or pool pairs"; } } // list peer } // container failover list prefix-length-threshold { key "prefix-length"; max-elements 8; description "Enter the prefix-length-threshold list instance"; leaf prefix-length { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..128"; } } description "Delegated prefix length for pool thresholds"; } leaf minimum-free-percent { type uint32 { range "0..100"; } default "0"; description "Percentage of free prefixes for this prefix length"; } leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when this pool is depleted"; } } // list prefix-length-threshold container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } } description "DHCP option number"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "IPv6 prefix to be excluded from available pool prefixes"; } leaf failover-control-type { type types-dhcp:failover-control-type; sros-ext:immutable; default "local"; description "Failover control type for this range"; } leaf preferred-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "3600"; description "Time this lease remains preferred"; } leaf valid-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "86400"; description "Time for the lease to remain valid"; } leaf renew-time { type types-sros:time-duration { range "0..604800"; } units "seconds"; default "1800"; description "Renew time for the lease"; } leaf rebind-time { type types-sros:time-duration { range "0..1209600"; } units "seconds"; default "2880"; description "Rebind time for the lease"; } leaf drain { type boolean; default "false"; description "No new leases can be assigned"; } container prefix-type { description "Enter the prefix-type context"; leaf pd { type boolean; sros-ext:immutable; default "true"; description "Allocate IA-PD prefixes from this prefix pool"; } leaf wan-host { type boolean; sros-ext:immutable; default "true"; description "Allocate IA-NA or SLAAC prefixes from this prefix pool"; } } // container prefix-type container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } } description "DHCP option number"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options list prefix-length-threshold { key "prefix-length"; max-elements 8; description "Enter the prefix-length-threshold list instance"; leaf prefix-length { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..128"; } } description "Delegated prefix length for pool thresholds"; } leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when this pool is depleted"; } choice value { case absolute { leaf absolute { type uint32 { range "1..4294967295"; } description "Minimum number of free prefixes for this prefix length"; } } case percent { leaf percent { type uint32 { range "1..100"; } description "Minimum percentage of free prefixes for prefix length"; } } } } // list prefix-length-threshold } // list prefix list exclude-prefix { key "ipv6-prefix"; description "Add a list entry for exclude-prefix"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "IPv6 prefix to be excluded from available pool prefixes"; } } // list exclude-prefix } // list pool } // list dhcpv6 } // container dhcp-server list isis { key "isis-instance"; description "Enter the isis list instance"; leaf isis-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "0..127"; } } description "Instance ID for IS-IS instance"; } leaf authentication-keychain { type types-sros:named-item; description "The keychain used to sign and/or authenticate."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication key to verify PDUs sent by neighboring routers"; } leaf authentication-type { type types-isis:auth-type; description "Authentication type"; } leaf csnp-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of complete sequence number PDU (CSNP) type"; } leaf psnp-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of partial sequence number PDU (PSNP) type"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IS-IS instance"; } leaf advertise-passive-only { type boolean; default "false"; description "Advertise prefixes that belong to passive interfaces"; } leaf advertise-router-capability { type enumeration { enum "area" { value 2; } enum "as" { value 3; } } description "Advertise router capabilities to neighbors"; } leaf all-l1isis { type yang:mac-address; default "01:80:C2:00:00:14"; description "Destination MAC address for all L1 IS-IS routers"; } leaf all-l2isis { type yang:mac-address; default "01:80:C2:00:00:15"; description "Destination MAC address for all L2 IS-IS routers"; } leaf authentication-check { type boolean; default "true"; description "Perform authentication check to reject PDUs that do not match the type or key requirements"; } leaf default-route-tag { type uint32 { range "1..max"; } description "Route tag for default route"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf ignore-attached-bit { type boolean; default "false"; description "Ignore attached bit on received L1 LSPs to disable installation of default routes"; } leaf ignore-lsp-errors { type boolean; default "false"; description "Ignore LSP packets with errors"; } leaf ignore-narrow-metric { type boolean; default "false"; description "Ignore links with narrow metrics when wide-metrics support is enabled"; } leaf iid-tlv { type boolean; default "false"; description "Use IID TLVs with IS-IS multi-instance (MI)"; } leaf ipv4-multicast-routing { type types-isis:routing-topology; default "native"; description "IS-IS topology for IPv4 multicast routing"; } leaf ipv4-routing { type boolean; default "true"; description "Support IPv4 routing for IS-IS instance"; } leaf ipv6-routing { type types-isis:routing-topology; default "false"; description "Routing topology for IPv6"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf level-capability { type types-isis:level; description "Routing level for instance"; } leaf lsp-lifetime { type uint32 { range "350..65535"; } units "seconds"; sros-ext:manual-restart-to-modify; default "1200"; description "Amount of time during which an LSP is considered valid"; } leaf lsp-minimum-remaining-lifetime { type uint32 { range "350..65535"; } units "seconds"; description "Minimum value for the Remaining Lifetime of an LSP"; } leaf lsp-mtu-size { type types-isis:lsp-buffer-ext-size; units "bytes"; sros-ext:manual-restart-to-modify; default "1492"; description "LSP MTU size"; } leaf overload-export-interlevel { type boolean; default "false"; description "Advertise the inter-level routes when router is overloaded"; } leaf overload-export-external { type boolean; default "false"; description "Advertise the external routes when router is in overloaded"; } leaf poi-tlv { type boolean; default "false"; description "Purge Originator Identification TLV"; } leaf prefix-attributes-tlv { type boolean; default "false"; description "Use IS-IS Prefix Attributes TLV to exchange extended IPv4 and IPv6 reachability information"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; description "Reference bandwidth for bandwidth relative costing"; } leaf router-id { type types-igp:router-id; description "Unique router ID for the ISIS instance"; } leaf standard-multi-instance { type boolean; default "false"; description "Enable RFC standards compliant multi-instance behavior"; } leaf strict-adjacency-check { type boolean; default "false"; description "Enable strict checking of address families for IS-IS adjacencies"; } leaf suppress-attached-bit { type boolean; default "false"; description "Allow IS-IS to suppress setting the attached bit on LSPs"; } leaf system-id { type types-igp:system-id; sros-ext:manual-restart-to-modify; description "System ID"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf-list area-address { type types-isis:area-address; max-elements 3; description "Area address portion of NSAP address"; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for IS-IS"; } } // container graceful-restart container multi-topology { presence "Enter the 'multi-topology' context"; description "Enable the multi-topology context"; leaf ipv6-unicast { type boolean; default "false"; description "Support multi-topology TLVs"; } leaf ipv4-multicast { type boolean; default "false"; description "Support IPv4 topology (MT3)"; } } // container multi-topology container multicast-import { description "Enter the multicast-import context"; leaf ipv4 { type boolean; default "false"; description "Submit IPv4 routes into the multicast RPF of the RTM"; } } // container multicast-import container overload { presence "Enter the 'overload' context"; description "Enable the overload context"; leaf max-metric { type boolean; default "false"; description "Advertise transit links with maximum metric instead of setting overload bit"; } } // container overload container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "60..1800"; } units "seconds"; description "Time during which the router operates in overload state after reboot"; } leaf max-metric { type boolean; default "false"; description "Advertise transit links with maximum metric instead of setting overload bit"; } } // container overload-on-boot container prefix-limit { presence "Enter the 'prefix-limit' context"; description "Enable the prefix-limit context"; leaf limit { type uint32 { range "1..max"; } description "Maximum number of prefixes for IS-IS instance"; } leaf log-only { type boolean; default "false"; description "Send warning message at specified threshold or when limit is reached, without going into overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Specifies the percentage of the value defined by prefix-limit, at which a warning log message and SNMP notification would be sent. This would only be a warning and additional prefixes will be learned up to 100% of prefix-limit. A value of 0 indicates that the threshold is disabled and no log message or SNMP notification will be sent."; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Time router remains in overload after prefix limit is exceeded before restarting"; } } // container prefix-limit container lsp-refresh { description "Enter the lsp-refresh context"; leaf interval { type uint32 { range "150..65535"; } units "seconds"; default "600"; description "Refresh timer interval"; } leaf half-lifetime { type boolean; default "true"; description "Set the refresh interval to always be half the LSP lifetime"; } } // container lsp-refresh container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; choice type { case prefix-list { leaf prefix-list { type types-sros:named-item; description "List used to select routes processed at higher priority through OSPF route calculation process"; } } case tag { leaf tag { type uint32 { range "1..max"; } description "Value that matches IS-IS routes processed at higher priority through route calculation process"; } } } } // container high } // container rib-priority container timers { description "Enter the timers context"; container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between first and second SPF calculations"; } } // container spf-wait container lsp-wait { description "Enter the lsp-wait context"; leaf lsp-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of LSP generation"; } leaf lsp-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "10"; description "Initial LSP generation delay"; } leaf lsp-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Delay between first and second LSP generation"; } } // container lsp-wait } // container timers container unicast-import { description "Enter the unicast-import context"; leaf ipv4 { type boolean; default "true"; description "Submit IPv4 routes into unicast RTM"; } leaf ipv6 { type boolean; default "true"; description "Submit IPv6 routes into unicast RTM"; } } // container unicast-import container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude } // container loopfree-alternate list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of interface"; } leaf hello-authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication key or hash string for Hello PDUs"; } leaf hello-authentication-keychain { type types-sros:named-item; description "Authentication keychain to use for the session."; } leaf hello-authentication-type { type types-isis:auth-type; description "Hello authentication type"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf passive { type boolean; default "false"; description "Passive interface"; } leaf csnp-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time interval between successive CSN PDUs sent from interface"; } leaf default-instance { type boolean; default "false"; description "Allow non-MI capable router to establish an adjacency and operate with a router in non-zero instance"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf interface-type { type types-isis:interface-type; description "Interface type to broadcast, point-to-point, or to be default"; } leaf ipv4-multicast { type boolean; default "true"; description "Clear IPv4 multicast routing for interface"; } leaf ipv6-unicast { type boolean; default "true"; description "Clear IPv4 multicast routing for interface"; } leaf level-capability { type types-isis:level; description "IS-IS levels for this interface"; } leaf load-balancing-weight { type uint32; description "Load balancing weight"; } leaf lsp-pacing-interval { type uint32 { range "0..65535"; } units "milliseconds"; default "100"; description "Interval for sending LSPs from interface"; } leaf retransmit-interval { type uint32 { range "1..65535"; } units "seconds"; default "5"; description "Minimum time between LSP PDU retransmissions on point-to-point interface"; } leaf tag { type uint32 { range "1..max"; } description "Route tag for IP address of interface"; } container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable Loopfree Alternative at interface level."; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type types-sros:named-item; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate container mesh-group { presence "Enter the 'mesh-group' context"; description "Enable the mesh-group context"; choice type { case value { leaf value { type int32 { range "1..2000000000"; } description "Mesh group for the interface"; } } case blocked { leaf blocked { type empty; description "Prevent the interface from flooding LSPs"; } } } } // container mesh-group container bfd-liveness { description "Enter the bfd-liveness context"; container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf include-bfd-tlv { type boolean; default "false"; description "BFD-enabled TLV for IPv4 to include on this IS-IS interface"; } } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf include-bfd-tlv { type boolean; default "false"; description "BFD-enabled TLV for IPv4 to include on this IS-IS interface"; } } // container ipv6 } // container bfd-liveness list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "1" { value 1; } enum "2" { value 2; } } } description "IS-IS protocol level to which these attributes apply"; } leaf hello-authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication or hash key string."; } leaf hello-authentication-keychain { type types-sros:named-item; description "Authentication keychain to use for the session."; } leaf hello-authentication-type { type types-isis:auth-type; description "Hello-authentication-type to be enabled."; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf passive { type boolean; default "false"; description "Passive interface"; } leaf hello-interval { type uint32 { range "1..20000"; } units "seconds"; default "9"; description "Interval between Hello messages sent on this level"; } leaf hello-multiplier { type int32 { range "2..100"; } default "3"; description "Hello messages missed from neighbor before router declares adjacency down"; } leaf ipv4-multicast-metric { type types-isis:metric; description "IS-IS interface metric applied for IPv4 multicast"; } leaf ipv6-unicast-metric { type types-isis:metric; description "IS-IS interface metric applied for IPv6 unicast"; } leaf metric { type types-isis:metric; description "IS-IS interface metric applied for IPv4 unicast"; } leaf priority { type uint32 { range "0..127"; } default "64"; description "Router to become the designated router on a multi-access network"; } leaf sd-offset { type types-isis:metric; description "Value of the signal degrade offset"; } leaf sf-offset { type types-isis:metric; description "Value of the signal fail offset"; } } // list level } // list interface list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "1" { value 1; } enum "2" { value 2; } } } description "IS-IS protocol level to which these attributes apply"; } leaf authentication-keychain { type types-sros:named-item; description "The keychain used to sign and/or authenticate."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication or hash key string."; } leaf authentication-type { type types-isis:auth-type; description "Configure the authentication type to be used."; } leaf csnp-authentication { type boolean; default "true"; description "Enable/disable authentication on received ISIS protocol packets of type CSNP."; } leaf psnp-authentication { type boolean; default "true"; description "Enable/disable authentication on received ISIS protocol packets of type PSNP."; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf default-ipv4-multicast-metric { type types-isis:metric; default "10"; description "Default metric for IPv4 unicast"; } leaf default-ipv6-unicast-metric { type types-isis:metric; default "10"; description "Default metric for IPv6 unicast"; } leaf default-metric { type types-isis:metric; default "10"; description "Default metric"; } leaf external-preference { type uint32 { range "1..255"; } description "External route preference for IS-IS level"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude interface participating in specific IS-IS level in SPF LFA computation"; } leaf lsp-mtu-size { type types-isis:lsp-buffer-ext-size; units "bytes"; sros-ext:manual-restart-to-modify; default "1492"; description "LSP MTU size"; } leaf preference { type uint32 { range "1..255"; } description "External route preference at level"; } leaf wide-metrics-only { type boolean; default "false"; description "Use wide metrics advertisements in the LSPs"; } } // list level list link-group { key "link-group-name"; description "Enter the link-group list instance"; leaf link-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Link group name for the IS-IS protocol"; } leaf description { type types-sros:very-long-description; description "Text description"; } list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "1" { value 1; } enum "2" { value 2; } } } description "IS-IS protocol level to which these attributes apply"; } leaf ipv4-multicast-metric-offset { type types-isis:metric; description "Offset value for the IPv4 multicast address family"; } leaf ipv4-unicast-metric-offset { type types-isis:metric; description "Offset value for the IPv4 unicast address family"; } leaf ipv6-unicast-metric-offset { type types-isis:metric; description "Offset value for the IPv6 unicast address family"; } leaf oper-members { type uint32 { range "1..8"; } description "Minimum number of operational links"; } leaf revert-members { type uint32 { range "1..8"; } description "Minimum number of operational links to return link group to normal state and remove offsets"; } list member { key "interface-name"; max-elements 8; description "Add a list entry for member"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name for this link group"; } } // list member } // list level } // list link-group list summary-address { key "ip-prefix"; description "Enter the summary-address list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "Summary IP prefix"; } leaf level-capability { type types-isis:level; description "IS-IS Level from which the prefix should be summarized"; } leaf route-tag { type uint32 { range "1..max"; } description "Route tag assigned to the summary address"; } } // list summary-address } // list isis container msdp { presence "Enter the 'msdp' context"; description "Enable the msdp context"; leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf data-encapsulation { type boolean; default "true"; description "Enable/Disable encapsulation of multicast data used by MSDP"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "The route table(s) for RPF lookup."; } leaf source-active-cache-lifetime { type uint32 { range "90..600"; } units "seconds"; default "90"; description "Lifetime given to SA cache entries when created or refreshed"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate list group { key "name"; description "Enter the group list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "The peer group name"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf mode { type enumeration { enum "standard" { value 1; } enum "mesh-group" { value 2; } } default "standard"; description "Topology of groups of peers"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "The local end of an MSDP session"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf default-peer { type boolean; default "false"; description "Enable/Disable default peer as MSDP peer"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "The authentication key to be used for a specific MSDP peer group peering session"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate } // list peer } // list group list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "The local end of an MSDP session"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf default-peer { type boolean; default "false"; description "Enable/Disable default peer as MSDP peer"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "The authentication key to be used for a specific MSDP peering session"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate } // list peer list source { key "ip-prefix"; description "Enter the source list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "The IP address of the sources from which the source active messages would be accepted"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP source"; } } // list source } // container msdp list ospf { key "ospf-instance"; max-elements 32; description "Enter the ospf list instance"; leaf ospf-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0"; } } description "Specifies the value of the integrated OSPF instance."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the OSPF instance"; } leaf router-id { type types-igp:router-id; description "Unique router ID for the OSPF instance"; } leaf advertise-router-capability { type types-ospf:advertise-router-capability-type; default "false"; description "Allow router advertisement capabilities"; } leaf external-preference { type int32 { range "1..255"; } default "150"; description "Preference for OSPF external routes"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf multicast-import { type boolean; default "false"; description "Submit routes into the multicast Route Table Manager"; } leaf overload-include-ext-1 { type boolean; default "false"; description "Advertise external type-1 routes with maximum metric value in cases of overload"; } leaf overload-include-ext-2 { type boolean; default "false"; description "Advertise external type-2 routes with maximum metric value in cases of overload"; } leaf overload-include-stub { type boolean; default "false"; description "Advertise all stub interfaces with maximum metric value in cases of overload"; } leaf overload { type boolean; default "false"; description "Change overload state of the local router to appear to be overloaded"; } leaf preference { type int32 { range "1..255"; } default "10"; description "Preference for OSPF internal routes"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; default "100000000"; description "Bandwidth to reference the default costing of interfaces"; } leaf unicast-import { type boolean; default "true"; description "Submit routes into the unicast Route Table Manager"; } leaf compatible-rfc1583 { type boolean; default "true"; description "OSPF summary and external route calculations"; } leaf ignore-dn-bit { type boolean; default "false"; description "Enable/disable whether this instance of OSPF will ignore the DN bit for OSPF LSA packets."; } leaf suppress-dn-bit { type boolean; default "false"; description "Enable/disable whether this instance of OSPF will suppress setting the DN bit for OSPF LSA packets."; } leaf super-backbone { type boolean; default "false"; description "Enable/disable super-backbone functionality."; } leaf vpn-tag { type uint32; default "0"; description "OSPF VPN tag"; } container external-db-overflow { presence "Enter the 'external-db-overflow' context"; description "Enable the external-db-overflow context"; leaf limit { type uint32 { range "0..2147483647"; } default "0"; description "Number of external LSA at which overload is triggered"; } leaf interval { type uint32 { range "0..2147483647"; } units "seconds"; default "0"; description "Time during which the router operates in overload"; } } // container external-db-overflow container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "60..1800"; } units "seconds"; description "Time during which the router operates in overload state before reestablishing normal operations"; } } // container overload-on-boot container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; leaf prefix-list { type types-sros:named-item; description "List used to select routes processed at higher priority through OSPF route calculation process"; } } // container high } // container rib-priority container rtr-adv-lsa-limit { presence "Enter the 'rtr-adv-lsa-limit' context"; description "Enable the rtr-adv-lsa-limit context"; leaf max-lsa-count { type uint32 { range "1..max"; } description "Maximum number of LSAs allowed to be advertised by one router"; } leaf log-only { type boolean; default "false"; description "Log the event without triggering overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Percentage of the maximum LSA count at which a warning is given"; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Maximum timeout for overload when the maximum LSA count is reached"; } } // container rtr-adv-lsa-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for OSPF"; } leaf strict-lsa-checking { type boolean; default "true"; description "Perform strict LSA checking during graceful restart helper"; } } // container graceful-restart container timers { description "Enter the timers context"; leaf incremental-spf-wait { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time before an incremental SPF calculation is started"; } leaf lsa-accumulate { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time for accumulating multiple LSAs before advertising them to neighbors"; } leaf lsa-arrival { type uint32 { range "0..600000"; } units "milliseconds"; default "1000"; description "Minimum delay between receipt of the same LSAs arriving from neighbors"; } leaf redistribute-delay { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Hold down timer for external routes that are redistributed in OSPF"; } container lsa-generate { description "Enter the lsa-generate context"; leaf max-lsa-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of an LSA being generated"; } leaf lsa-initial-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "First waiting period between link state advertisements LSA originates"; } leaf lsa-second-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Hold time between the first and second LSA generation"; } } // container lsa-generate container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after a topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between the first and second SPF calculation"; } } // container spf-wait } // container timers container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude } // container loopfree-alternate container vpn-domain { presence "Enter the 'vpn-domain' context"; description "Enable the vpn-domain context"; leaf id { type types-igp:system-id; description "OSPF VPN domain ID"; } leaf type { type types-ospf:vpn-domain-type; description "VPN domain"; } } // container vpn-domain list area { key "area-id"; description "Enter the area list instance"; leaf area-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Area-ID attribute"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf blackhole-aggregate { type boolean; default "true"; description "Install a low priority blackhole route to avoid loops"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Route that is exported as Type 3 Summary-LSAs or OSPFv3 Inter-Area-Prefix-LSA between areas"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Route that is imported as summary type 3/inter-area-prefix-LSA from another area into this area"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude specific interface or all interfaces participating in all OSPF areas in SPF LFA computation"; } leaf advertise-ne-profile { type types-sros:named-item; description "Network element profile to be advertised"; } container stub { presence "Enter the 'stub' context"; description "Enable the stub context"; leaf default-metric { type uint32 { range "1..16777214"; } default "1"; description "Metric used by the ABR for the default route into the stub area"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the stub area on an ABR"; } } // container stub container nssa { presence "Enter the 'nssa' context"; description "Enable the nssa context"; leaf redistribute-external { type boolean; default "true"; description "Redistribute external routes into the NSSA"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the NSSA on an ABR"; } list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "ip-prefix a.b.c.d (host bits must be 0) mask [0..32]"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } } // list area-range container originate-default-route { presence "Enter the 'originate-default-route' context"; description "Enable the originate-default-route context"; leaf type-nssa { type boolean; default "false"; description "Generate a default route using NSSA-LSA type"; } leaf adjacency-check { type boolean; default "false"; description "Perform adjacency checks before originating a default route"; } } // container originate-default-route } // container nssa list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "ip-prefix a.b.c.d (host bits must be 0) mask [0..32]"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } } // list area-range list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name."; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf advertise-subnet { type boolean; default "true"; description "Advertise point-to-point interfaces as subnet routes"; } leaf interface-type { type types-ospf:interface-type; sros-ext:immutable; description "Interface type to broadcast or point-to-point"; } leaf lsa-filter-out { type types-ospf:lsa-filter-out; default "none"; description "LSA flooding reduction"; } leaf metric { type uint32 { range "1..65535"; } description "Explicit route cost metric that is applied to the interface"; } leaf mtu { type types-router:ip-mtu-ext; description "MTU for the OSPF to use on the interface"; } leaf passive { type boolean; default "false"; description "Allow interface to be advertised as an OSPF interface without running the OSPF protocol"; } leaf poll-interval { type uint32; units "seconds"; default "120"; description "Time between two Hello packets to a non-adjacent OSPF NBMA neighbor"; } leaf priority { type uint16 { range "0..255"; } default "1"; description "Priority of the interface to apply in the designated router election on the subnet"; } leaf rib-priority { type types-ospf:rib-priority; description "RIB priority for OSPF"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load-balancing-weight."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "40"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf authentication-keychain { type types-sros:named-item; description "Configure TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Authentication key"; } leaf authentication-type { type types-ospf:authentication-type; description "Authentication type used on OSPF interface"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf remain-down-on-failure { type boolean; default "false"; description "Force adjacency down on BFD failure and remain down until BFD session returns"; } } // container bfd-liveness container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable fast re-route capability for OSPF at interface level (only valid for primary interface)"; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type types-sros:named-item; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate list message-digest-key { key "key-id"; description "Enter the message-digest-key list instance"; leaf key-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint16 { range "1..255"; } } description "Message digest index"; } leaf md5 { type types-sros:encrypted-leaf { length "1..51"; } description "MD5 hash key"; } } // list message-digest-key list neighbor { key "address"; description "Add a list entry for neighbor"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IPv4 address of the OSPFv2 neighbor"; } } // list neighbor } // list interface list virtual-link { key "router-id transit-area"; description "Enter the virtual-link list instance"; leaf router-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Router identity of the virtual link neighbor"; } leaf transit-area { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Transit area that links backbone area to area without physical connection with the backbone"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "60"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf authentication-keychain { type types-sros:named-item; description "Configure TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Authentication key"; } leaf authentication-type { type types-ospf:authentication-type; description "Authentication type used on OSPF interface"; } list message-digest-key { key "key-id"; description "Enter the message-digest-key list instance"; leaf key-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint16 { range "1..255"; } } description "Message digest index"; } leaf md5 { type types-sros:encrypted-leaf { length "1..51"; } description "key - [16 chars max] hash/hash2-key - [44 chars max] (for hash scheme)"; } } // list message-digest-key } // list virtual-link list sham-link { key "interface ip-address"; description "Enter the sham-link list instance"; leaf interface { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name."; } leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Destination IP address"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "40"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf authentication-keychain { type types-sros:named-item; description "Configure TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "authentication-key - [8 chars max] hash/hash2-key - [32 chars max]"; } leaf authentication-type { type types-ospf:authentication-type; description "Enable/disable authentication and specify authentication type to be used on the interface"; } leaf metric { type uint32 { range "1..65535"; } default "1"; description "Explicit route cost metric that is applied to the sham link"; } list message-digest-key { key "key-id"; description "Enter the message-digest-key list instance"; leaf key-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint16 { range "1..255"; } } description "Message digest index"; } leaf md5 { type types-sros:encrypted-leaf { length "1..51"; } description "key - [16 chars max] hash/hash2-key - [44 chars max] (for hash scheme)"; } } // list message-digest-key } // list sham-link } // list area } // list ospf list ospf3 { key "ospf-instance"; max-elements 32; description "Enter the ospf3 list instance"; leaf ospf-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..31|64..95"; } } description "Specifies the value of the integrated OSPF instance."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the OSPF instance"; } leaf router-id { type types-igp:router-id; description "Unique router ID for the OSPF instance"; } leaf advertise-router-capability { type types-ospf:advertise-router-capability-type; default "false"; description "Allow router advertisement capabilities"; } leaf external-preference { type int32 { range "1..255"; } default "150"; description "Preference for OSPF external routes"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf multicast-import { type boolean; default "false"; description "Submit routes into the multicast Route Table Manager"; } leaf overload-include-ext-1 { type boolean; default "false"; description "Advertise external type-1 routes with maximum metric value in cases of overload"; } leaf overload-include-ext-2 { type boolean; default "false"; description "Advertise external type-2 routes with maximum metric value in cases of overload"; } leaf overload-include-stub { type boolean; default "false"; description "Advertise all stub interfaces with maximum metric value in cases of overload"; } leaf overload { type boolean; default "false"; description "Change overload state of the local router to appear to be overloaded"; } leaf preference { type int32 { range "1..255"; } default "10"; description "Preference for OSPF internal routes"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; default "100000000"; description "Bandwidth to reference the default costing of interfaces"; } leaf unicast-import { type boolean; default "true"; description "Submit routes into the unicast Route Table Manager"; } leaf ignore-dn-bit { type boolean; default "false"; description "Enable/disable whether this instance of OSPF will ignore the DN bit for OSPF LSA packets."; } leaf suppress-dn-bit { type boolean; default "false"; description "Enable/disable whether this instance of OSPF will suppress setting the DN bit for OSPF LSA packets."; } container external-db-overflow { presence "Enter the 'external-db-overflow' context"; description "Enable the external-db-overflow context"; leaf limit { type uint32 { range "0..2147483647"; } default "0"; description "Number of external LSA at which overload is triggered"; } leaf interval { type uint32 { range "0..2147483647"; } units "seconds"; default "0"; description "Time during which the router operates in overload"; } } // container external-db-overflow container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "60..1800"; } units "seconds"; description "Time during which the router operates in overload state before reestablishing normal operations"; } } // container overload-on-boot container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; leaf prefix-list { type types-sros:named-item; description "List used to select routes processed at higher priority through OSPF route calculation process"; } } // container high } // container rib-priority container rtr-adv-lsa-limit { presence "Enter the 'rtr-adv-lsa-limit' context"; description "Enable the rtr-adv-lsa-limit context"; leaf max-lsa-count { type uint32 { range "1..max"; } description "Maximum number of LSAs allowed to be advertised by one router"; } leaf log-only { type boolean; default "false"; description "Log the event without triggering overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Percentage of the maximum LSA count at which a warning is given"; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Maximum timeout for overload when the maximum LSA count is reached"; } } // container rtr-adv-lsa-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for OSPF"; } leaf strict-lsa-checking { type boolean; default "true"; description "Perform strict LSA checking during graceful restart helper"; } } // container graceful-restart container timers { description "Enter the timers context"; leaf incremental-spf-wait { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time before an incremental SPF calculation is started"; } leaf lsa-accumulate { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time for accumulating multiple LSAs before advertising them to neighbors"; } leaf lsa-arrival { type uint32 { range "0..600000"; } units "milliseconds"; default "1000"; description "Minimum delay between receipt of the same LSAs arriving from neighbors"; } leaf redistribute-delay { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Hold down timer for external routes that are redistributed in OSPF"; } container lsa-generate { description "Enter the lsa-generate context"; leaf max-lsa-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of an LSA being generated"; } leaf lsa-initial-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "First waiting period between link state advertisements LSA originates"; } leaf lsa-second-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Hold time between the first and second LSA generation"; } } // container lsa-generate container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after a topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between the first and second SPF calculation"; } } // container spf-wait } // container timers container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude } // container loopfree-alternate list area { key "area-id"; description "Enter the area list instance"; leaf area-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Area-ID attribute"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf blackhole-aggregate { type boolean; default "true"; description "Install a low priority blackhole route to avoid loops"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Route that is exported as Type 3 Summary-LSAs or OSPFv3 Inter-Area-Prefix-LSA between areas"; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Route that is imported as summary type 3/inter-area-prefix-LSA from another area into this area"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude specific interface or all interfaces participating in all OSPF areas in SPF LFA computation"; } leaf key-rollover-interval { type uint32 { range "10..300"; } units "seconds"; default "10"; description "Key rollover interval"; } container stub { presence "Enter the 'stub' context"; description "Enable the stub context"; leaf default-metric { type uint32 { range "1..16777214"; } default "1"; description "Metric used by the ABR for the default route into the stub area"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the stub area on an ABR"; } } // container stub container nssa { presence "Enter the 'nssa' context"; description "Enable the nssa context"; leaf redistribute-external { type boolean; default "true"; description "Redistribute external routes into the NSSA"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the NSSA on an ABR"; } list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Address ranges to create on an ABR for route summarization or suppression"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } } // list area-range container originate-default-route { presence "Enter the 'originate-default-route' context"; description "Enable the originate-default-route context"; leaf type-nssa { type boolean; default "false"; description "Generate a default route using NSSA-LSA type"; } leaf adjacency-check { type boolean; default "false"; description "Perform adjacency checks before originating a default route"; } } // container originate-default-route } // container nssa list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Address ranges to create on an ABR for route summarization or suppression"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } } // list area-range list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name."; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf interface-type { type types-ospf:interface-type; sros-ext:immutable; description "Interface type to broadcast or point-to-point"; } leaf lsa-filter-out { type types-ospf:lsa-filter-out; default "none"; description "LSA flooding reduction"; } leaf metric { type uint32 { range "1..65535"; } description "Explicit route cost metric that is applied to the interface"; } leaf mtu { type types-router:ip-mtu-ext; description "MTU for the OSPF to use on the interface"; } leaf passive { type boolean; default "false"; description "Allow interface to be advertised as an OSPF interface without running the OSPF protocol"; } leaf poll-interval { type uint32; units "seconds"; default "120"; description "Time between two Hello packets to a non-adjacent OSPF NBMA neighbor"; } leaf priority { type uint16 { range "0..255"; } default "1"; description "Priority of the interface to apply in the designated router election on the subnet"; } leaf rib-priority { type types-ospf:rib-priority; description "RIB priority for OSPF"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load-balancing-weight."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "40"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf remain-down-on-failure { type boolean; default "false"; description "Force adjacency down on BFD failure and remain down until BFD session returns"; } } // container bfd-liveness container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable fast re-route capability for OSPF at interface level (only valid for primary interface)"; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type types-sros:named-item; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf inbound { type types-sros:named-item; description "sa-name"; } leaf outbound { type types-sros:named-item; description "sa-name"; } } // container authentication list neighbor { key "address"; description "Add a list entry for neighbor"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "IPv6 link local address of the OSPFv3 neighbor"; } } // list neighbor } // list interface list virtual-link { key "router-id transit-area"; description "Enter the virtual-link list instance"; leaf router-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Router identity of the virtual link neighbor"; } leaf transit-area { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Transit area that links backbone area to area without physical connection with the backbone"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "60"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf inbound { type types-sros:named-item; description "sa-name"; } leaf outbound { type types-sros:named-item; description "sa-name"; } } // container authentication } // list virtual-link } // list area } // list ospf3 container radius { description "Enter the radius context"; list server { key "name"; max-elements 64; description "Enter the server list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RADIUS server name"; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; description "IP address for server"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Secret key associated with this RADIUS server"; } leaf accept-coa { type boolean; default "false"; description "Allow the server to send Change of Authorization (CoA) messages"; } leaf acct-port { type types-sros:tcp-udp-port-non-zero; default "1813"; description "UDP port number of the RADIUS for accounting events"; } leaf auth-port { type types-sros:tcp-udp-port-non-zero; default "1812"; description "UDP port number of the RADIUS to be used as match criteria"; } leaf pending-requests-limit { type uint32 { range "1..4096"; } default "4096"; description "Limit of the number for pending RADIUS requests"; } leaf python-policy { type types-sros:named-item; description "Python script policy to modify CoA messages"; } } // list server list proxy { key "name"; max-elements 8; description "Enter the proxy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RADIUS proxy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RADIUS proxy"; } leaf description { type types-sros:description; description "Text description"; } leaf purpose { type enumeration { enum "accounting" { value 1; } enum "authentication" { value 2; } enum "accounting-authentication" { value 3; } } sros-ext:immutable; description "Purpose of the RADIUS proxy"; } leaf wlan-gw-group { type types-isa:wlan-gw-group-id; sros-ext:immutable; description "ISA WLAN gateway group"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Format of the secret key to access the RADIUS proxy server"; } leaf send-accounting-response { type boolean; default "false"; description "Allow RADIUS proxy server to respond to Accounting-Response messages"; } leaf python-policy { type types-sros:named-item; description "Python policy"; } container load-balance-key { description "Enter the load-balance-key context"; choice load-balance-key { case source-ip-udp { leaf source-ip-udp { type empty; description "Key to consist of the source IP address and source UDP port of the RADIUS message"; } } case attributes { container attribute-1 { description "Enter the attribute-1 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-1 container attribute-2 { description "Enter the attribute-2 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-2 container attribute-3 { description "Enter the attribute-3 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-3 container attribute-4 { description "Enter the attribute-4 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-4 container attribute-5 { description "Enter the attribute-5 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-5 } } } // container load-balance-key container cache { description "Enter the cache context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the RADIUS proxy cache"; } leaf track-delete-hold-time { type types-sros:time-duration { range "0..6000"; } default "0"; description "Delete hold time"; } leaf timeout { type types-sros:time-duration { range "60..3600"; } default "300"; description "Idle timeout value"; } container key { presence "Enter the 'key' context"; description "Enable the key context"; leaf packet-type { type enumeration { enum "access-request" { value 1; } enum "access-accept" { value 2; } } description "Packet type of the RADIUS messages to generate the key for the cache of this RADIUS proxy server"; } leaf attribute-type { type types-radius:radius-attribute-type; description "RADIUS attribute type to cache for this RADIUS proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "RADIUS Vendor ID"; } } // container key container track-accounting { description "Enter the track-accounting context"; leaf start { type boolean; default "false"; description "Update the ESM host with the RADIUS client that generated the accounting-start"; } leaf stop { type boolean; default "false"; description "Remove the ESM host and forward the accounting-stop packet to the external RADIUS server"; } leaf interim-update { type boolean; default "false"; description "Update the ESM host with the RADIUS client that generated the interim update"; } leaf accounting-on { type boolean; default "false"; description "Remove all ESM hosts associated with the RADIUS client"; } leaf accounting-off { type boolean; default "false"; description "Remove all ESM hosts associated with the RADIUS client"; } } // container track-accounting container track-authentication { description "Enter the track-authentication context"; leaf accept { type boolean; default "true"; description "Track Access-Accept message for mobility"; } } // container track-authentication } // container cache container attribute-matching { description "Enter the attribute-matching context"; leaf type { type types-radius:radius-attribute-type; description "Matching attribute type to RADIUS server policy"; } leaf vendor { type types-radius:radius-vendor-id; description "Matching Vendor ID to RADIUS server policy"; } list entry { key "index"; description "Enter the entry list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32"; } } description "Index of this entry"; } leaf prefix-string { type types-sros:display-string { length "1..128"; } description "Prefix string"; } leaf suffix-string { type types-sros:display-string { length "1..128"; } description "Prefix string"; } leaf accounting-server-policy { type types-sros:named-item; description "Accounting server policy"; } leaf authentication-server-policy { type types-sros:named-item; description "Authentication server policy"; } } // list entry } // container attribute-matching container wlan-gw { description "Enter the wlan-gw context"; leaf address { type types-sros:ipv4-unicast-address; description "IP address of this RADIUS proxy server"; } leaf ipv6-address { type types-sros:ipv6-unicast-without-local-address; description "IPv6 address of this RADIUS proxy server"; } } // container wlan-gw container defaults { description "Enter the defaults context"; leaf authentication-server-policy { type types-sros:named-item; description "Default authentication RADIUS server policy"; } leaf accounting-server-policy { type types-sros:named-item; description "Default accounting RADIUS server policy"; } } // container defaults list interface { key "interface-name"; description "Add a list entry for interface"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Specifies the interface name"; } } // list interface } // list proxy } // container radius container rip { presence "Enter the 'rip' context"; description "Enable the rip context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIP instance"; } leaf description { type types-sros:description; description "Text description"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; default "none"; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; default "false"; description "Check for zero values in must-be-zero fields."; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf message-size { type types-rip:message-size; default "25"; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; default "1"; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; default "1"; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; default "100"; description "Route preference."; } leaf propagate-metric { type boolean; default "false"; description "Enable propagation of metric."; } leaf receive { type types-rip:receive; default "both"; description "Accepted version on received packets."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } } default "broadcast"; description "RIP version and method used to send RIP updates."; } leaf split-horizon { type boolean; default "true"; description "Enable split-horizon."; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RIP group name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RIP neighbor interface group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to group peers."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from group peers."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-rip:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; description "Route preference."; } leaf receive { type types-rip:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } } description "RIP version and method used to send RIP updates."; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list neighbor { key "interface-name"; description "Enter the neighbor list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIP neighbor interface"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to peers."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from peers."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-rip:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; description "Route preference."; } leaf receive { type types-rip:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } enum "unicast" { value 6; } } description "RIP version and method used to send RIP updates."; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list unicast-address { key "address"; description "Add a list entry for unicast-address"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Create a unicast-address for the neighbor."; } } // list unicast-address } // list neighbor } // list group } // container rip container ripng { presence "Enter the 'ripng' context"; description "Enable the ripng context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIPng instance"; } leaf description { type types-sros:description; description "Text description"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; default "false"; description "Check for zero values in must-be-zero fields."; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf message-size { type types-ripng:message-size; default "25"; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; default "1"; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; default "1"; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; default "100"; description "Route preference."; } leaf receive { type types-ripng:receive; default "ripng"; description "Accepted version on received packets."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } } default "ripng"; description "RIPng version and method used to send RIPng updates."; } leaf split-horizon { type boolean; default "true"; description "Enable split-horizon."; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RIP group name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RIPng neighbor interface group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to group peers."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from group peers."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-ripng:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; description "Route preference."; } leaf receive { type types-ripng:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } } description "RIPng version and method used to send RIPng updates."; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list neighbor { key "interface-name"; description "Enter the neighbor list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the neighbor."; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to peers."; } leaf-list import-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from peers."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-ripng:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; description "Route preference."; } leaf receive { type types-ripng:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } enum "unicast" { value 6; } } description "RIPng version and method used to send RIPng updates."; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list unicast-address { key "address"; description "Add a list entry for unicast-address"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Create a unicast-address for the neighbor."; } } // list unicast-address } // list neighbor } // list group } // container ripng list subscriber-interface { key "interface-name"; description "Enter the subscriber-interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the subscriber interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf fwd-service { type types-services:service-name; sros-ext:immutable; description "Configure the forwarding service."; } leaf fwd-subscriber-interface { type types-sros:interface-name; sros-ext:immutable; description "Forwarding subscriber interface name"; } leaf wan-mode { type enumeration { enum "mode64" { value 1; } enum "mode128" { value 2; } } sros-ext:immutable; default "mode64"; description "The mode of operation for hosts that have a /128 WAN IPv6 address."; } leaf private-retail-subnets { type boolean; sros-ext:immutable; default "false"; description "Export subnets to the forwarding service"; } container ipv4 { description "Enter the ipv4 context"; leaf allow-unmatching-subnets { type boolean; default "false"; description "Allow subscriber hosts without a matching subnet"; } leaf export-host-routes { type boolean; default "false"; description "Allow export of subscriber management host routes"; } leaf-list default-dns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "Default DNS server addresses"; } list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IP address associated with the subscriber subnet"; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf gateway { type types-sros:ipv4-unicast-address; description "Gateway IP address within the subnet for SRRP routing"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf populate-host-routes { type boolean; default "false"; description "Populate subscriber host routes in local FIB"; } leaf holdup-time { type uint32 { range "100..5000"; } units "milliseconds"; description "Wait time before accepting new state attribute"; } } // list address container arp-host { description "Enter the arp-host context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Enable/disable ARP hosts."; } leaf host-limit { type uint32 { range "1..524287"; } description "Maximum number of ARP triggered hosts."; } } // container arp-host container unnumbered { description "Enter the unnumbered context"; choice source { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IP address of the interface"; } } case ip-int-name { leaf ip-int-name { type types-sros:interface-name; description "Interface name"; } } } } // container unnumbered container dhcp { description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf python-policy { type types-sros:named-item; description "Python policy"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "Configure the DHCP server IP addresses."; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf virtual-subnet { type boolean; default "false"; description "Enable/disable virtual subnetting."; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP proxy server"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "0..511999"; } description "The maximum number of DHCPv4 leases."; } } // container lease-populate container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Enable/disable DHCP as client application."; } leaf ppp { type boolean; default "false"; description "Enable/disable PPP as client application."; } } // container client-applications container relay-proxy { presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy container offer-selection { description "Enter the offer-selection context"; leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Offer selection"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } } // container client-mac } case mode-server { list server { key "ipv4-address"; max-elements 8; description "Enter the server list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IP address of the DHCP server"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } } // list server } } } // container offer-selection } // container dhcp } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf allow-multiple-wan-addresses { type boolean; default "false"; description "Configure if the interface will accept multiple WAN addresses."; } leaf ipoe-bridged-mode { type boolean; default "false"; description "Enable/Disable IPv6 IPoE Bridged Mode."; } leaf allow-unmatching-prefixes { type boolean; default "false"; description "Allow subscriber hosts without a matching prefix"; } leaf delegated-prefix-length { type union { type uint32 { range "48..64"; } type enumeration { enum "variable" { value 0; } } } default "64"; description "IPv6 delegated prefix length"; } leaf-list default-dns { type types-sros:ipv6-unicast-address; max-elements 2; ordered-by user; description "Default DNS server addresses"; } list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "IPv6 address for the subscriber interface"; } leaf prefix-length { type uint32 { range "0..128"; } description "IPv6 address prefix length"; } leaf host-type { type enumeration { enum "pd" { value 0; description "Configure to make this aggregate to be used by IPv6 ESM hosts for DHCPv6 prefix-delegation."; } enum "wan" { value 1; description "Configure to make this aggregate to be used by ESM hosts for DHCPv6 addresses or by WAN interface."; } enum "pd-wan" { value 2; description "Configure to make this aggregate to be used by both prefix-delegation and ESM hosts."; } } sros-ext:immutable; default "pd"; description "Host type for subscriber interface prefixes"; } } // list address list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-prefix; } description "IPv6 address for a router interface"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf holdup-time { type uint32 { range "100..5000"; } units "milliseconds"; description "Configures the time to wait, in milliseconds, for the route before it accepts the new state attribute."; } leaf host-type { type enumeration { enum "pd" { value 0; description "Configure to make this aggregate to be used by IPv6 ESM hosts for DHCPv6 prefix-delegation."; } enum "wan" { value 1; description "Configure to make this aggregate to be used by ESM hosts for DHCPv6 addresses or by WAN interface."; } enum "pd-wan" { value 2; description "Configure to make this aggregate to be used by both prefix-delegation and ESM hosts."; } } sros-ext:immutable; default "pd"; description "Host type for subscriber interface prefixes"; } } // list prefix container link-local-address { description "Enter the link-local-address context"; leaf address { type types-sros:ipv6-address; description "IPv6 link local address"; } } // container link-local-address container dhcp6 { description "Enter the dhcp6 context"; leaf override-slaac { type boolean; default "false"; description "Allow WAN address offered by DHCP to overwrite the WAN address acquired from SLAAC"; } leaf python-policy { type types-sros:named-item; description "Python policy"; } container pd-managed-route { presence "Enter the 'pd-managed-route' context"; description "Enable the pd-managed-route context"; leaf next-hop { type types-services:dhcp6-pd-managed-route-nh; default "ipv6"; description "Next hop type"; } } // container pd-managed-route container relay { description "Enter the relay context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 Relay"; } leaf description { type types-sros:description; description "Text description"; } leaf source-address { type types-sros:ipv6-unicast-address; description "Source IPv6 address for the DHCPv6 relay messages"; } leaf link-address { type types-sros:ipv6-address; description "Link address for the DHCPv6 relay messages"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCP6 server(s) to which the DHCP6 requests are forwarded"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container advertise-selection { description "Enter the advertise-selection context"; leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Advertise selection"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container client-mac } case mode-server { list server { key "ipv6-address"; max-elements 8; description "Enter the server list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "IP address of the DHCPv6 server"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // list server } } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container advertise-selection container lease-split { description "Enter the lease-split context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 lease split"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime-new; default "3600"; description "DHCPv6 lease split valid lifetime (short lease time)"; } } // container lease-split } // container relay container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 proxy server"; } leaf preferred-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "3600"; description "Time for prefix to remain preferred on this interface"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "86400"; description "Time for prefix to remain valid on this interface"; } leaf renew-timer { type types-submgt:dhcp6-renew-timer; description "Renew timer (T1)"; } leaf rebind-timer { type types-submgt:dhcp6-rebind-timer; description "Rebind timer (T2) for this interface"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container server-id { description "Enter the server-id context"; choice server-id { default "duid-ll"; case duid-ll { leaf duid-ll { type empty; description "Use link-layer address (DUID-LL) as DUID"; } } case duid-en-hex { leaf duid-en-hex { type string { length "1..118"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as a hexadecimal string"; } } case duid-en-ascii { leaf duid-en-ascii { type types-sros:string-not-all-spaces { length "1..58"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as an ASCII string"; } } } } // container server-id } // container proxy-server } // container dhcp6 container router-advertisements { description "Enter the router-advertisements context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf max-advertisement-interval { type types-sros:time-duration { range "900..1800"; } units "seconds"; default "1800"; description "Maximum advertisement interval"; } leaf min-advertisement-interval { type types-sros:time-duration { range "900..1350"; } units "seconds"; default "900"; description "Minimum advertisement interval"; } leaf force-mcast { type enumeration { enum "ip" { value 1; } enum "ip-mac" { value 2; } } description "Send router advertisement to a multicast address instead of unicast for IPoE"; } container options { description "Enter the options context"; leaf current-hop-limit { type uint32 { range "0..255"; } default "64"; description "Hop limit to be advertised"; } leaf managed-configuration { type boolean; default "false"; description "Managed address configuration flag"; } leaf mtu { type union { type uint32 { range "1280..9212"; } type enumeration { enum "not-included" { value 0; } } } units "bytes"; default "not-included"; description "Advertised MTU value"; } leaf other-stateful-configuration { type boolean; default "false"; description "Other stateful configuration flag"; } leaf reachable-time { type types-sros:time-duration { range "0..3600000"; } units "milliseconds"; default "0"; description "Neighbor discovery reachable time that is advertised for this group interface"; } leaf retransmit-timer { type uint32 { range "0..1800000"; } units "seconds"; default "0"; description "Neighbor discovery retransmit timer that is advertised for this group interface"; } leaf router-lifetime { type union { type types-sros:time-duration { range "2700..9000"; } type enumeration { enum "no-default-router" { value 0; } } } units "seconds"; default "4500"; description "Router lifetime"; } container dns { description "Enter the dns context"; leaf include-rdnss { type boolean; default "false"; description "Include the RDNSS server option 25"; } leaf rdnss-lifetime { type union { type types-sros:time-duration { range "900..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "3600"; description "Maximum time for the RDNSS address to remain valid"; } } // container dns } // container options container prefix-options { description "Enter the prefix-options context"; leaf autonomous { type boolean; default "false"; description "Value of the autonomous flag"; } leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container prefix-options } // container router-advertisements container router-solicit { description "Enter the router-solicit context"; leaf inactivity-timer { type union { type types-sros:time-duration { range "1..31536000"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "300"; description "Time before an inactive host is removed"; } } // container router-solicit } // container ipv6 container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv6 } // container hold-time container ipoe-linking { description "Enter the ipoe-linking context"; leaf gratuitous-router-advertisement { type boolean; default "false"; description "Send unsolicited router advertisement after DHCP setup"; } } // container ipoe-linking container ipoe-session { description "Enter the ipoe-session context"; leaf session-limit { type uint32 { range "1..500000"; } description "Maximum number of sessions on this group interface"; } } // container ipoe-session container pppoe { description "Enter the pppoe context"; leaf description { type types-sros:description; description "Text description"; } leaf session-limit { type uint32 { range "1..262143"; } default "1"; description "Maximum PPPoE sessions"; } } // container pppoe container local-address-assignment { description "Enter the local-address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignment"; } container ipv4 { description "Enter the ipv4 context"; leaf server { type types-sros:named-item; description "Local DHCP server that contains pools for local address assignment"; } leaf-list default-pool { type types-sros:named-item; max-elements 2; ordered-by user; description "Default pools"; } container client-applications { description "Enter the client-applications context"; leaf ppp { type boolean; default "false"; description "Request local addresses for PPP IPCP hosts"; } } // container client-applications } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf server { type types-sros:named-item; description "Local DHCPv6 server that contains pools for local address assignment"; } container client-applications { description "Enter the client-applications context"; leaf ppp-slaac { type boolean; default "false"; description "Request local addresses for PPP SLAAC hosts"; } leaf ipoe-wan { type boolean; default "false"; description "Request local addresses for IPoE IA NA hosts"; } leaf ipoe-slaac { type boolean; default "false"; description "Request local addresses for IPoE SLAAC hosts"; } } // container client-applications } // container ipv6 } // container local-address-assignment list group-interface { key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf type { type types-services:group-interface-type; sros-ext:immutable; default "plain"; description "Group interface type"; } leaf radius-auth-policy { type types-sros:named-item; description "RADIUS authentication policy"; } leaf gx-policy { type types-sros:named-item; description "Diameter application policy"; } leaf nasreq-auth-policy { type types-sros:named-item; description "Diameter NASREQ application policy to use for authentication"; } leaf ingress-stats { type boolean; default "false"; description "Collect ingress interface statistics"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "Interface IP MTU"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf oper-up-while-empty { type boolean; default "false"; description "Enable this group interface without any active SAPs"; } leaf redundant-interface { type types-sros:interface-name; description "Redundant interface"; } leaf shcv-policy { type types-sros:external-named-item; description "Subscriber host connectivity verification policy for IPv4 and IPv6"; } leaf shcv-policy-ipv4 { type types-sros:external-named-item; description "Subscriber host connectivity verification policy for IPv4"; } leaf shcv-policy-ipv6 { type types-sros:external-named-item; description "Subscriber host connectivity verification policy for IPv6"; } leaf suppress-aa-sub { type boolean; default "false"; description "Enable application assurance suppression for ESM subscribers"; } leaf tos-marking-state { type types-router:tos-marking-state; default "trusted"; description "TOS marking state"; } container ingress { description "Enter the ingress context"; leaf policy-accounting { type types-sros:named-item; description "Configure ingress policy accounting."; } } // container ingress container dynamic-routes-track-srrp { presence "Enter the 'dynamic-routes-track-srrp' context"; description "Enable the dynamic-routes-track-srrp context"; leaf hold-time { type uint32 { range "1..50"; } units "deciseconds"; description "Delay before updating the route state after the last SRRP transition"; } } // container dynamic-routes-track-srrp container ipv4 { description "Enter the ipv4 context"; leaf qos-route-lookup { type types-router:qos-route-lookup-grp-if; description "QoS route lookup"; } leaf ignore-df-bit { type boolean; default "false"; description "Ignore DF bit in the IPv4 header when fragmenting"; } container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container arp-host { description "Enter the arp-host context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ARP hosts"; } leaf host-limit { type uint32 { range "1..524287"; } default "1"; description "Maximum number of ARP triggered hosts."; } leaf sap-host-limit { type uint32 { range "1..131071"; } default "1"; description "Maximum number of ARP triggered hosts allowed per SAP."; } leaf min-auth-interval { type types-sros:time-duration { range "1..6000"; } units "minutes"; default "15"; description "Minimal time that has to pass before incoming ARPs of an active ARP host are re-authenticated."; } } // container arp-host container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf local-proxy-arp { type boolean; default "true"; description "Enable local proxy ARP on interface"; } leaf remote-proxy-arp { type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Proxy ARP policy name"; } leaf populate { type boolean; description "Allow static and dynamic hosts to be populated in system ARP cache"; } leaf timeout { type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } } // container neighbor-discovery container dhcp { description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type uint32 { range "1..65535"; } description "DHCP filter."; } leaf python-policy { type types-sros:named-item; description "Python policy name"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "IP addresses for DHCP server requests"; } leaf trusted { type boolean; default "false"; description "Relay untrusted packets"; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf match-circuit-id { type boolean; default "false"; description "Configure match Opt82 circuit ID on relayed DHCP packets."; } leaf user-db { type types-sros:named-item; description "Configure the local user database to use for authentication."; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP proxy"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the Circuit ID"; } } case ifindex { leaf ifindex { type empty; description "Use the interface index for the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in the option."; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf pool-name { type boolean; default "false"; description "Send the pool name in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "1..511999"; } default "1"; description "The maximum number of DHCPv4 leases."; } container l2-header { presence "Enter the 'l2-header' context"; description "Enable the l2-header context"; leaf mac { type types-sros:mac-unicast-address; description "Specify the MAC address."; } } // container l2-header } // container lease-populate container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Enable/disable DHCP as client application."; } leaf ppp { type boolean; default "false"; description "Enable/disable PPP as client application."; } } // container client-applications container relay-proxy { presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy container offer-selection { description "Enter the offer-selection context"; leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Offer selection"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } } // container client-mac } case mode-server { list server { key "ipv4-address"; max-elements 8; description "Enter the server list instance"; leaf ipv4-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IP address of the DHCP server"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } } // list server } } } // container offer-selection } // container dhcp } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf allow-multiple-wan-addresses { type boolean; default "false"; description "Configure if the interface will accept multiple WAN addresses."; } leaf ipoe-bridged-mode { type boolean; default "false"; description "Enable/Disable IPv6 IPoE Bridged Mode."; } leaf qos-route-lookup { type types-router:qos-route-lookup-grp-if; description "QoS route lookup"; } container auto-reply { description "Enter the auto-reply context"; leaf neighbor-solicitation { type boolean; default "false"; description "Enable auto-reply for NS"; } leaf router-solicitation { type boolean; default "false"; description "Enable auto-reply for RS"; } } // container auto-reply container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container dhcp6 { description "Enter the dhcp6 context"; leaf filter { type uint32 { range "1..65535"; } description "DHCPv6 filter"; } leaf override-slaac { type boolean; default "false"; description "Allow WAN address offered by DHCP to overwrite the WAN address acquired from SLAAC"; } leaf python-policy { type types-sros:named-item; description "Python policy"; } leaf user-db { type types-sros:named-item; description "Assign a local user database."; } leaf user-ident { type types-services:dhcp6-user-ident; default "mac"; description "DHCP6 user identification for this interface"; } container pd-managed-route { presence "Enter the 'pd-managed-route' context"; description "Enable the pd-managed-route context"; leaf next-hop { type types-services:dhcp6-pd-managed-route-nh; default "ipv6"; description "Next hop type"; } } // container pd-managed-route container snooping { description "Enter the snooping context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 snooping"; } } // container snooping container relay { description "Enter the relay context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 Relay"; } leaf description { type types-sros:description; description "Text description"; } leaf source-address { type types-sros:ipv6-unicast-address; description "Source IPv6 address for the DHCPv6 relay messages"; } leaf link-address { type types-sros:ipv6-address; description "Link address for the DHCPv6 relay messages"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCP6 server(s) to which the DHCP6 requests are forwarded"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container advertise-selection { description "Enter the advertise-selection context"; leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Advertise selection"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container client-mac } case mode-server { list server { key "ipv6-address"; max-elements 8; description "Enter the server list instance"; leaf ipv6-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-address; } description "IP address of the DHCPv6 server"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // list server } } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container advertise-selection container lease-split { description "Enter the lease-split context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 lease split"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime-new; default "3600"; description "DHCPv6 lease split valid lifetime (short lease time)"; } } // container lease-split } // container relay container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 proxy server"; } leaf preferred-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "3600"; description "Time for prefix to remain preferred on this interface"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "86400"; description "Time for prefix to remain valid on this interface"; } leaf renew-timer { type types-submgt:dhcp6-renew-timer; description "Renew timer (T1)"; } leaf rebind-timer { type types-submgt:dhcp6-rebind-timer; description "Rebind timer (T2) for this interface"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container server-id { description "Enter the server-id context"; choice server-id { default "duid-ll"; case duid-ll { leaf duid-ll { type empty; description "Use link-layer address (DUID-LL) as DUID"; } } case duid-en-hex { leaf duid-en-hex { type string { length "1..118"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as a hexadecimal string"; } } case duid-en-ascii { leaf duid-en-ascii { type types-sros:string-not-all-spaces { length "1..58"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as an ASCII string"; } } } } // container server-id } // container proxy-server container option { description "Enter the option context"; leaf remote-id { type boolean; default "false"; description "Allow remote ID option to be sent in the DHCPv6 relay packet"; } container interface-id { description "Enter the interface-id context"; choice interface-id { case ascii-tuple { leaf ascii-tuple { type empty; description "Use ASCII-encoded concatenated tuple in interface ID option in DHCPv6 relay packet"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in interface ID option in DHCPv6 relay packet"; } } case if-index { leaf if-index { type empty; description "Use interface index in interface ID option in DHCPv6 relay packet"; } } case string { leaf string { type types-sros:string-not-all-spaces { length "1..80"; } description "String for interface ID option in DHCPv6 relay packet"; } } } } // container interface-id } // container option } // container dhcp6 container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf dad-snooping { type boolean; default "false"; description "Duplicate address detection packets that are snooped to populate new neighbor entries for SLAAC hosts"; } leaf neighbor-limit { type int32 { range "1..8"; } default "1"; description "Maximum number of neighbor entries learned per SLAAC host"; } } // container neighbor-discovery container router-advertisements { description "Enter the router-advertisements context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf max-advertisement-interval { type types-sros:time-duration { range "900..1800"; } units "seconds"; default "1800"; description "Maximum advertisement interval"; } leaf min-advertisement-interval { type types-sros:time-duration { range "900..1350"; } units "seconds"; default "900"; description "Minimum advertisement interval"; } leaf force-mcast { type enumeration { enum "ip" { value 1; } enum "ip-mac" { value 2; } } description "Send router advertisement to a multicast address instead of unicast for IPoE"; } container options { description "Enter the options context"; leaf current-hop-limit { type uint32 { range "0..255"; } default "64"; description "Hop limit to be advertised"; } leaf managed-configuration { type boolean; default "false"; description "Managed address configuration flag"; } leaf mtu { type union { type uint32 { range "1280..9212"; } type enumeration { enum "not-included" { value 0; } } } units "bytes"; default "not-included"; description "Advertised MTU value"; } leaf other-stateful-configuration { type boolean; default "false"; description "Other stateful configuration flag"; } leaf reachable-time { type types-sros:time-duration { range "0..3600000"; } units "milliseconds"; default "0"; description "Neighbor discovery reachable time that is advertised for this group interface"; } leaf retransmit-timer { type uint32 { range "0..1800000"; } units "seconds"; default "0"; description "Neighbor discovery retransmit timer that is advertised for this group interface"; } leaf router-lifetime { type union { type types-sros:time-duration { range "2700..9000"; } type enumeration { enum "no-default-router" { value 0; } } } units "seconds"; default "4500"; description "Router lifetime"; } container dns { description "Enter the dns context"; leaf include-rdnss { type boolean; default "false"; description "Include the RDNSS server option 25"; } leaf rdnss-lifetime { type union { type types-sros:time-duration { range "900..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "3600"; description "Maximum time for the RDNSS address to remain valid"; } } // container dns } // container options container prefix-options { description "Enter the prefix-options context"; leaf autonomous { type boolean; default "false"; description "Value of the autonomous flag"; } leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container prefix-options } // container router-advertisements container router-solicit { description "Enter the router-solicit context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router-solicit based authentication"; } leaf inactivity-timer { type union { type types-sros:time-duration { range "1..31536000"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "300"; description "Time before an inactive host is removed"; } leaf min-auth-interval { type types-sros:time-duration { range "1..360000"; } units "seconds"; default "300"; description "Minimum interval between two consecutive authentication attempts for the same host"; } leaf user-db { type types-sros:named-item; description "Local user-database that is used for router solicit based authentication"; } } // container router-solicit } // container ipv6 container cflowd-parameters { description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-router:cflowd-sampling; } description "Unicast or multicast traffic"; } leaf type { type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } } // list sampling } // container cflowd-parameters container ipoe-linking { description "Enter the ipoe-linking context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IPoE host linking"; } leaf gratuitous-router-advertisement { type boolean; default "false"; description "Send unsolicited router advertisement after DHCP setup"; } leaf shared-circuit-id { type boolean; default "false"; description "Block DHCPv6 with unknown interface-id (circuit-id) until a circuit-id is learned from DHCP."; } } // container ipoe-linking container ipoe-session { description "Enter the ipoe-session context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of IPoE session management"; } leaf description { type types-sros:description; description "Text description"; } leaf ipoe-session-policy { type types-sros:named-item; description "IPoE Session policy to be used for new sessions"; } leaf user-db { type types-sros:named-item; description "Local user database that is used to (pre-)authenticate new sessions"; } leaf session-limit { type uint32 { range "1..500000"; } description "Maximum number of sessions on this group interface"; } leaf sap-session-limit { type uint32 { range "1..131071"; } description "Maximum number of sessions per SAP"; } leaf min-auth-interval { type types-submgt:ipoe-session-min-auth-interval; units "seconds"; default "infinite"; description "Minimum time between two authentication attempts"; } leaf radius-session-timeout { type types-submgt:ipoe-session-radius-session-timeout; description "Session timeout attribute to be interpreted"; } leaf stateless-redundancy { type boolean; default "false"; description "Remove IPoE sessions when the system becomes stand-by in a stateless multi-chassis redundancy setup"; } container force-auth { description "Enter the force-auth context"; leaf cid-change { type boolean; description "Ignore min-auth-interval when circuit ID changed"; } leaf rid-change { type boolean; description "Ignore min-auth-interval when remote ID changed"; } } // container force-auth } // container ipoe-session container brg { description "Enter the brg context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BRG"; } leaf authenticated-brg-only { type boolean; default "false"; description "Allow BRGs that have been pre-authenticated"; } leaf default-brg-profile { type types-sros:named-item; description "Default BRG profile that can be overridden during authentication"; } } // container brg container pppoe { description "Enter the pppoe context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PPPoE"; } leaf description { type types-sros:description; description "Text description"; } leaf anti-spoof { type types-submgt:pppoe-anti-spoof; default "mac-sid"; description "PPPoE anti-spoof filtering"; } leaf policy { type types-sros:named-item; description "PPPoE policy"; } leaf session-limit { type uint32 { range "1..262143"; } default "1"; description "Maximum PPPoE sessions"; } leaf sap-session-limit { type uint32 { range "1..131071"; } default "1"; description "Maximum PPPoE sessions per SAP"; } leaf python-policy { type types-sros:named-item; description "Python policy used to modify PPPoE packets"; } leaf user-db { type types-sros:named-item; description "Local user database for authentication"; } container dhcp-client { description "Enter the dhcp-client context"; leaf client-id { type enumeration { enum "mac-pppoe-session-id" { value 2; } } description "The type of information that DHCP option 61 will contain"; } } // container dhcp-client } // container pppoe container data-trigger { description "Enter the data-trigger context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of data-triggered host creation"; } } // container data-trigger container local-address-assignment { description "Enter the local-address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignment"; } container ipv4 { description "Enter the ipv4 context"; leaf server { type types-sros:named-item; description "Local DHCP server that contains pools for local address assignment"; } leaf-list default-pool { type types-sros:named-item; max-elements 2; ordered-by user; description "Default pools"; } container client-applications { description "Enter the client-applications context"; leaf ppp { type boolean; default "false"; description "Request local addresses for PPP IPCP hosts"; } leaf ipoe { type boolean; default "false"; description "Request local addresses for non-DHCP/managed IPoE hosts"; } } // container client-applications } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf server { type types-sros:named-item; description "Local DHCPv6 server that contains pools for local address assignment"; } container client-applications { description "Enter the client-applications context"; leaf ppp-slaac { type boolean; default "false"; description "Request local addresses for PPP SLAAC hosts"; } leaf ipoe-wan { type boolean; default "false"; description "Request local addresses for IPoE IA NA hosts"; } leaf ipoe-slaac { type boolean; default "false"; description "Request local addresses for IPoE SLAAC hosts"; } } // container client-applications } // container ipv6 } // container local-address-assignment list srrp { key "srrp-id"; max-elements 1; description "Enter the srrp list instance"; leaf srrp-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4294967295"; } } description "SRRP instance ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of SRRP"; } leaf description { type types-sros:description; description "Text description"; } leaf gw-mac { type types-sros:mac-unicast-address; description "Gateway MAC address"; } leaf keep-alive-interval { type uint32 { range "1..100"; } units "deciseconds"; default "10"; description "Interval between SRRP advertisements"; } leaf message-path { type types-sros:sap; description "SAP to use as the SRRP message path"; } leaf-list policy { type uint32 { range "1..9999"; } max-elements 2; ordered-by user; description "VRRP priority control policy associated with the SRRP"; } leaf priority { type uint32 { range "1..254"; } default "100"; description "Priority for this interface at this level"; } leaf send-fib-population-packets { type enumeration { enum "all" { value 1; } enum "outer-tag-only" { value 2; } } default "all"; description "Mode used to send FIB population packets (such as ARP) on switchover"; } leaf preempt { type boolean; default "true"; description "Allow the SRRP instance to override an existing master"; } leaf one-garp-per-sap { type boolean; default "false"; description "Send one gratuitous ARP to each SAP"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf group-name { type types-sros:named-item; description "Operational group name"; } leaf priority-step { type uint8 { range "1..10"; } description "Value with which the group priority increases or decreases if the state of this messaging-SAP changes."; } } // container monitor-oper-group container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-address; sros-ext:immutable; description "Destination IPv4 prefix"; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Name of interface running BFD"; } } // container bfd-liveness } // list srrp container sap-parameters { description "Enter the sap-parameters context"; leaf description { type types-sros:description; description "Text description"; } leaf anti-spoof { type enumeration { enum "ip-mac" { value 3; } enum "nh-mac" { value 4; } } default "ip-mac"; description "Anti-spoofing type."; } container sub-sla-mgmt { description "Enter the sub-sla-mgmt context"; leaf sub-ident-policy { type types-sros:external-named-item; description "Subscriber identification policy"; } container defaults { description "Enter the defaults context"; leaf sub-profile { type types-sros:external-named-item; description "Default subscriber profile"; } leaf sla-profile { type types-sros:external-named-item; description "Default SLA profile"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "String to be used as default subscriber ID"; } } case auto-id { leaf auto-id { type empty; description "Subscriber ID that is autogenerated"; } } } } // container subscriber-id } // container defaults } // container sub-sla-mgmt } // container sap-parameters container bonding-parameters { description "Enter the bonding-parameters context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ESM connection bonding"; } leaf fpe { type uint32 { range "1..64"; } description "FPE that provisions bonding functionality"; } container multicast { description "Enter the multicast context"; leaf connection { type types-submgt:multicast-bonding-connection; default "use-incoming"; description "Multicast connection"; } } // container multicast list connection { key "connection-index"; description "Enter the connection list instance"; leaf connection-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:bonding-connection-index; } description "Bonding connection index"; } leaf service { type types-services:service-name; description "Connection service"; } } // list connection } // container bonding-parameters container gtp-parameters { description "Enter the gtp-parameters context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of GTP access"; } leaf fpe { type uint32 { range "1..64"; } description "PE that provisions the GTP user interface"; } } // container gtp-parameters container wpp { presence "Enter the 'wpp' context"; description "Enable the wpp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WPP"; } leaf restore-to-initial-on-disconnect { type boolean; default "true"; description "Restore initial profiles after a host has disconnected"; } leaf user-db { type types-sros:named-item; description "User database"; } leaf lease-time { type types-sros:time-duration { range "10..315446399"; } default "600"; description "Lease time"; } leaf triggered-hosts { type boolean; default "false"; description "Enable/disable triggered hosts"; } container portal { description "Enter the portal context"; choice portal { case portal { leaf router-instance { type string; description "The virtual router instance of the WPP portal for this interface"; } leaf name { type types-sros:named-item; description "Name for the WPP portal of the interface"; } } case portal-group { leaf portal-group { type types-sros:named-item; description "WPP portal group for this interface"; } } } } // container portal container initial { description "Enter the initial context"; leaf sub-profile { type types-sros:external-named-item; description "Initial subscriber profile"; } leaf sla-profile { type types-sros:external-named-item; description "Initial SLA profile"; } } // container initial } // container wpp list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy"; } leaf anti-spoof { type types-services:anti-spoof-option-ip; default "source-ip-and-mac-addr"; description "Type of anti-spoof filtering"; } leaf calling-station-id { type types-sros:string-not-all-spaces { length "1..64"; } description "Calling station ID"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy for SAP"; } leaf host-admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of hosts"; } leaf host-lockout-policy { type types-sros:named-item; description "Host lockout policy"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } choice oper-group-association { case oper-group { leaf oper-group { type types-sros:named-item; description "Operational group"; } } case monitor-oper-group { leaf monitor-oper-group { type types-sros:named-item; description "Monitor operational group"; } } } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter } // container ingress container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type types-qos:qos-policy-name; description "Policy identifier"; } } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy name"; } } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy name"; } } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6 { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } } // container agg-rate } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container fwd-wholesale { description "Enter the fwd-wholesale context"; leaf pppoe-service { type types-services:service-name; description "PPPoE service name"; } } // container fwd-wholesale container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:admin-name; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-eth-cfm:mep-id-type; } description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container sub-sla-mgmt { description "Enter the sub-sla-mgmt context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of subscriber management on this SAP"; } leaf sub-ident-policy { type types-sros:external-named-item; description "Subscriber identification policy used on this SAP"; } leaf subscriber-limit { type types-submgt:sap-subscriber-limit; default "1"; description "Maximum number of subscribers on this SAP"; } container defaults { description "Enter the defaults context"; leaf sub-profile { type types-sros:external-named-item; description "Default subscriber profile used for subscribers on this SAP"; } leaf sla-profile { type types-sros:external-named-item; description "Default SLA profile for hosts on this SAP"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case auto-id { leaf auto-id { type empty; description "Use auto-generated subscriber identification string"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID as default subscriber identification string"; } } case string { leaf string { type types-submgt:subscriber-id; description "Default subscriber identification string for the SAP"; } } } } // container subscriber-id container int-dest-id { description "Enter the int-dest-id context"; choice int-dest-id { case top-q-tag { leaf top-q-tag { type empty; description "Use the top Q-tag of this SAP"; } } case string { leaf string { type types-submgt:int-dest-id; description "Use the configured string"; } } } } // container int-dest-id } // container defaults container single-sub-parameters { description "Enter the single-sub-parameters context"; leaf profiled-traffic-only { type boolean; default "false"; description "Include all traffic in subscriber profile"; } container non-sub-traffic { presence "Enter the 'non-sub-traffic' context"; description "Enable the non-sub-traffic context"; leaf sub-profile { type types-sros:external-named-item; description "Subscriber ID profile applied for all non-subscriber traffic"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile applicable for all non-subscriber traffic"; } leaf subscriber-id { type types-submgt:subscriber-id; sros-ext:immutable; description "Subscriber ID applied for all non-subscriber traffic"; } } // container non-sub-traffic } // container single-sub-parameters } // container sub-sla-mgmt container static-host { description "Enter the static-host context"; container mac-learning { description "Enter the mac-learning context"; leaf data-triggered { type boolean; default "false"; description "Enable learning of MAC addresses from data packets."; } leaf single-mac { type boolean; default "false"; description "Enforce the limit of a single MAC address per SAP, learned by means of ICMPv6."; } } // container mac-learning list ipv4 { key "ip mac"; description "Enter the ipv4 list instance"; leaf ip { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IP address used by the static host."; } leaf mac { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address; } description "MAC address of the static host."; } leaf rip-policy { type types-sros:named-item; description "RIP policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type types-sros:external-named-item; description "Sub-profile name"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id container shcv { description "Enter the shcv context"; } // container shcv list managed-route { key "prefix"; max-elements 16; description "Add a list entry for managed-route"; leaf prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-prefix; } description "Managed route prefix."; } } // list managed-route } // list ipv4 list ipv6 { key "prefix mac"; description "Enter the ipv6 list instance"; leaf prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-prefix; } description "IPv6 prefix"; } leaf mac { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:mac-unicast-address; } description "MAC address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type types-sros:external-named-item; description "Sub-profile name"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf mac-linking { type types-sros:ipv4-unicast-address; description "IPv6 host associated with the IPv4 host through the learned MAC address"; } leaf retail-svc-id { type types-services:external-service-id; description "Retail service ID"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id container shcv { description "Enter the shcv context"; } // container shcv list managed-route { key "ipv6-prefix"; max-elements 16; description "Enter the managed-route list instance"; leaf ipv6-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-prefix; } description "Managed route prefix."; } leaf metric { type uint32; default "0"; description "Managed route metric."; } } // list managed-route } // list ipv6 } // container static-host container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; description "Time during which the system continues to track inactive hosts"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of multicast groups to be tracked"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of multicast groups to be tracked per group"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of multicast sources to be tracked"; } leaf router-alert-check { type boolean; default "true"; description "Enable IGMP router alert check option"; } } // container igmp-host-tracking container default-host { description "Enter the default-host context"; list ipv4 { key "address prefix-length"; description "Enter the ipv4 list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "IPv4 default host address."; } leaf prefix-length { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..32"; } } description "IPv4 address prefix length"; } leaf next-hop { type types-sros:ipv4-unicast-address; sros-ext:immutable; description "Next-hop used to forward default-host traffic on this SAP."; } } // list ipv4 list ipv6 { key "address prefix-length"; description "Enter the ipv6 list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "IPv6 default host address."; } leaf prefix-length { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..128"; } } description "IPv6 default host prefix length."; } leaf next-hop { type types-sros:ipv6-unicast-address; sros-ext:immutable; description "Next-hop used to forward default-host traffic on this SAP."; } } // list ipv6 } // container default-host } // list sap container wlan-gw { description "Enter the wlan-gw context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WLAN Gateway"; } leaf oper-down-on-group-degrade { type boolean; default "false"; description "Bring interface operationally down when its ISA WLAN Gateway becomes degraded"; } leaf tcp-mss-adjust { type uint32 { range "160..10240"; } units "bytes"; description "Value for the TCP Maximum Segment Size (MSS) option if not present, or if value is higher"; } leaf wlan-gw-group { type types-isa:wlan-gw-group-id; description "Identifier of the WLAN Gateway ISA group to terminate UEs for this group interface"; } leaf gateway-router { type string; description "The routing instance where the tunneled UE traffic is routed, or empty to specify that the routing instance corresponding to the service containing this interface is used."; } container lanext { presence "Enter the 'lanext' context"; description "Enable the lanext context"; leaf max-bd { type uint32 { range "1..131071"; } default "131071"; description "Maximum number of bridge domains"; } } // container lanext container learn-ap-mac { presence "Enter the 'learn-ap-mac' context"; description "Enable the learn-ap-mac context"; leaf delay-auth { type boolean; default "false"; description "Delay authentication until ARP/ND is answered or timed out, after which AP MAC can be included"; } } // container learn-ap-mac container mobility { description "Enter the mobility context"; leaf hold-time { type types-sros:time-duration { range "0..255"; } units "seconds"; default "5"; description "Minimum time between two mobility events for a single UE"; } leaf inter-tunnel-type { type boolean; default "false"; description "Enable mobility between terminating tunnel types"; } leaf inter-vlan { type boolean; default "false"; description "Enable mobility within different VLANs within the same range of VLAN Q-tags"; } container trigger { description "Enter the trigger context"; leaf data { type boolean; default "false"; description "Use data traffic as mobility trigger"; } leaf iapp { type boolean; default "false"; description "Use Inter Access Point Protocol (IAPP) messages as mobility trigger"; } leaf control { type boolean; default "false"; description "Use control traffic (DHCP, DHCPv6, and ICMPv6-RS messages) as mobility trigger"; } } // container trigger } // container mobility container tunnel-egress-qos { description "Enter the tunnel-egress-qos context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of egress QoS for WLAN-GW tunnels"; } leaf agg-rate-limit { type types-qos:pir-rate-override; default "max"; description "Aggregate rate limit of each shaper associated with this interface"; } leaf granularity { type types-wlangw:shaping-granularity; default "per-tunnel"; description "Granularity of the egress shaping for WLAN Gateway"; } leaf hold-time { type union { type types-sros:time-duration { range "1..86400"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Minimum time that the egress QoS resources associated with a tunnel (such as a shaper) are held"; } leaf multi-client-only { type boolean; default "false"; description "Tunnel traffic to shape when multiple UEs use this tunnel"; } leaf qos { type types-qos:qos-policy-name; description "Identifier of the egress QoS policy associated with each tunnel of this interface"; } leaf scheduler-policy { type types-sros:named-item; description "Identifier of the egress scheduler policy associated with each tunnel of this interface"; } } // container tunnel-egress-qos container tunnel-encaps { description "Enter the tunnel-encaps context"; leaf learn-l2tp-cookie { type union { type enumeration { enum "never" { value 2; description "The cookie will never be interpreted."; } enum "always" { value 3; description "The cookie will always be interpreted, regardless of the value of its first two octets."; } } type types-sros:hex-string { length "6"; } } default "never"; description "System that learns the cookie from L2TP tunnels terminating on this interface"; } } // container tunnel-encaps container l2-ap { description "Enter the l2-ap context"; leaf auto-sub-id-fmt { type enumeration { enum "include-ap-tags" { value 0; } enum "sap-only" { value 1; } } default "include-ap-tags"; description "Format of the auto-generated subscriber ID"; } leaf default-encap-type { type enumeration { enum "null" { value 1; } enum "dot1q" { value 2; } enum "qinq" { value 10; } } default "null"; description "Default encapsulation type for Layer 2 access points"; } list access-point { key "sap-id"; description "Enter the access-point list instance"; leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP ID for the Layer 2 access point"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2 access points"; } leaf encap-type { type enumeration { enum "null" { value 1; } enum "dot1q" { value 2; } enum "qinq" { value 10; } } description "Service encapsulation type of this access point"; } leaf epipe-sap-template { type types-sros:named-item; description "Parameters template for the internal connections with the ISA cards"; } } // list access-point } // container l2-ap list gateway-address { key "address"; max-elements 10; description "Enter the gateway-address list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-without-local-address; } description "Gateway endpoint address of the WLAN Gateway tunnel"; } container purpose { description "Enter the purpose context"; leaf xconnect { type boolean; default "false"; description "Use tunnel IP address for crosse-connect traffic"; } } // container purpose } // list gateway-address list vlan-range { key "range"; description "Enter the vlan-range list instance"; leaf range { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { pattern "((([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-5]))(\\.\\.(([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-5])))?)|(unmatched)"; } } description "IEEE 802.1q VLAN tag range"; } leaf http-redirect-policy { type types-sros:named-item; description "Default HTTP redirect policy for portal authentication"; } leaf idle-timeout-action { type types-wlangw:idle-timeout-action; default "remove"; description "Action to perform when the idle timeout expires"; } leaf nat-policy { type types-sros:external-named-item; description "NAT policy for DSM and ISA portal authentication"; } leaf retail-service { type types-services:service-name; description "Default retail service for new UEs in this range"; } container authentication { description "Enter the authentication context"; leaf hold-time { type types-sros:time-duration { range "0..3600"; } units "seconds"; default "5"; description "Minimum time to hold a UE down after an authentication failure"; } leaf on-control-plane { type boolean; default "false"; description "Trigger authentication on first control plane packet instead of first data packet"; } leaf policy { type types-sros:named-item; description "RADIUS policy for authentication"; } leaf vlan-mismatch-timeout { type types-sros:time-duration { range "5..60"; } units "seconds"; description "Timeout value for the RADIUS proxy cache if a packet is received with a non-matching VLAN"; } } // container authentication container data-triggered-ue-creation { description "Enter the data-triggered-ue-creation context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of data-triggered UE creation"; } container create-proxy-cache-entry { description "Enter the create-proxy-cache-entry context"; leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } container proxy-server { presence "Enter the 'proxy-server' context"; description "Enable the proxy-server context"; leaf router-instance { type string; description "The router instance of the RADIUS Proxy server."; } leaf name { type types-sros:named-item; description "RADIUS Proxy server name"; } } // container proxy-server } // container create-proxy-cache-entry } // container data-triggered-ue-creation container l2-service { presence "Enter the 'l2-service' context"; description "Enable the l2-service context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Layer 2 service for VLAN range"; } leaf description { type types-sros:description; description "Text description"; } leaf service { type types-services:service-name; description "Layer 2 service associated with the range"; } } // container l2-service container dhcp4 { description "Enter the dhcp4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv4 protocol"; } leaf l2-aware-ip-address { type union { type types-sros:ipv4-unicast-address; type enumeration { enum "from-pool" { value 0; description "The l2-aware IP address should be allocated from a pool."; } } } description "L2-Aware NAT inside IP address"; } leaf-list dns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "DNS servers signaled in DHCP"; } leaf-list nbns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "NetBIOS servers signaled in DHCP"; } container lease-time { description "Enter the lease-time context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "IP address lease time for the UE after successful (portal) authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "IP address lease time that is provided before and during (portal) authentication to the UE"; } } // container lease-time } // container dhcp4 container dhcp6 { description "Enter the dhcp6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the protocol"; } container preferred-lifetime { description "Enter the preferred-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Preferred signaled lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Preferred signaled lifetime when the UE is not fully authenticated"; } } // container preferred-lifetime container valid-lifetime { description "Enter the valid-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Signaled valid lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Valid signaled lifetime when the UE is not fully authenticated"; } } // container valid-lifetime } // container dhcp6 container slaac { description "Enter the slaac context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the protocol"; } container preferred-lifetime { description "Enter the preferred-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Preferred signaled lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Preferred signaled lifetime when the UE is not fully authenticated"; } } // container preferred-lifetime container valid-lifetime { description "Enter the valid-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Signaled valid lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Valid signaled lifetime when the UE is not fully authenticated"; } } // container valid-lifetime } // container slaac container dsm { description "Enter the dsm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DSM"; } leaf accounting-policy { type types-sros:named-item; description "ISA Radius Policy for accounting"; } container accounting-update { presence "Enter the 'accounting-update' context"; description "Enable the accounting-update context"; leaf interval { type uint32 { range "5..259200"; } units "minutes"; description "Time interval between consecutive Interim accounting update messages"; } } // container accounting-update container ingress { description "Enter the ingress context"; leaf policer { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "Policer for ingress traffic"; } leaf ip-filter { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "Filter for ingress traffic"; } } // container ingress container egress { description "Enter the egress context"; leaf policer { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "Policer for egress traffic"; } } // container egress container one-time-redirect { description "Enter the one-time-redirect context"; leaf url { type types-wlangw:one-time-http-redirect-url; description "URL for redirected HTTP protocol packets that can be overridden by AAA"; } leaf port { type uint32 { range "1..65535"; } default "80"; description "Destination port of packets considered for HTTP redirect"; } } // container one-time-redirect } // container dsm container vrgw { description "Enter the vrgw context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of VRGW"; } container brg { description "Enter the brg context"; leaf default-brg-profile { type types-sros:named-item; description "Default BRG profile to use if the AAA server does not specify one"; } leaf authenticated-brg-only { type boolean; default "false"; description "Only allow hosts from BRGs pre-authenticated using the radius-proxy"; } } // container brg container lanext { description "Enter the lanext context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of HLE"; } leaf assistive-address-resolution { type boolean; default "false"; description "ISA assists in address resolution"; } leaf bd-mac-prefix { type string { length "8"; pattern "[0-9a-f][02468ace](:[0-9a-f]{2}){2}"; } description "Prefix from which BD MACs for MAC translation are derived"; } leaf mac-translation { type boolean; default "false"; description "Hide MAC address of home host by translating it to BD MAC"; } container access { description "Enter the access context"; leaf max-mac { type uint32 { range "1..256"; } default "20"; description "Maximum number of MAC entries in bridged domain from access side"; } leaf multi-access { type boolean; default "false"; description "Allow multiple access points"; } leaf policer { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "Policer for ingress home traffic"; } } // container access container network { description "Enter the network context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of network"; } leaf max-mac { type uint32 { range "1..64"; } default "20"; description "Maximum number of MAC entries in bridged domain from network side"; } leaf policer { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "Policer for ingress data center traffic"; } } // container network } // container lanext } // container vrgw container xconnect { description "Enter the xconnect context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the cross-connect"; } container accounting { description "Enter the accounting context"; leaf policy { type types-sros:named-item; description "ISA RADIUS accounting policy for cross-connected UEs"; } leaf update-interval { type types-sros:time-duration { range "5..259200"; } units "minutes"; description "Time between consecutive Interim accounting update messages"; } leaf mobility-updates { type boolean; default "false"; description "Accounting updates triggered by mobility"; } } // container accounting } // container xconnect } // list vlan-range } // container wlan-gw } // list group-interface container wlan-gw { presence "Enter the 'wlan-gw' context"; description "Enable the wlan-gw context"; container pool-manager { description "Enter the pool-manager context"; leaf wlan-gw-group { type types-isa:wlan-gw-group-id; description "Identifier of the WLAN Gateway ISA group on which the prefixes are installed"; } container dhcp6-client { description "Enter the dhcp6-client context"; leaf source-ip { type union { type enumeration { enum "use-interface-ip" { value 0; } } type types-sros:ipv6-address; } default "use-interface-ip"; description "Source IP address that is used by the DHCPv6 client"; } leaf-list servers { type types-sros:ipv6-unicast-address; max-elements 8; description "DHCPv6 servers that are used for requesting addresses"; } container lease-query { presence "Enter the 'lease-query' context"; description "Enable the lease-query context"; leaf max-retries { type uint32 { range "0..10"; } default "2"; description "Maximum number of retries before the lease query assumes that no existing subnets were allocated"; } } // container lease-query container dhcpv4-nat { description "Enter the dhcpv4-nat context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container dhcpv4-nat container ia-na { description "Enter the ia-na context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container ia-na container slaac { description "Enter the slaac context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container slaac } // container dhcp6-client container watermarks { description "Enter the watermarks context"; leaf high { type uint32 { range "51..99"; } default "95"; description "New prefix that is used when the ISA level reaches high watermark"; } leaf low { type uint32 { range "50..98"; } default "90"; description "Prefix that is released if the usage level without this prefix is below the low watermark"; } } // container watermarks } // container pool-manager container redundancy { description "Enter the redundancy context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of redundancy"; } leaf export { type types-sros:ipv4-unicast-prefix; description "Route to export to peer"; } leaf monitor { type types-sros:ipv4-unicast-prefix; description "Peer route to monitor"; } } // container redundancy } // container wlan-gw } // list subscriber-interface container twamp-light { description "Enter the twamp-light context"; container reflector { presence "Enter the 'reflector' context"; description "Enable the reflector context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of TWAMP Light functionality"; } leaf description { type types-sros:description; description "Text description"; } leaf udp-port { type types-sros:tcp-udp-port-non-zero { range "862|64364..64373"; } description "UDP port on which the specified TWAMP-Light reflector listens for TWAMP PDUs"; } list prefix { key "ip-prefix"; max-elements 50; description "Enter the prefix list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Source prefix for the TWAMP-Light reflector"; } leaf description { type types-sros:description; description "Text description"; } } // list prefix } // container reflector } // container twamp-light list video-interface { key "interface-name"; description "Enter the video-interface list instance"; leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name { length "1..29"; } } description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the video interface"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting Policy"; } leaf description { type types-sros:description; description "Text description"; } leaf cpu-protection { type types-services:cpm-prot-policy-id; description "CPU protection policy"; } leaf multicast-service { type types-services:external-service-id; description "Service ID of the associated multicast service."; } leaf output-format { type enumeration { enum "udp" { value 1; } enum "rtp-udp" { value 2; } } default "rtp-udp"; description "Output format"; } container rt-client { presence "Enter the 'rt-client' context"; description "Enable the rt-client context"; leaf src-address { type types-sros:ipv4-unicast-address; description "An IP address for the RT client."; } } // container rt-client container adi { description "Enter the adi context"; container scte30 { description "Enter the scte30 context"; list ad-server { key "address"; max-elements 4; description "Add a list entry for ad-server"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-address; } description "Ad server address"; } } // list ad-server container local-address { presence "Enter the 'local-address' context"; description "Enable the local-address context"; leaf control { type types-sros:ipv4-unicast-address; description "Control"; } leaf data { type types-sros:ipv4-unicast-address; description "Data"; } } // container local-address } // container scte30 } // container adi container video-sap { presence "Enter the 'video-sap' context"; description "Enable the video-sap context"; leaf video-group-id { type uint32 { range "1..4"; } sros-ext:immutable; description "Group id for the video interface."; } container egress { description "Enter the egress context"; container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type types-qos:qos-policy-name; description "SAP-egress QoS policy"; } } // container qos } // container egress container ingress { description "Enter the ingress context"; container filter { description "Enter the filter context"; leaf ip { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type types-qos:qos-policy-name; description "SAP-ingress QoS policy"; } } // container qos } // container ingress } // container video-sap list address { key "ip-address"; max-elements 16; description "Add a list entry for address"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-prefix-with-host-bits; } description "IPv4 address for the video interface within the service"; } } // list address list channel { key "mcast-address source"; description "Enter the channel list instance"; leaf mcast-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Multicast channel address"; } leaf source { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Unicast source address"; } leaf channel-name { type types-sros:named-item; description "max 32 chars."; } leaf description { type types-sros:description; description "Text description"; } leaf scte35-action { type enumeration { enum "forward" { value 1; } enum "drop" { value 2; } } default "forward"; description "Enable/disable forwarding scte 35 cue avails."; } list zone-channel { key "zone-mcast-address zone-source"; description "Enter the zone-channel list instance"; leaf zone-mcast-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Multicast zone channel address"; } leaf zone-source { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Unicast source address"; } leaf adi-channel-name { type types-sros:named-item; description "max 32 chars."; } } // list zone-channel } // list channel } // list video-interface } // list vprn } // container service list sfm { key "sfm-slot"; description "Enter the sfm list instance"; leaf sfm-slot { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..16"; } } description "Unique value to identify this SFM slot within a chassis in the system"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of SFM"; } leaf sfm-type { type types-sfm:sros-sfm-type; sros-ext:immutable; description "Provision the SFM type"; } } // list sfm container subscriber-mgmt { description "Enter the subscriber-mgmt context"; list diameter-gx-policy { key "name"; max-elements 32; description "Enter the diameter-gx-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Diameter application policy"; } leaf description { type types-sros:description; description "Text description"; } leaf tx-timer { type types-sros:time-duration { range "10..1000"; } units "seconds"; default "10"; description "Maximum wait time for a pending session request"; } choice diameter-base { case node { container node { description "Enter the node context"; leaf origin-host { type types-diam:diam-fqdn; sros-ext:immutable; description "Origin-host that identifies the diameter-node that is to be used for transmission"; } leaf destination-realm { type string { length "1..80"; } description "Destination-Realm to where the diameter application messages should be delivered."; } } // container node } case peer-policy { leaf peer-policy { status deprecated; type types-sros:named-item; sros-ext:immutable; description "Configure the policy for the Diameter peers."; } } } container on-failure { description "Enter the on-failure context"; leaf failover { type boolean; default "true"; description "Session peer failover"; } leaf handling { type enumeration { enum "terminate" { value 1; } enum "continue" { value 2; } enum "retry-and-terminate" { value 3; } } default "terminate"; description "Session peer failure handling"; } } // container on-failure container gx { description "Enter the gx context"; leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } leaf report-ip-address-event { type boolean; default "true"; description "Enable CCR-u upon IP address allocation events for dual stack subscribers"; } leaf credit-mcs-interval { type types-sros:time-duration { range "5..60"; } units "minutes"; default "10"; description "Volume syncing interval for usage monitoring"; } leaf destination-realm-learning { type boolean; default "true"; description "Learn the destination realm from the incoming messages"; } container avp-subscription-id { description "Enter the avp-subscription-id context"; leaf origin { type enumeration { enum "subscriber-id" { value 1; } enum "circuit-id" { value 2; } enum "imsi" { value 3; } enum "msisdn" { value 4; } enum "imei" { value 5; } enum "dual-stack-remote-id" { value 6; } enum "mac" { value 7; } enum "username" { value 8; } enum "nas-port-id" { value 9; } } default "subscriber-id"; description "Format of the Subscription-Id-Data AVP"; } leaf type { type enumeration { enum "e164" { value 0; } enum "imsi" { value 1; } enum "nai" { value 3; } enum "private" { value 4; } } default "private"; description "Format of the Subscription-Id-Type AVP"; } } // container avp-subscription-id container ccrt-replay { presence "Enter the 'ccrt-replay' context"; description "Enable the ccrt-replay context"; leaf interval { type uint32 { range "60..86400"; } default "3600"; description "Minimum interval between two consecutive CCR-t replay attempts in a session"; } leaf max-lifetime { type types-sros:time-duration { range "1..24"; } units "hours"; default "24"; description "The maximum time in hours for CCR-t replay attempts for a sessions."; } } // container ccrt-replay container include-avp { description "Enter the include-avp context"; leaf an-gw-address { type boolean; default "false"; description "Include the IP address of this gateway"; } leaf apn-ambr { type boolean; default "false"; description "Include the APN aggregate maximum bitrate"; } leaf called-station-id { type boolean; default "false"; description "Include the called station ID"; } leaf ip-can-type { type boolean; default "false"; description "Include the IP CAN type"; } leaf logical-access-id { type boolean; default "false"; description "Include the logical access id"; } leaf pdn-connection-id { type boolean; default "false"; description "Include the PDN connection id"; } leaf physical-access-id { type boolean; default "false"; description "Include the physical access ID"; } leaf rai { type boolean; default "false"; description "Include the routing area identity"; } leaf rat-type { type boolean; default "false"; description "Include the RAT type"; } leaf sgsn-mcc-mnc { type boolean; default "false"; description "Include the SGSN MCC and MNC."; } leaf supported-features { type boolean; default "false"; description "Include the supported features"; } leaf user-location-info { type boolean; default "false"; description "Include the user location info."; } container calling-station-id { presence "Enter the 'calling-station-id' context"; description "Enable the calling-station-id context"; leaf type { type enumeration { enum "sap-string" { value 1; } enum "mac" { value 2; } enum "sap-id" { value 3; } enum "remote-id" { value 4; } enum "llid" { value 5; } } default "sap-string"; description "Specifies the calling-station-id type."; } } // container calling-station-id container nas-port { presence "Enter the 'nas-port' context"; description "Enable the nas-port context"; leaf bit-spec { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[oismpvc])+"; } description "NAS-Port AVP format"; } } // container nas-port container nas-port-id { presence "Enter the 'nas-port-id' context"; description "Enable the nas-port-id context"; leaf prefix-string { type string { length "1..8"; } description "Prefix string for NAS-Port-Id AVP"; } container suffix { description "Enter the suffix context"; choice suffix { default "not-included"; description "Configure the format of the nas-port-id suffix."; case not-included { leaf not-included { type empty; description "Do not add a suffix"; } } case circuit-id { leaf circuit-id { type empty; description "Add Circuit ID as suffix"; } } case remote-id { leaf remote-id { type empty; description "Add Remote ID as suffix"; } } case user-string { leaf user-string { type string { length "1..64"; } description "Add a user configurable string as suffix"; } } } } // container suffix } // container nas-port-id container nas-port-type { presence "Enter the 'nas-port-type' context"; description "Enable the nas-port-type context"; leaf type { type uint32 { range "0..255"; } description "NAS-Port-Type AVP value"; } } // container nas-port-type container user-equipment-info { presence "Enter the 'user-equipment-info' context"; description "Enable the user-equipment-info context"; leaf type { type enumeration { enum "imeisv" { value 0; } enum "mac" { value 1; } enum "eui64" { value 2; } enum "modified-eui64" { value 3; } } default "mac"; description "Information to include in User-Equipment-Info attribute in CCR messages"; } } // container user-equipment-info } // container include-avp container three-gpp-qos-mapping { description "Enter the three-gpp-qos-mapping context"; container apn-ambr-dl { description "Enter the apn-ambr-dl context"; choice qos-override { default "ignore-override"; case ignore-override { leaf ignore-override { type empty; description "no override on apn-ambr-dl"; } } case arbiter { leaf arbiter { type types-sros:named-item; description "Arbiter name to be overridden"; } } case policer { leaf policer { type types-qos:sap-egress-policer-id; description "policerId used for the apn-ambr-dl qos override."; } } case queue { leaf queue { type types-qos:egress-queue-id; description "queueId used for the apn-ambr-dl qos override."; } } case scheduler { leaf scheduler { type types-sros:named-item; description "scheduler name used for the apn-ambr-dl qos override"; } } case aggregate-rate { leaf aggregate-rate { type empty; description "map apn-ambr-dl to an aggregate rate override."; } } case hs-sla-agg-rate { leaf hs-sla-agg-rate { type empty; description "map apn-ambr-dl to an hs aggregate rate override."; } } } } // container apn-ambr-dl container apn-ambr-ul { description "Enter the apn-ambr-ul context"; choice qos-override { default "ignore-override"; case ignore-override { leaf ignore-override { type empty; description "no override on apn-ambr-ul"; } } case arbiter { leaf arbiter { type types-sros:named-item; description "Arbiter name to be overridden"; } } case policer { leaf policer { type types-qos:ingress-policer-id; description "policerId used for the apn-ambr-ul qos override."; } } case queue { leaf queue { type types-qos:ingress-queue-id; description "queueId used for the apn-ambr-ul qos override."; } } case scheduler { leaf scheduler { type types-sros:named-item; description "scheduler name used for the apn-ambr-ul qos override"; } } } } // container apn-ambr-ul } // container three-gpp-qos-mapping container features { description "Enter the features context"; leaf extended-bandwidth { type boolean; default "false"; description "Negotiate support for extended bandwidth AVPs"; } } // container features } // container gx } // list diameter-gx-policy list diameter-gy-policy { key "name"; max-elements 32; description "Enter the diameter-gy-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Diameter application policy"; } leaf description { type types-sros:description; description "Text description"; } leaf tx-timer { type types-sros:time-duration { range "10..1000"; } units "seconds"; default "10"; description "Maximum wait time for a pending session request"; } choice diameter-base { case node { container node { description "Enter the node context"; leaf origin-host { type types-diam:diam-fqdn; sros-ext:immutable; description "Origin-host that identifies the diameter-node that is to be used for transmission"; } leaf destination-realm { type string { length "1..80"; } description "Destination-Realm to where the diameter application messages should be delivered."; } } // container node } case peer-policy { leaf peer-policy { status deprecated; type types-sros:named-item; sros-ext:immutable; description "Configure the policy for the Diameter peers."; } } } container on-failure { description "Enter the on-failure context"; leaf failover { type boolean; default "true"; description "Session peer failover"; } leaf handling { type enumeration { enum "terminate" { value 1; } enum "continue" { value 2; } enum "retry-and-terminate" { value 3; } } default "terminate"; description "Session peer failure handling"; } } // container on-failure container gy { description "Enter the gy context"; leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } leaf out-of-credit-reporting { type enumeration { enum "final" { value 1; } enum "quota-exhausted" { value 2; } } default "final"; description "Reporting reason when the final granted units are consumed"; } leaf vendor-support { type types-diam:diam-vendor-support; default "three-gpp"; description "Vendor support type announced in capability exchange"; } leaf destination-realm-learning { type boolean; default "true"; description "Learn the destination realm from the incoming messages"; } container avp-subscription-id { description "Enter the avp-subscription-id context"; leaf origin { type enumeration { enum "subscriber-id" { value 1; } enum "circuit-id" { value 2; } enum "imsi" { value 3; } enum "msisdn" { value 4; } enum "imei" { value 5; } enum "dual-stack-remote-id" { value 6; } enum "mac" { value 7; } enum "username" { value 8; } enum "nas-port-id" { value 9; } } default "subscriber-id"; description "Origin for the Subscription-Id-Data AVP"; } leaf type { type enumeration { enum "e164" { value 0; } enum "imsi" { value 1; } enum "nai" { value 3; } enum "private" { value 4; } } default "private"; description "Origin for the Subscription-Id-Type AVP"; } } // container avp-subscription-id container include-avp { description "Enter the include-avp context"; leaf three-gpp-charging-characteristics { type boolean; default "true"; description "DCCA 3GPP charging characteristics AVP parameter"; } leaf three-gpp-charging-id { type enumeration { enum "false" { value 0; } enum "auto" { value 1; } enum "esm-info" { value 2; } enum "id" { value 3; } } default "auto"; description "DCCA 3GPP charging ID AVP parameter"; } leaf three-gpp-ggsn-ipv4-address { type boolean; default "true"; description "Include the 3GPP-GGSN-Address."; } leaf three-gpp-ggsn-ipv6-address { type boolean; default "false"; description "Include the 3GPP-GGSN-Ipv6 address"; } leaf three-gpp-gprs-negotiated-qos-profile { type boolean; default "true"; description "Include the DCCA 3GPP GPRS-negotiated QoS profile AVP parameter"; } leaf three-gpp-imsi { type enumeration { enum "false" { value 0; } enum "subscriber-id" { value 1; } enum "circuit-id" { value 2; } enum "imsi" { value 3; } } default "subscriber-id"; description "Origin of the information to send in the IMSI AVP"; } leaf three-gpp-nsapi { type boolean; default "true"; description "Include the 3GPP-NSAPI"; } leaf three-gpp-selection-mode { type boolean; default "true"; description "DCCA 3GPP selection mode AVP parameter"; } leaf three-gpp-session-stop-indicator { type boolean; default "true"; description "DCCA 3GPP session stop indicator AVP parameter"; } leaf three-gpp-user-location-info { type boolean; default "false"; description "DCCA 3GPP session stop indicator AVP parameter"; } leaf address-avp { type boolean; default "true"; description "DCCA AVPs that contain the host address or prefix"; } leaf pdp-context-type { type boolean; default "true"; description "Include the DCCA PDP-Context-Type AVP Parameter"; } leaf ps-information { type boolean; default "false"; description "Enable reporting of AVPs in grouped PS-Information AVP"; } leaf aaa-user-name { type boolean; default "false"; description "Include the User-Name."; } container three-gpp-rat-type { presence "Enter the 'three-gpp-rat-type' context"; description "Enable the three-gpp-rat-type context"; leaf type { type uint32 { range "1..255"; } description "Value for 3GPP-RAT-Type AVP"; } } // container three-gpp-rat-type container called-station-id { presence "Enter the 'called-station-id' context"; description "Enable the called-station-id context"; leaf id { type types-sros:string-not-all-spaces { length "1..64"; } description "MAC address of AP in WiFi"; } } // container called-station-id container charging-rule-base-name { description "Enter the charging-rule-base-name context"; choice charging-rule-base-name { default "category-map"; case category-map { leaf category-map { type empty; description "Use the category map name in use for this session"; } } case user-string { leaf user-string { type types-sros:string-not-all-spaces { length "1..64"; } description "String for charging rule base name"; } } case not-included { leaf not-included { type empty; description "Do not include Charging-Rule-Base-Name AVP in Diameter DCCA CCR messages"; } } } } // container charging-rule-base-name container ggsn-address { presence "Enter the 'ggsn-address' context"; description "Enable the ggsn-address context"; leaf type { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 2; } } description "Address type of GGSN address AVP"; } } // container ggsn-address container service-context-id { presence "Enter the 'service-context-id' context"; description "Enable the service-context-id context"; leaf id { type types-sros:string-not-all-spaces { length "1..32"; } description "Name for the service context ID AVP"; } } // container service-context-id container user-equipment-info-type { presence "Enter the 'user-equipment-info-type' context"; description "Enable the user-equipment-info-type context"; leaf type { type enumeration { enum "imeisv" { value 1; } } description "Information to include in User-Equipment-Info attribute in CCR messages"; } } // container user-equipment-info-type } // container include-avp container extended-failure-handling { description "Enter the extended-failure-handling context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Extended Failure Handling"; } leaf new-session-id { type boolean; default "false"; description "Enable/disable using a new session id for CCR-i messages."; } container interim-credit { description "Enter the interim-credit context"; leaf max-attempts { type union { type uint32 { range "1..4294967295"; } type enumeration { enum "infinite" { value 0; } } } default "10"; description "Attempts to retry setting up a session to the OCS"; } leaf reporting { type boolean; default "false"; description "Report interim Credit"; } leaf validity-time { type union { type types-sros:time-duration { range "1..4294967295"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "1800"; description "Validity time for interim credit"; } container volume { description "Enter the volume context"; leaf credits { type uint32 { range "1..4294967295"; } default "500"; description "Default volume credit value"; } leaf units { type enumeration { enum "bytes" { value 0; } enum "kilobytes" { value 1; } enum "megabytes" { value 2; } enum "gigabytes" { value 3; } } default "megabytes"; description "Default volume credit units"; } } // container volume } // container interim-credit } // container extended-failure-handling container ccrt-replay { presence "Enter the 'ccrt-replay' context"; description "Enable the ccrt-replay context"; leaf interval { type uint32 { range "60..86400"; } default "3600"; description "The interval between two consecutive CCR-t replay attempts for a sessions."; } leaf max-lifetime { type types-sros:time-duration { range "1..24"; } units "hours"; default "24"; description "The maximum time in hours for CCR-t replay attempts for a sessions."; } } // container ccrt-replay } // container gy } // list diameter-gy-policy list diameter-nasreq-policy { key "name"; max-elements 32; description "Enter the diameter-nasreq-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Diameter application policy"; } leaf description { type types-sros:description; description "Text description"; } leaf tx-timer { type types-sros:time-duration { range "10..1000"; } units "seconds"; default "10"; description "Maximum wait time for a pending session request"; } choice diameter-base { case node { container node { description "Enter the node context"; leaf origin-host { type types-diam:diam-fqdn; sros-ext:immutable; description "Origin-host that identifies the diameter-node that is to be used for transmission"; } leaf destination-realm { type string { length "1..80"; } description "Destination-Realm to where the diameter application messages should be delivered."; } } // container node } case peer-policy { leaf peer-policy { status deprecated; type types-sros:named-item; sros-ext:immutable; description "Configure the policy for the Diameter peers."; } } } container on-failure { description "Enter the on-failure context"; leaf failover { type boolean; default "true"; description "Session peer failover"; } leaf handling { type enumeration { enum "terminate" { value 1; } enum "continue" { value 2; } enum "retry-and-terminate" { value 3; } } default "terminate"; description "Session peer failure handling"; } } // container on-failure container nasreq { description "Enter the nasreq context"; leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "AA-request password"; } container user-name { description "Enter the user-name context"; leaf format { type enumeration { enum "mac" { value 1; } enum "circuit-id" { value 2; } enum "tuple" { value 3; } enum "ascii-converted-circuit-id" { value 4; } enum "ascii-converted-tuple" { value 5; } enum "dhcp-client-vendor-opts" { value 6; } enum "mac-giaddr" { value 7; } enum "nas-port-id" { value 8; } } default "mac"; description "Format type for username"; } leaf operation { type types-submgt:user-name-format-domain-operation; description "Operation to perform"; } leaf domain-name { type string { length "1..128"; } description "Domain name"; } } // container user-name container include-avp { description "Enter the include-avp context"; leaf called-station-id { type boolean; default "false"; description "Include the Called-Station-Id."; } leaf circuit-id { type boolean; default "false"; description "Include the Circuit-Id."; } leaf imei { type boolean; default "false"; description "Include the IMEI"; } leaf rat-type { type boolean; default "false"; description "Include the RAT-Type."; } leaf remote-id { type boolean; default "false"; description "Include the Remote-Id."; } leaf user-location-info { type boolean; default "false"; description "Include the user-location-info."; } container calling-station-id { presence "Enter the 'calling-station-id' context"; description "Enable the calling-station-id context"; leaf type { type enumeration { enum "sap-string" { value 1; } enum "mac" { value 2; } enum "sap-id" { value 3; } enum "remote-id" { value 4; } enum "llid" { value 5; } } default "sap-string"; description "Origin of the calling-station-id."; } } // container calling-station-id container nas-port { presence "Enter the 'nas-port' context"; description "Enable the nas-port context"; leaf bit-spec { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[oismpvc])+"; } description "NAS-Port AVP format"; } } // container nas-port container nas-port-id { presence "Enter the 'nas-port-id' context"; description "Enable the nas-port-id context"; leaf prefix-string { type string { length "1..8"; } description "Prefix string for NAS-Port-Id AVP"; } container suffix { description "Enter the suffix context"; choice suffix { default "not-included"; description "Configure the format of the nas-port-id suffix."; case not-included { leaf not-included { type empty; description "Do not add a suffix"; } } case circuit-id { leaf circuit-id { type empty; description "Add Circuit ID as suffix"; } } case remote-id { leaf remote-id { type empty; description "Add Remote ID as suffix"; } } case user-string { leaf user-string { type string { length "1..64"; } description "Add a user configurable string as suffix"; } } } } // container suffix } // container nas-port-id container nas-port-type { presence "Enter the 'nas-port-type' context"; description "Enable the nas-port-type context"; leaf type { type union { type enumeration { enum "rfc-aligned" { value 1000; } } type uint32 { range "0..255"; } } default "rfc-aligned"; description "NAS-Port-Type AVP value"; } } // container nas-port-type } // container include-avp } // container nasreq } // list diameter-nasreq-policy list group-interface-template { key "name"; max-elements 256; description "Enter the group-interface-template list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Identifies this group interface template template"; } leaf description { type types-sros:description; description "Text description"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } container ipv4 { description "Enter the ipv4 context"; container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf remote-proxy-arp { type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { type types-sros:named-item-64; max-elements 5; ordered-by user; description "Proxy ARP policy name"; } } // container neighbor-discovery container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check } // container ipv6 } // list group-interface-template list ipoe-session-policy { key "name"; max-elements 256; description "Enter the ipoe-session-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for IPoE session policy"; } leaf circuit-id-from-auth { type boolean; sros-ext:immutable; default "false"; description "Use the Circuit ID from the authentication server to identify a session"; } leaf description { type types-sros:description; description "Text description"; } leaf session-timeout { type union { type uint32 { range "1..31104000"; } type enumeration { enum "unlimited" { value 0; } } } default "unlimited"; description "Timeout for IPoE sessions"; } container session-key { description "Enter the session-key context"; leaf sap { type boolean; default "true"; description "Use the SAP ID as part of the index"; } leaf mac { type boolean; default "true"; description "Use the MAC address as part of the index"; } leaf cid { type boolean; sros-ext:immutable; default "false"; description "Use the Circuit ID as part of the index"; } leaf rid { type boolean; sros-ext:immutable; default "false"; description "Use the remote ID as part of the index"; } } // container session-key } // list ipoe-session-policy list sap-template { key "name"; max-elements 256; description "Enter the sap-template list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "SAP template name"; } leaf description { type types-sros:description; description "Text description"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy name"; } leaf hold-time { type union { type types-sros:time-duration { range "0|30..2592000"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "30"; description "Time to hold a SAP after last PFCP session is removed"; } container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPU protection policy ID"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Apply CPU protection policy on MAC sources"; } } case ip { leaf ip-src-monitoring { type empty; description "Apply CPU protection policy on IP sources"; } } } } // container cpu-protection } // list sap-template list steering-profile { key "name"; max-elements 32; description "Enter the steering-profile list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "The name of this steering profile."; } leaf description { type types-sros:description; description "Text description"; } container access { description "Enter the access context"; leaf router-instance { type string; description "Specifies the routing instance used for access next-hop."; } } // container access container network { description "Enter the network context"; leaf next-hop { type types-sros:ipv4-unicast-address; description "Next-hop IP address used for network next-hop"; } leaf router-instance { type string; description "Specifies the (optional) routing instance used for network next-hop. If not specified, the routing instance that receives downstream packets is used to redirect packets to network next-hop"; } } // container network } // list steering-profile container explicit-subscriber-map { description "Enter the explicit-subscriber-map context"; list entry { key "subscriber-id"; description "Enter the entry list instance"; leaf subscriber-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:subscriber-id; } description "Subscriber Identification string"; } leaf sub-profile { type types-sros:external-named-item; description "Subscriber profile name"; } leaf alias { type string { length "1..64"; } description "Alias for subscriber identification string"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile name"; } } // list entry } // container explicit-subscriber-map list accu-stats-policy { key "name"; max-elements 32; description "Enter the accu-stats-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } list egress { key "type id"; max-elements 4; description "Add a list entry for egress"; leaf type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:queue-or-policer; } description "Type"; } leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:queue-or-policer-id; } description "Queue or policer ID"; } } // list egress list ingress { key "type id"; max-elements 4; description "Add a list entry for ingress"; leaf type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:queue-or-policer; } description "Type"; } leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:queue-or-policer-id; } description "Queue or policer ID"; } } // list ingress } // list accu-stats-policy list host-tracking-policy { key "name"; description "Enter the host-tracking-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } container egress-rate-modify { description "Enter the egress-rate-modify context"; choice rate-modify { case agg-rate { leaf agg-rate { type empty; description "Aggregate rate that applies for modification"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Scheduler to be applied for rate modification"; } } } } // container egress-rate-modify } // list host-tracking-policy list igmp-policy { key "name"; description "Enter the igmp-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf redirection-policy { type types-sros:named-item-64; description "Policy for redirection."; } leaf replication { type enumeration { enum "per-sap" { value 0; } enum "per-host" { value 1; } } default "per-sap"; description "Specifies where outgoing traffic will be replicated."; } leaf fast-leave { type boolean; default "true"; description "Enable fast leave"; } leaf use-multicast-destination-mac { type boolean; default "false"; description "Use multicast destination mac address for outgoing traffic."; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } container egress-rate-modify { description "Enter the egress-rate-modify context"; choice rate-modify { case agg-rate { leaf agg-rate { type empty; description "Aggregate rate that applies for modification"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Scheduler to be applied for rate modification"; } } } } // container egress-rate-modify container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-multicast-address; } description "Group address of static IGMP multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv4-unicast-address; } description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static container multicast-reporter { description "Enter the multicast-reporter context"; leaf destination { type types-sros:named-item; description "Multicast reporter destination"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multicast reporter"; } container optional-fields { description "Enter the optional-fields context"; leaf host-mac { type boolean; default "false"; description "Include host mac address"; } leaf pppoe-session-id { type boolean; default "false"; description "Include the PPPoE session ID in multicast reporting messages"; } leaf svc-id { type boolean; default "false"; description "Include service ID"; } leaf sap-id { type boolean; default "false"; description "Include sap ID"; } } // container optional-fields } // container multicast-reporter } // list igmp-policy list mld-policy { key "name"; description "Enter the mld-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf redirection-policy { type types-sros:named-item-64; description "Policy for redirection."; } leaf replication { type enumeration { enum "per-sap" { value 0; } enum "per-host" { value 1; } } default "per-sap"; description "Specifies where outgoing traffic will be replicated."; } leaf fast-leave { type boolean; default "true"; description "Enable fast leave"; } leaf use-multicast-destination-mac { type boolean; default "false"; description "Use multicast destination mac address for outgoing traffic."; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type types-sros:named-item-64; description "Import policy to filter MLD packets"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } container egress-rate-modify { description "Enter the egress-rate-modify context"; choice rate-modify { case agg-rate { leaf agg-rate { type empty; description "Aggregate rate that applies for modification"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Scheduler to be applied for rate modification"; } } } } // container egress-rate-modify container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-multicast-address; } description "Group address of multicast channel"; } choice source-or-starg { case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ipv6-unicast-address; } description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // list mld-policy list sub-mcac-policy { key "name"; description "Enter the sub-mcac-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the subscriber MCAC policy"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // list sub-mcac-policy container pfcp { description "Enter the pfcp context"; list association { key "name"; max-elements 1; description "Enter the association list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name that identifies the PFCP profile"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the PFCP association"; } leaf association-setup-retry { type types-sros:time-duration { range "1..36000"; } units "seconds"; default "10"; description "Time to wait before a retry attempt after failure"; } leaf association-release-timeout { type union { type enumeration { enum "none" { value 0; } } type types-sros:time-duration { range "30..3600"; } } units "seconds"; default "3600"; description "Time to wait for a response to a release request"; } leaf path-restoration-time { type types-sros:time-duration { range "5..1440"; } units "minutes"; description "Time to wait before declaring the path down"; } container node-id { description "Enter the node-id context"; choice node-id-type { default "use-ip-address"; case fqdn { leaf fqdn { type types-sros:fully-qualified-domain-name; description "FQDN that identifies the local system for PFCP"; } } case use-ip-address { leaf use-ip-address { type empty; description "Use the IP address of interface for the association"; } } } } // container node-id container interface { description "Enter the interface context"; leaf router-instance { type string; description "Router context for the PFCP association"; } leaf name { type types-sros:interface-name; description "Name of the interface to use for the association"; } } // container interface container peer { description "Enter the peer context"; choice node-id-type { case ip-address { leaf ip-address { type types-sros:ip-unicast-address; description "PFCP peer IP address"; } } } } // container peer container heartbeat { description "Enter the heartbeat context"; leaf interval { type types-sros:time-duration { range "60..180"; } units "seconds"; default "60"; description "Time between two heartbeat request messages"; } leaf timeout { type types-sros:time-duration { range "1..20"; } units "seconds"; default "5"; description "Time the system waits for a heartbeat response message"; } leaf retries { type uint32 { range "0..15"; } default "4"; description "Number of retries after the heartbeat timeout expires"; } } // container heartbeat container tx { description "Enter the tx context"; leaf timeout { type types-sros:time-duration { range "1..30"; } units "seconds"; default "5"; description "Retransmission timer"; } leaf retries { type uint32 { range "0..7"; } default "3"; description "Number of retries"; } leaf ttl { type uint32 { range "1..255"; } default "255"; description "TTL value in the IP header of egress PFCP packets"; } } // container tx container nat { description "Enter the nat context"; choice isa { case nat { leaf nat-group { type uint32 { range "1..4"; } description "NAT group used for CUPS NAT functionality"; } } case wlan-gw { leaf wlan-gw-group { type types-isa:wlan-gw-group-id; description "WLAN gateway group used for CUPS NAT functionality"; } } } } // container nat } // list association } // container pfcp list pim-policy { key "name"; max-elements 1; description "Enter the pim-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } } // list pim-policy list sub-profile { key "name"; description "Enter the sub-profile list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:external-named-item; } description "Profile name"; } leaf description { type types-sros:description; description "Text description"; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy"; } leaf accu-stats-policy { type types-sros:named-item; description "Accumulated statistics policy"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf firewall-policy { type types-sros:external-named-item; description "Firewall policy"; } leaf host-tracking-policy { type types-sros:named-item; description "Host tracking policy"; } leaf hs-sla-mode { type enumeration { enum "expanded" { value 0; } enum "single" { value 1; } } default "expanded"; description "HS board subscriber SLA mode"; } leaf igmp-policy { type types-sros:named-item; description "IGMP policy"; } leaf mld-policy { type types-sros:named-item; description "MLD policy"; } leaf pim-policy { type types-sros:named-item; description "Protocol Independent Multicast (PIM) policy"; } leaf preference { type uint32 { range "1..10"; } default "5"; description "Preference of this subscriber profile."; } leaf secondary-shaper-hashing { type boolean; default "false"; description "Include LAG hashing on secondary shaper"; } leaf sub-mcac-policy { type types-sros:named-item; description "Subscriber MCAC policy"; } leaf upnp-policy { type types-sros:external-named-item; description "Universal Plug 'n Play (UPnP) policy"; } leaf volume-stats-type { type enumeration { enum "l2" { value 0; } enum "ip" { value 1; } } default "l2"; description "Include non-IP headers in the accounting statistics"; } leaf vport-hashing { type boolean; default "false"; description "Include LAG hashing on Vport"; } container control { description "Enter the control context"; leaf local { type boolean; default "true"; description "Allow the local control plane to use the profile"; } leaf cups { type boolean; default "false"; description "Allow the CUPS control plane to use the profile"; } } // container control container nat { description "Enter the nat context"; leaf policy { type types-sros:external-named-item; description "Apply a NAT policy."; } leaf prefix-list { type types-sros:named-item; description "Apply a Layer-2-Aware NAT prefix list."; } leaf allow-bypass { type boolean; default "false"; description "Allow traffic to bypass NAT"; } leaf access-mode { type enumeration { enum "auto" { value 1; description "Automatically derived from the access SAP's anti-spoof type"; } enum "bridged" { value 2; description "Force to bridged mode"; } } default "auto"; description "The subscriber NAT access mode"; } } // container nat container ancp { description "Enter the ancp context"; leaf ancp-policy { type types-sros:named-item; description "ANCP policy for this subscriber profile"; } } // container ancp container egress { description "Enter the egress context"; container lag-per-link-hash { description "Enter the lag-per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used to select a LAG link"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight to be associated with SAP when selecting a LAG link"; } } // container lag-per-link-hash container qos { description "Enter the qos context"; leaf hs-agg-rate { type int32 { range "1..100000000"; } units "kilobps"; description "Maximum rate for single egress HS queues"; } leaf hs-min-resv-bw { type int32 { range "0..100000000"; } units "kilobps"; default "1"; description "Reserved minimum total rate of all egress queues"; } leaf hs-low-burst-max-class { type uint32 { range "1..6"; } default "6"; description "The class value that separates what classes use the low priority burst threshold and what classes use the high priority burst threshold."; } container agg-rate { description "Enter the agg-rate context"; leaf rate { type int32 { range "1..800000000"; } units "kilobps"; description "Maximum total rate of all egress queues"; } leaf min-resv-bw { type int32 { range "0..800000000"; } units "kilobps"; default "1"; description "Reserved minimum total rate of all egress queues"; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } } // container agg-rate container hsmda { status obsolete; description "Enter the hsmda context"; leaf agg-rate { status obsolete; type int32 { range "1..100000000"; } units "kilobps"; description "HSMDA-2 egress aggregate rate limit"; } leaf min-resv-bw { status obsolete; type int32 { range "0..100000000"; } units "kilobps"; default "1"; description "Reserved minimum total rate of all egress queues"; } container sap-egress { status obsolete; description "Enter the sap-egress context"; leaf policy-name { status obsolete; type types-qos:qos-policy-name; description "SAP-egress QoS policy"; } leaf stat-mode { status obsolete; type enumeration { enum "v4-v6" { value 0; } } description "Specify stat-mode."; } container overrides { status obsolete; description "Enter the overrides context"; leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Specify a packet offset for HSMDA-2 queue accounting."; } leaf wrr-policy { status obsolete; type types-sros:named-item; description "HSMDA-2 WRR policy"; } list queue { status obsolete; key "id"; description "Enter the queue list instance"; leaf id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; description "MBS"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; units "kilobps"; description "PIR percent rate"; } leaf slope-policy { status obsolete; type types-sros:named-item; description "HSMDA-2 slope policy"; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "HSMDA-2 WRR policy"; } } // list queue } // container overrides } // container sap-egress } // container hsmda container encap-offset { presence "Enter the 'encap-offset' context"; description "Enable the encap-offset context"; leaf type { type enumeration { enum "pppoa-llc" { value 1; } enum "pppoa-null" { value 2; } enum "pppoeoa-llc" { value 3; } enum "pppoeoa-llc-fcs" { value 4; } enum "pppoeoa-llc-tagged" { value 5; } enum "pppoeoa-llc-tagged-fcs" { value 6; } enum "pppoeoa-null" { value 7; } enum "pppoeoa-null-fcs" { value 8; } enum "pppoeoa-null-tagged" { value 9; } enum "pppoeoa-null-tagged-fcs" { value 10; } enum "ipoa-llc" { value 11; } enum "ipoa-null" { value 12; } enum "ipoeoa-llc" { value 13; } enum "ipoeoa-llc-fcs" { value 14; } enum "ipoeoa-llc-tagged" { value 15; } enum "ipoeoa-llc-tagged-fcs" { value 16; } enum "ipoeoa-null" { value 17; } enum "ipoeoa-null-fcs" { value 18; } enum "ipoeoa-null-tagged" { value 19; } enum "ipoeoa-null-tagged-fcs" { value 20; } enum "pppoe" { value 21; } enum "pppoe-tagged" { value 22; } enum "ipoe" { value 23; } enum "ipoe-tagged" { value 24; } } description "Offset type"; } } // container encap-offset container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy"; } container overrides { description "Enter the overrides context"; container root { presence "Enter the 'root' context"; description "Enable the root context"; leaf max-rate { type types-qos:policer-pir-rate-override; units "kilobps"; description "Maximum rate"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type types-qos:policer-burst-size-override; description "Minimum threshold separation"; } list priority { key "level"; description "Enter the priority list instance"; leaf level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Specifies the priority level."; } leaf mbs-contribution { type types-qos:policer-burst-size-override; description "MBS size"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler name"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Specifies the administrative PIR."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "sum"; description "Specifies the administrative CIR."; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos } // container egress container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; container hsmda { status obsolete; description "Enter the hsmda context"; container sap-ingress { status obsolete; description "Enter the sap-ingress context"; leaf policy-name { status obsolete; type types-qos:qos-policy-name; description "SAP-ingress QoS policy"; } container overrides { status obsolete; description "Enter the overrides context"; list policer { status obsolete; key "id"; description "Enter the policer list instance"; leaf id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id; } description "Policer ID"; } leaf stat-mode { status obsolete; type enumeration { enum "v4-v6" { value 0; } } description "Stat mode for the policer"; } } // list policer list queue { status obsolete; key "id"; description "Enter the queue list instance"; leaf id { status obsolete; type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-queue-id; } description "Queue ID"; } leaf stat-mode { status obsolete; type enumeration { enum "v4-v6" { value 0; } } description "Stat mode for the policer"; } } // list queue } // container overrides } // container sap-ingress } // container hsmda container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type types-sros:named-item; description "Policer control policy"; } container overrides { description "Enter the overrides context"; container root { presence "Enter the 'root' context"; description "Enable the root context"; leaf max-rate { type types-qos:policer-pir-rate-override; units "kilobps"; description "Maximum rate"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type types-qos:policer-burst-size-override; description "Minimum threshold separation"; } list priority { key "level"; description "Enter the priority list instance"; leaf level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hierarchy-level; } description "Specifies the priority level."; } leaf mbs-contribution { type types-qos:policer-burst-size-override; description "MBS size"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Scheduler policy"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler name"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Specifies the administrative PIR."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "sum"; description "Specifies the administrative CIR."; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos } // container ingress container radius-accounting { description "Enter the radius-accounting context"; leaf-list policy { type types-sros:named-item; max-elements 5; ordered-by user; description "RADIUS accounting policies"; } leaf session-optimized-stop { type boolean; default "false"; description "Optimize PPPoE session accounting stop behavior"; } } // container radius-accounting container sla-profile-map { description "Enter the sla-profile-map context"; leaf use-direct-map-as-default { type boolean; default "false"; description "Allow direct mapping of SLA profile as default"; } list entry { key "sla-profile-string"; description "Enter the entry list instance"; leaf sla-profile-string { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "SLA profile string"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile"; } } // list entry } // container sla-profile-map container session-limits { description "Enter the session-limits context"; leaf ipoe { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPoE sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of subscriber sessions"; } container pppoe { description "Enter the pppoe context"; leaf local { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE local-terminated sessions"; } leaf lac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE L2TP LAC sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE sessions"; } } // container pppoe container l2tp { description "Enter the l2tp context"; leaf lns { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LNS sessions"; } leaf lts { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LTS sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP sessions"; } } // container l2tp } // container session-limits container host-limits { description "Enter the host-limits context"; leaf lac-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LAC hosts"; } leaf overall { type types-submgt:sla-profile-host-limit; description "Maximum number of subscriber hosts"; } container ipv4 { description "Enter the ipv4 context"; leaf arp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 ARP hosts"; } leaf dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 DHCP hosts"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 hosts"; } leaf ppp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 PPP hosts"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 hosts"; } leaf pd-ipoe-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE DHCP PD hosts"; } leaf pd-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 DHCP PD hosts"; } leaf pd-ppp-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 PPPoE DHCP PD hosts"; } leaf wan-ipoe-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE DHCP WAN hosts"; } leaf wan-ipoe-slaac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE SLAAC WAN hosts"; } leaf wan-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 WAN hosts"; } leaf wan-ppp-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 PPPoE DHCP WAN hosts"; } leaf wan-ppp-slaac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 PPPoE SLAAC WAN hosts"; } } // container ipv6 } // container host-limits } // list sub-profile list sla-profile { key "name"; description "Enter the sla-profile list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:external-named-item; } description "Profile name"; } leaf description { type types-sros:description; description "Text description"; } leaf credit-control-policy { type types-sros:named-item; description "Credit policy for this SLA profile"; } leaf def-instance-sharing { type enumeration { enum "per-sap" { value 1; } enum "per-session" { value 2; } } default "per-sap"; description "Default method for SLA Profile Instance sharing of IPoE and PPPoE sessions"; } container control { description "Enter the control context"; leaf local { type boolean; default "true"; description "Allow the local control plane to use the profile"; } leaf cups { type boolean; default "false"; description "Allow the CUPS control plane to use the profile"; } } // container control container idle-timeout { presence "Enter the 'idle-timeout' context"; description "Enable the idle-timeout context"; leaf category-map-name { type types-sros:named-item; sros-ext:immutable; description "The name of the credit control category map to be used when idle-timeout is enabled for this SLA profile."; } list category { key "category-name"; max-elements 16; description "Enter the category list instance"; leaf category-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for the credit control category associated with this SLA profile"; } leaf timeout { type uint32 { range "60..15552000"; } units "seconds"; description "The time that this category can stay below its activity-threshold before action is taken."; } leaf action { type enumeration { enum "terminate" { value 1; } enum "shcv" { value 2; } } default "terminate"; description "The action to be taken when the idle timeout has occurred."; } } // list category } // container idle-timeout container egress { description "Enter the egress context"; leaf ip-filter { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6-filter { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } container bonding-selection { description "Enter the bonding-selection context"; container rate-thresholds { description "Enter the rate-thresholds context"; leaf high { type uint32 { range "56..99"; } units "percent"; default "90"; description "High threshold rate percentage"; } leaf low { type uint32 { range "55..98"; } units "percent"; default "80"; description "Low threshold rate percentage"; } } // container rate-thresholds container weight { description "Enter the weight context"; leaf initial { type uint32 { range "1..100"; } units "percent"; default "100"; description "Initial weight of the preferred connection"; } leaf change { type uint32 { range "0..10"; } units "percent"; default "5"; description "Weight change of the preferred connection"; } } // container weight } // container bonding-selection container qos { description "Enter the qos context"; leaf hs-agg-rate { type int32 { range "1..100000000"; } units "kilobps"; description "Maximum rate for expanded egress HS queues"; } leaf qos-marking-from-sap { type boolean; default "true"; description "Define the sap-egress qos-policy from which the egress qos marking rules are taken."; } leaf use-ingress-l2tp-dscp { type boolean; default "false"; description "Specify that the DSCP of the ingress L2TP header be used to do egress reclassification."; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type types-qos:qos-policy-name; description "SAP-egress QoS policy"; } leaf port-parent-location { type enumeration { enum "port" { value 1; } enum "vport" { value 2; } } default "port"; description "Scheduling type for queued traffic"; } container overrides { description "Enter the overrides context"; leaf hs-queue-stat-mode { type enumeration { enum "v4-v6" { value 0; } } description "Egress HS queue stats mode"; } list hs-wrr-group { key "id"; description "Enter the hs-wrr-group list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:hs-wrr-group-id; } description "HS WRR group ID"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Class weight override for WRR group"; } leaf rate { type types-qos:hs-wrr-rate-override; units "kilobps"; description "PIR rate override for WRR group"; } } // list hs-wrr-group list policer { key "id"; description "Enter the policer list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:sap-egress-policer-id; } description "Policer ID"; } leaf cbs { type types-qos:policer-burst-size-override; description "CBS"; } leaf mbs { type types-qos:policer-burst-size-override; description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Packet byte offset"; } leaf stat-mode { type types-submgt:subscriber-egress-policer-stat-mode-type; description "Stat mode for the policer"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate-override; units "kilobps"; description "Specifies PIR override"; } leaf cir { type types-qos:policer-cir-rate-override; units "kilobps"; description "Specifies CIR override"; } } // container rate } // list policer list queue { key "id"; description "Enter the queue list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:egress-queue-id; } description "Queue ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } units "percent"; description "Average frame overhead"; } leaf cbs { type types-qos:burst-size-override; description "CBS"; } leaf high-prio-only { type types-qos:burst-percent-or-default-override; units "percent"; description "High priority burst size"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Class-weight override for expanded egress HS queues"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; description "Maximum rate for expanded egress HS queues"; } leaf mbs { type types-qos:queue-burst-size-override; description "MBS"; } leaf stat-mode { type enumeration { enum "v4-v6" { value 0; } } description "Stat mode for the policer"; } container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type types-sros:named-item; description "Name of slope-policy."; } } // container hs-wred-queue container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-override; units "kilobps"; description "Specifies PIR override"; } leaf cir { type types-qos:queue-cir-rate-override; units "kilobps"; description "Specifies CIR override"; } } // container rate } // list queue } // container overrides } // container sap-egress container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type types-sros:named-item; description "Egress scheduler policy"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Scheduler name"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "sum"; description "Administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container report-rate { description "Enter the report-rate context"; choice report-rate { case agg-rate { leaf agg-rate { type empty; description "Report the aggregate rate"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Report the rate of the specified scheduler"; } } case pppoe-actual-rate { leaf pppoe-actual-rate { type empty; description "Report the rate of the DSL-Forum Vendor-Specific PPPoE Tag."; } } case policer { leaf policer { type uint32 { range "1..63"; } description "Report the rate of the specified policer"; } } case rfc5515-actual-rate { leaf rfc5515-actual-rate { type empty; description "Report the rate as specified in RFC5515"; } } } } // container report-rate } // container egress container session-limits { description "Enter the session-limits context"; leaf ipoe { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPoE sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of subscriber sessions"; } container pppoe { description "Enter the pppoe context"; leaf local { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE local terminated sessions"; } leaf lac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE L2TP LAC sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE sessions"; } } // container pppoe container l2tp { description "Enter the l2tp context"; leaf lns { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LNS sessions"; } leaf lts { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LTS sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP sessions"; } } // container l2tp } // container session-limits container host-limits { description "Enter the host-limits context"; leaf lac-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LAC hosts"; } leaf overall { type types-submgt:sla-profile-host-limit; description "Maximum number of subscriber hosts"; } leaf remove-oldest { type boolean; default "false"; description "Remove oldest"; } container ipv4 { description "Enter the ipv4 context"; leaf arp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 ARP hosts"; } leaf dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 DHCP hosts"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 hosts"; } leaf ppp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 PPP hosts"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 hosts"; } leaf pd-ipoe-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE DHCP PD hosts"; } leaf pd-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 DHCP PD hosts"; } leaf pd-ppp-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 PPPoE DHCP PD hosts"; } leaf wan-ipoe-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE DHCP WAN hosts"; } leaf wan-ipoe-slaac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE SLAAC WAN hosts"; } leaf wan-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 WAN hosts"; } leaf wan-ppp-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number IPv6 PPPoE DHCP WAN hosts"; } leaf wan-ppp-slaac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 PPPoE SLAAC WAN hosts"; } } // container ipv6 } // container host-limits container ingress { description "Enter the ingress context"; leaf ip-filter { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } leaf ipv6-filter { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv6 filter policy name"; } container qos { description "Enter the qos context"; container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type types-qos:qos-policy-name; description "SAP-ingress QoS policy"; } leaf queuing-type { type types-qos:ingress-queuing-type; default "service"; description "Queuing type"; } container overrides { description "Enter the overrides context"; list policer { key "id"; description "Enter the policer list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-policer-id; } description "Policer ID"; } leaf cbs { type types-qos:policer-burst-size-override; description "CBS"; } leaf mbs { type types-qos:policer-burst-size-override; description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Packet byte offset"; } leaf stat-mode { type types-submgt:subscriber-ingress-policer-stat-mode-type; description "Stat mode for the policer"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate-override; units "kilobps"; description "Specifies PIR override"; } leaf cir { type types-qos:policer-cir-rate-override; units "kilobps"; description "Specifies CIR override"; } } // container rate } // list policer list queue { key "id"; description "Enter the queue list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-qos:ingress-queue-id; } description "Queue ID"; } leaf cbs { type types-qos:burst-size-override; description "CBS"; } leaf high-prio-only { type types-qos:burst-percent-or-default-override; units "percent"; description "High priority burst size"; } leaf mbs { type types-qos:queue-burst-size-override; description "MBS"; } leaf stat-mode { type enumeration { enum "v4-v6" { value 0; } } description "Stat mode for the policer"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-override; units "kilobps"; description "Specifies PIR override"; } leaf cir { type types-qos:queue-cir-rate-override; units "kilobps"; description "Specifies CIR override"; } } // container rate } // list queue } // container overrides } // container sap-ingress } // container qos container report-rate { description "Enter the report-rate context"; choice report-rate { case agg-rate { leaf agg-rate { type empty; description "Report the aggregate rate"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Report the rate of the specified scheduler"; } } case pppoe-actual-rate { leaf pppoe-actual-rate { type empty; description "Report the rate of the DSL-Forum Vendor-Specific PPPoE Tag."; } } case policer { leaf policer { type uint32 { range "1..63"; } description "Report the rate of the specified policer"; } } case rfc5515-actual-rate { leaf rfc5515-actual-rate { type empty; description "Report the rate as specified in RFC5515"; } } } } // container report-rate } // container ingress container one-time-http-redirection { description "Enter the one-time-http-redirection context"; leaf ip-filter { type types-filter:filter-name { pattern "(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])|(([^f0-9_]|f($|[^S]|S($|[^p]|p($|[^e]|e($|[^c]|c($|[^\\-]|-($|[^0-9]+)))))))\\P{C}*))"; } description "IPv4 filter policy name"; } } // container one-time-http-redirection } // list sla-profile list sub-ident-policy { key "name"; description "Enter the sub-ident-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:external-named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf strings-from-option { type uint32 { range "1..254"; } description "IPOE option to get the identification strings"; } container primary { description "Enter the primary context"; leaf script-url { type types-sros:url; description "Identification script URL"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of script execution"; } } // container primary container secondary { description "Enter the secondary context"; leaf script-url { type types-sros:url; description "Identification script URL"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of script execution"; } } // container secondary container tertiary { description "Enter the tertiary context"; leaf script-url { type types-sros:url; description "Identification script URL"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of script execution"; } } // container tertiary container sla-profile-map { description "Enter the sla-profile-map context"; leaf use-direct-map-as-default { type boolean; default "false"; description "Allow direct mapping of SLA profile as default"; } list entry { key "sla-profile-string"; description "Enter the entry list instance"; leaf sla-profile-string { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "SLA profile string"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile"; } } // list entry } // container sla-profile-map container sub-profile-map { description "Enter the sub-profile-map context"; leaf use-direct-map-as-default { type boolean; default "false"; description "Allow direct mapping of subscriber profile as default"; } list entry { key "sub-profile-string"; description "Enter the entry list instance"; leaf sub-profile-string { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..32"; } } description "Subscriber identification string"; } leaf sub-profile { type types-sros:external-named-item; description "Subscriber profile"; } } // list entry } // container sub-profile-map } // list sub-ident-policy list ppp-policy { key "name"; max-elements 256; description "Enter the ppp-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf default-pap-password { type types-sros:encrypted-leaf { length "1..115"; } description "Default PAP password to be used when the PPP client does not provide a password"; } leaf default-user-name { type types-sros:string-not-all-spaces { length "1..253"; } description "Default PPP username to be used when the PPP client does not provide a username"; } leaf cookies { type boolean; default "true"; description "Enable/disable the use of AC-Cookie tags."; } leaf force-ppp-mtu-gt-1492 { type boolean; default "false"; description "Force the PPPoE MTU size to go above 1492 without RFC 4638."; } leaf ipcp-subnet-negotiation { type boolean; default "false"; description "Allow IPCP subnet negotiation for PPPoE hosts"; } leaf lcp-ignore-magic-numbers { type boolean; default "false"; description "Magic-Number field in LCP Echo-Request and LCP Echo-Reply messages that are checked"; } leaf max-sessions-per-mac { type uint32 { range "1..8191"; } default "1"; description "Maximum sessions per MAC"; } leaf allow-same-circuit-id-for-dhcp { type boolean; default "false"; description "Allow multiple PPPoE sessions with the same MAC address and circuit ID for a specific SAP"; } leaf pado-ac-name { type types-sros:string-not-all-spaces { length "1..128"; } description "Configure the Access-Concentrator-Name to send with a PADO."; } leaf pado-delay { type uint32 { range "1..30"; } units "deciseconds"; description "Delay timeout before sending a PADO"; } leaf ppp-authentication { type enumeration { enum "pap" { value 1; } enum "chap" { value 2; } enum "pref-chap" { value 3; } enum "pref-pap" { value 4; } } default "pref-chap"; description "PPP authentication protocol to negotiate"; } leaf ppp-initial-delay { type boolean; default "false"; description "Select delay timeout before starting the PPP stack"; } leaf ppp-mtu { type uint32 { range "512..9212"; } description "Maximum PPP MTU size"; } leaf re-establish-session { type boolean; default "false"; description "Reconnect and override an existing session"; } leaf reject-unconfigured-ncp { type boolean; default "false"; description "Enable/disable reject unconfigured NCP."; } leaf reply-on-padt { type boolean; default "false"; description "Enable/disable reply on PADT packets."; } leaf session-timeout { type types-sros:time-duration { range "1..31104000"; } units "seconds"; description "Session timeout interval"; } leaf sid-allocation { type enumeration { enum "sequential" { value 0; } enum "random" { value 1; } } default "sequential"; description "PPPoE session ID allocation method"; } leaf unique-sid { type enumeration { enum "per-sap" { value 1; } enum "per-sap-mac" { value 2; } enum "per-msap" { value 3; } } default "per-sap-mac"; description "Mode in which a unique session ID is allocated"; } container max-sessions-per-cid { presence "Enter the 'max-sessions-per-cid' context"; description "Enable the max-sessions-per-cid context"; leaf limit { type uint32 { range "1..8190"; } description "Maximum sessions per Agent Circuit ID and per SAP"; } leaf allow-sessions-without-cid { type boolean; default "false"; description "Allow PPPoE sessions without an Agent Circuit ID"; } } // container max-sessions-per-cid container keepalive { description "Enter the keepalive context"; leaf interval { type types-sros:time-duration { range "4..300"; } units "seconds"; default "30"; description "PPP keepalive interval"; } leaf hold-up-multiplier { type uint32 { range "1..5"; } default "3"; description "PPP keepalive multiplier"; } } // container keepalive container ppp-chap-challenge-length { description "Enter the ppp-chap-challenge-length context"; leaf min { type uint32 { range "8..64"; } default "32"; description "Minimum length for the PPP CHAP challenge"; } leaf max { type uint32 { range "8..64"; } default "64"; description "Maximum length for the PPP CHAP challenge"; } } // container ppp-chap-challenge-length container mlppp { description "Enter the mlppp context"; leaf accept-mrru { type boolean; default "false"; description "Accept multilink MRRU LCP option"; } leaf short-sequence-numbers { type boolean; default "false"; description "Request a peer to send short sequence numbers"; } container endpoint { description "Enter the endpoint context"; choice endpoint { case ip { leaf ip { type types-ppp:mlppp-ip-endpoint; description "Endpoint ID as an IP address"; } } case mac { leaf mac { type types-ppp:mlppp-mac-endpoint; description "Endpoint ID as a MAC address"; } } } } // container endpoint } // container mlppp container ppp-options { description "Enter the ppp-options context"; list custom-option { key "protocol option-number"; description "Enter the custom-option list instance"; leaf protocol { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "lcp" { value 1; } enum "ipcp" { value 2; } enum "ipv6cp" { value 3; } } } description "Protocol for the custom PPP option"; } leaf option-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..255"; } } description "PPP option number"; } choice option-data { case address { leaf address { type types-sros:ipv4-address; description "IP address for the custom PPP option"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "Hexadecimal string for the custom PPP option"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "ASCII string for the customer PPP option"; } } case empty { leaf empty { type empty; description "Configure an empty PPP option."; } } } } // list custom-option } // container ppp-options } // list ppp-policy list pppoe-client-policy { key "name"; max-elements 256; description "Enter the pppoe-client-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf mru { type uint32 { range "512..9154"; } default "1492"; description "PPPoE MRU"; } leaf mtu { type uint32 { range "512..9154"; } default "1492"; description "PPPoE MTU"; } leaf python-policy { type types-sros:named-item; description "Python policy to be applied to all messages in the PPPoE client policy"; } container keepalive { description "Enter the keepalive context"; leaf interval { type types-sros:time-duration { range "10..300"; } units "seconds"; default "30"; description "PPPoE keepalive interval"; } leaf hold-up-multiplier { type uint32 { range "1..5"; } default "3"; description "PPPoE keepalive multiplier"; } } // container keepalive container restart-backoff { description "Enter the restart-backoff context"; leaf initial-time { type types-sros:time-duration { range "10..3600"; } units "seconds"; default "30"; description "Initial backoff time"; } leaf max-time { type types-sros:time-duration { range "10..3600"; } units "seconds"; default "600"; description "Maximum backoff time"; } } // container restart-backoff container stack { description "Enter the stack context"; leaf ipv4 { type boolean; default "true"; description "Start IPCP to retrieve an IPv4 address"; } leaf ipv6-slaac { type boolean; default "false"; description "Start IPv6CP and use SLAAC to retrieve an IPv6 prefix"; } } // container stack } // list pppoe-client-policy list radius-accounting-policy { key "name"; max-elements 32; description "Enter the radius-accounting-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf acct-tunnel-connection-fmt { type types-sros:ascii-specification { length "1..253"; } default "%n"; description "Configure the accounting tunnel connection ascii-specification."; } leaf delay-start-time { type types-sros:time-duration { range "1..10"; } units "seconds"; description "Accounting start delay"; } leaf radius-server-policy { type types-sros:named-item; description "Referenced RADIUS server policy"; } leaf session-id-format { type enumeration { enum "description" { value 1; } enum "number" { value 2; } } default "description"; description "Format used in accounting session ID attributes"; } container triggered-updates { description "Enter the triggered-updates context"; leaf gtp-mobility { type boolean; default "false"; description "Enable/disable gtp triggered updates."; } } // container triggered-updates container host-accounting { description "Enter the host-accounting context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of per-host accounting"; } leaf interim-update { type boolean; default "false"; description "Allow interim-update accounting messages to be sent"; } } // container host-accounting container queue-instance-accounting { description "Enter the queue-instance-accounting context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of per-queue instance accounting"; } leaf interim-update { type boolean; default "true"; description "Send accounting interim-update messages for the queue instance"; } } // container queue-instance-accounting container session-accounting { description "Enter the session-accounting context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of per-session accounting"; } leaf interim-update { type boolean; default "false"; description "Allow interim-update accounting messages to be sent"; } leaf host-update { type boolean; default "false"; description "Allow host updates"; } } // container session-accounting container update-interval { description "Enter the update-interval context"; leaf interval { type types-sros:time-duration { range "5..259200"; } units "minutes"; description "Intermediate update interval"; } leaf jitter { type union { type enumeration { enum "auto" { value -10; } } type types-sros:time-duration { range "0..3600"; } } units "seconds"; default "auto"; description "Intermediate and MCS update interval jitter"; } } // container update-interval container mcs-interval { description "Enter the mcs-interval context"; leaf interval { type union { type enumeration { enum "none" { value 0; } enum "use-update-interval" { value 1; } } type types-sros:time-duration { range "5..60"; } } units "minutes"; description "MCS synchronization interval of usage counters"; } } // container mcs-interval container custom-record { description "Enter the custom-record context"; leaf significant-change { type uint32 { range "0..max"; } description "Significant change required to generate the record"; } list override-counter { key "id"; description "Enter the override-counter list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "Override counter ID"; } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container i-counters } // list override-counter list queue { key "id"; description "Enter the queue list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32"; } } description "Custom record queue ID"; } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } leaf high-octets-offered-count { type boolean; default "false"; description "Include the high octets offered count"; } leaf high-packets-offered-count { type boolean; default "false"; description "Include the high packets offered count"; } leaf low-octets-offered-count { type boolean; default "false"; description "Include the low octets offered count"; } leaf low-packets-offered-count { type boolean; default "false"; description "Include the low packets offered count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncolored octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncolored packets offered count"; } } // container i-counters } // list queue container ref-override-counter { description "Enter the ref-override-counter context"; choice counter { case id { leaf id { type uint32 { range "1..8"; } description "Referenced override counter ID"; } } case all { leaf all { type empty; description "All referenced override counters"; } } } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container i-counters } // container ref-override-counter container ref-queue { description "Enter the ref-queue context"; choice queue { case id { leaf id { type uint32 { range "1..32"; } description "Referenced queue ID"; } } case all { leaf all { type empty; description "All referenced queues"; } } } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } leaf high-octets-offered-count { type boolean; default "false"; description "Include the high octets offered count"; } leaf high-packets-offered-count { type boolean; default "false"; description "Include the high packets offered count"; } leaf low-octets-offered-count { type boolean; default "false"; description "Include the low octets offered count"; } leaf low-packets-offered-count { type boolean; default "false"; description "Include the low packets offered count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncolored octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncolored packets offered count"; } } // container i-counters } // container ref-queue } // container custom-record container include-radius-attribute { description "Enter the include-radius-attribute context"; leaf access-loop-options { type boolean; default "false"; description "Enable/disable include of the access-loop-options attribute."; } leaf acct-authentic { type boolean; default "false"; description "Enable/disable include of the acct-authentic attribute."; } leaf acct-delay-time { type boolean; default "false"; description "Enable/disable include of the acct-delay-time attribute."; } leaf acct-triggered-reason { type boolean; default "false"; description "Include Alc-Acct-Triggered-Reason attribute"; } leaf error-code { type boolean; default "false"; description "Include detailed error codes"; } leaf all-authorized-session-addresses { type boolean; default "false"; description "Include all included and authorized address/prefix attributes in session accounting"; } leaf apn { type boolean; default "false"; description "Enable/disable include of the APN attribute."; } leaf bonding-active-connections { type boolean; default "false"; description "Enable/disable including the Radius attribute Alc-Bonding-Active-Connections."; } leaf bonding-id { type boolean; default "false"; description "Enable/disable including the Radius attribute Alc-Bonding-Id."; } leaf brg-num-active-sessions { type boolean; default "false"; description "Enable/disable including the Radius attribute Alc-BRG-Num-Active-Sessions."; } leaf called-station-id { type boolean; default "false"; description "Include called-station-id attribute"; } leaf circuit-id { type boolean; default "false"; description "Include circuit-id attribute"; } leaf delegated-ipv6-prefix { type boolean; default "false"; description "Include delegated-ipv6-prefix attribute"; } leaf detailed-acct-attributes { type boolean; default "true"; description "Include more detailed accounting attributes"; } leaf dhcp-vendor-class-id { type boolean; default "false"; description "Enable/disable include of the IPOE-Vendor-Class-Id RADIUS attribute."; } leaf firewall-info { type boolean; default "false"; description "Enable/disable include of the firewall information attribute."; } leaf framed-interface-id { type boolean; default "false"; description "Include framed-interface-id attribute"; } leaf framed-ip-address { type boolean; default "false"; description "Include framed-ip-address attribute"; } leaf framed-ip-netmask { type boolean; default "false"; description "Include framed-ip-netmask attribute"; } leaf framed-ipv6-prefix { type boolean; default "false"; description "Include framed-ipv6-prefix attribute"; } leaf framed-ipv6-route { type boolean; default "false"; description "Include framed-ipv6-route attribute"; } leaf framed-route { type boolean; default "false"; description "Include framed-route attribute"; } leaf imei { type boolean; default "false"; description "Enable/disable include of the IMEI attribute."; } leaf ipv6-address { type boolean; default "false"; description "Include IPv6 address attribute"; } leaf lanext-bridge-id { type boolean; default "false"; description "Enable/disable include of the lanext-bridge-id attribute."; } leaf lanext-device-type { type boolean; default "false"; description "Enable/disable include of the lanext-device-type attribute."; } leaf lanext-route-distinguisher { type boolean; default "false"; description "Enable/disable include of the lanext-route-distinguisher attribute."; } leaf lanext-route-target { type boolean; default "false"; description "Enable/disable include of the lanext-route-target attribute."; } leaf lanext-vni { type boolean; default "false"; description "Enable/disable include of the lanext-vni attribute."; } leaf mac-address { type boolean; default "false"; description "Enable/disable include of the MAC-Address attribute."; } leaf msisdn { type boolean; default "false"; description "Enable/disable include of the MSISDN attribute."; } leaf nas-identifier { type boolean; default "false"; description "Enable/disable include of the NAS-Identifier attribute."; } leaf nat-port-range { type boolean; default "false"; description "Include NAT port range attribute"; } leaf remote-id { type boolean; default "false"; description "Include remote-id attribute"; } leaf sla-profile { type boolean; default "false"; description "Include sla-profile attribute"; } leaf spi-sharing-id { type boolean; default "false"; description "Include spi-sharing-id attribute"; } leaf std-acct-attributes { type boolean; default "false"; description "Include standard accounting attributes"; } leaf steering-profile { type boolean; default "false"; description "Enable/disable including the Radius attribute Alc-Steering-Profile."; } leaf sub-profile { type boolean; default "false"; description "Include sub-profile attribute"; } leaf subscriber-id { type boolean; default "false"; description "Include subscriber-id attribute"; } leaf tunnel-client-attrs { type boolean; default "false"; description "Enable/disable include of tunnel-client attributes."; } leaf tunnel-server-attrs { type boolean; default "false"; description "Enable/disable include of tunnel-server attributes."; } leaf user-name { type boolean; default "false"; description "Enable/disable include of user-name attribute."; } leaf v6-aggregate-stats { type boolean; default "false"; description "Report IPv6 aggregated forwarded octet and packet counters using RADIUS VSAs"; } leaf wifi-num-attached-ues { type boolean; default "false"; description "Enable/disable including the Alc-Num-Attached-UEs RADIUS attribute."; } leaf wifi-rssi { type boolean; default "false"; description "Enable/disable include of the 802.11 Received Signal Strength Indication attribute."; } leaf wifi-ssid-vlan { type boolean; default "false"; description "Enable/disable including the per-SSID VLAN ID in Alc-Wlan-SSID-VLAN."; } leaf uli { type boolean; default "false"; description "Generate the ULI RADIUS attribute"; } leaf bearer-fteid { type boolean; default "false"; description "Include bearer-fteid attribute"; } leaf xconnect-tunnel-home-address { type boolean; default "false"; description "Enable/disable include of Alc-Xconnect-Tunnel-Home-Ipv6 attribute."; } container calling-station-id { presence "Enter the 'calling-station-id' context"; description "Enable the calling-station-id context"; leaf type { type enumeration { enum "sap-string" { value 1; } enum "mac" { value 2; } enum "sap-id" { value 3; } enum "remote-id" { value 4; } enum "llid" { value 5; } } default "sap-string"; description "Specifies the calling-station-id type."; } } // container calling-station-id container nas-port { presence "Enter the 'nas-port' context"; description "Enable the nas-port context"; leaf bit-spec { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[smpoivc])+"; } description "RADIUS NAS-Port attribute"; } } // container nas-port container nas-port-id { presence "Enter the 'nas-port-id' context"; description "Enable the nas-port-id context"; leaf prefix-string { type string { length "1..8"; } description "String to be prefixed to the NAS-Port-Id attribute"; } leaf suffix { type enumeration { enum "circuit-id" { value 1; } enum "remote-id" { value 2; } } description "String to be suffixed to the NAS-Port-Id attribute"; } } // container nas-port-id container nas-port-type { presence "Enter the 'nas-port-type' context"; description "Enable the nas-port-type context"; leaf type { type union { type enumeration { enum "rfc-aligned" { value 1000; } } type uint32 { range "0..255"; } } default "rfc-aligned"; description "Value for RADIUS NAS-Port-Type attribute"; } } // container nas-port-type } // container include-radius-attribute } // list radius-accounting-policy container authentication-origin { description "Enter the authentication-origin context"; container overrides { description "Enter the overrides context"; list priority { key "id"; description "Enter the priority list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..4294967295"; } } description "Specifies the insert position of the authentication origin priority override."; } leaf source { type types-submgt:authentication-origin; description "The source of authentication having priority specified id."; } } // list priority } // container overrides } // container authentication-origin list radius-authentication-policy { key "name"; max-elements 32; description "Enter the radius-authentication-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "RADIUS request password"; } leaf pppoe-access-method { type enumeration { enum "none" { value 1; } enum "padi" { value 2; } enum "pap-chap" { value 3; } } default "padi"; description "PPPoE access method"; } leaf radius-server-policy { type types-sros:named-item; description "Referenced RADIUS server policy"; } leaf re-authentication { type boolean; default "false"; description "Enable re-authentication on IPOE renewal"; } container fallback { description "Enter the fallback context"; leaf force-probing { type boolean; default "false"; description "Enable force probing"; } container action { description "Enter the action context"; choice action { case accept { leaf accept { type empty; description "Automatically accept all authentication requests"; } } case user-db { leaf user-db { type types-sros:named-item; description "Local user database used to authenticate to the server"; } } } } // container action } // container fallback container ppp-user-name { description "Enter the ppp-user-name context"; leaf domain-operation { type types-submgt:user-name-format-domain-operation; description "Specifies the operation to perform on the user-name."; } leaf domain-name { type string { length "1..128"; } description "Specifies the domain-name to use with user-name operations."; } } // container ppp-user-name container send-acct-stop-on-fail { description "Enter the send-acct-stop-on-fail context"; leaf on-request-failure { type boolean; default "false"; description "Send accounting-stop on request failure."; } leaf on-reject { type boolean; default "false"; description "Send accounting-stop on access-reject."; } leaf on-accept-failure { type boolean; default "false"; description "Send accounting-stop on host authentication and instantiation failure after access-accept."; } } // container send-acct-stop-on-fail container user-name { description "Enter the user-name context"; leaf format { type enumeration { enum "mac" { value 1; } enum "circuit-id" { value 2; } enum "tuple" { value 3; } enum "ascii-converted-circuit-id" { value 4; } enum "ascii-converted-tuple" { value 5; } enum "dhcp-client-vendor-opts" { value 6; } enum "mac-giaddr" { value 7; } enum "ppp-user-name" { value 8; } } default "mac"; description "How user is represented when contacting RADIUS server"; } leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "Specifies how the MAC address gets formatted."; } leaf gtp-format { type enumeration { enum "imsi" { value 1; } enum "imsi-apn" { value 2; } } default "imsi"; description "Format of the GTP username"; } leaf domain-operation { type types-submgt:user-name-format-domain-operation; description "Specifies the operation to perform on the user-name."; } leaf domain-name { type string { length "1..128"; } description "Specifies the domain-name to use with user-name operations."; } } // container user-name container include-radius-attribute { description "Enter the include-radius-attribute context"; leaf access-loop-options { type boolean; default "false"; description "Enable/disable include of the access-loop-options attribute."; } leaf apn { type boolean; default "false"; description "Enable/disable include of the APN attribute."; } leaf called-station-id { type boolean; default "false"; description "Include called-station-id attribute"; } leaf circuit-id { type boolean; default "false"; description "Include circuit-id attribute"; } leaf dhcp-options { type boolean; default "false"; description "Generate the DHCP options RADIUS attribute"; } leaf dhcp-vendor-class-id { type boolean; default "false"; description "Enable/disable include of the IPOE-Vendor-Class-Id RADIUS attribute."; } leaf dhcp6-options { type boolean; default "false"; description "Generate the DHCPv6 options RADIUS attribute"; } leaf gprs-negotiated-qos-profile { type boolean; default "false"; description "Generate the GPRS negotiated QoS profile RADIUS attribute"; } leaf imei { type boolean; default "false"; description "Enable/disable include of the IMEI attribute."; } leaf mac-address { type boolean; default "false"; description "Enable/disable include of the MAC-Address attribute."; } leaf msisdn { type boolean; default "false"; description "Enable/disable include of the MSISDN attribute."; } leaf nas-identifier { type boolean; default "false"; description "Enable/disable include of the NAS-Identifier attribute."; } leaf pppoe-service-name { type boolean; default "false"; description "Generate the pppoe-service-name RADIUS attribute"; } leaf rat-type { type boolean; default "false"; description "Generate the RAT type RADIUS attribute"; } leaf remote-id { type boolean; default "false"; description "Include remote-id attribute"; } leaf sap-session-index { type boolean; default "false"; description "Generate the per-SAP unique session index"; } leaf tunnel-server-attrs { type boolean; default "false"; description "Enable/disable include of tunnel-server attributes."; } leaf uli { type boolean; default "false"; description "Generate the ULI RADIUS attribute"; } leaf wifi-num-attached-ues { type boolean; default "false"; description "Enable/disable including the Alc-Num-Attached-UEs RADIUS attribute."; } leaf wifi-ssid-vlan { type boolean; default "false"; description "Enable/disable including the per-SSID VLAN ID in Alc-Wlan-SSID-VLAN."; } leaf xconnect-tunnel-home-address { type boolean; default "false"; description "Enable/disable include of Alc-Xconnect-Tunnel-Home-Ipv6 attribute."; } container acct-session-id { presence "Enter the 'acct-session-id' context"; description "Enable the acct-session-id context"; leaf type { type enumeration { enum "host" { value 1; } enum "session" { value 2; } } default "host"; description "Specifies the accounting-session-id type."; } } // container acct-session-id container calling-station-id { presence "Enter the 'calling-station-id' context"; description "Enable the calling-station-id context"; leaf type { type enumeration { enum "sap-string" { value 1; } enum "mac" { value 2; } enum "sap-id" { value 3; } enum "remote-id" { value 4; } enum "llid" { value 5; } } default "sap-string"; description "Specifies the calling-station-id type."; } } // container calling-station-id container nas-port { presence "Enter the 'nas-port' context"; description "Enable the nas-port context"; leaf bit-spec { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[smpoivc])+"; } description "RADIUS NAS-Port attribute"; } } // container nas-port container nas-port-id { presence "Enter the 'nas-port-id' context"; description "Enable the nas-port-id context"; leaf prefix-string { type string { length "1..8"; } description "String to be prefixed to the NAS-Port-Id attribute"; } leaf suffix { type enumeration { enum "circuit-id" { value 1; } enum "remote-id" { value 2; } } description "String to be suffixed to the NAS-Port-Id attribute"; } } // container nas-port-id container nas-port-type { presence "Enter the 'nas-port-type' context"; description "Enable the nas-port-type context"; leaf type { type union { type enumeration { enum "rfc-aligned" { value 1000; } } type uint32 { range "0..255"; } } default "rfc-aligned"; description "Value for RADIUS NAS-Port-Type attribute"; } } // container nas-port-type } // container include-radius-attribute } // list radius-authentication-policy container auto-sub-id { description "Enter the auto-sub-id context"; leaf-list ipoe-key { type types-submgt:sub-id-key-ipoe; max-elements 4; ordered-by user; description "Auto-generated subscriber identifier key1 for IPoE hosts"; } leaf-list ppp-key { type types-submgt:sub-id-key-ppp; max-elements 5; ordered-by user; description "Auto-generated subscriber identifier key1 for PPP hosts"; } leaf implicit-generation { type boolean; default "true"; description "Generate implicitly the subscriber identifier if none is provided"; } } // container auto-sub-id list rip-policy { key "name"; max-elements 255; description "Enter the rip-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Set authentication key."; } leaf authentication-type { type enumeration { enum "password" { value 2; } enum "message-digest" { value 3; } enum "message-digest-20" { value 4; } } description "Set authentication type."; } } // list rip-policy list host-lockout-policy { key "name"; max-elements 128; description "Enter the host-lockout-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf host-key { type enumeration { enum "all" { value 0; } enum "mac" { value 1; } } sros-ext:immutable; default "all"; description "Parameters used in host identification for lockout on specified SAP or capture SAP"; } leaf lockout-reset-time { type types-sros:time-duration { range "1..86400"; } units "seconds"; default "60"; description "Lockout reset time settings"; } leaf max-lockout-hosts { type uint32 { range "1..32000"; } default "100"; description "Max lockout hosts"; } container lockout-time { description "Enter the lockout-time context"; leaf min { type types-sros:time-duration { range "1..86400"; } units "seconds"; default "10"; description "Minimum lockout time"; } leaf max { type types-sros:time-duration { range "1..86400"; } units "seconds"; default "3600"; description "Maximum lockout time"; } } // container lockout-time } // list host-lockout-policy list shcv-policy { key "name"; max-elements 64; description "Enter the shcv-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:external-named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } container periodic { description "Enter the periodic context"; leaf action { type types-submgt:host-connectivity-verify-action; default "alarm"; description "Action when periodic connectivity verification fails"; } leaf interval { type types-submgt:host-connectivity-verify-interval; default "30"; description "Interval between periodic connectivity verification."; } leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "2"; description "Number of retransmissions in periodic connectivity verification."; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "10"; description "Timeout before a periodic connectivity verification is retransmitted."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of periodic connectivity verification"; } } // container periodic container vpls { description "Enter the vpls context"; leaf source-ip { type types-sros:ipv4-unicast-address; description "Source IPv4 address for connectivity verification."; } leaf source-mac { type yang:mac-address; sros-ext:immutable; description "Source MAC address for connectivity verification."; } } // container vpls container layer-3 { description "Enter the layer-3 context"; leaf source-ip-origin { type types-submgt:host-connectivity-verify-source-ip-origin; default "interface"; description "Origin of the source IP address for connectivity verification."; } } // container layer-3 container trigger { description "Enter the trigger context"; container ip-conflict { description "Enter the ip-conflict context"; leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "1"; description "Number of retransmissions in ip-conflict periodic connectivity verification"; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "1"; description "Timeout before an ip-conflict periodic connectivity verification is retransmitted"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the trigger for IP conflict"; } } // container ip-conflict container host-limit-exceeded { description "Enter the host-limit-exceeded context"; leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "1"; description "Number of retransmissions in host-limit-exceeded periodic connectivity verification"; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "1"; description "Timeout before a host-limit-exceeded periodic connectivity verification is retransmitted"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of trigger for host-limit exceeded"; } } // container host-limit-exceeded container inactivity { description "Enter the inactivity context"; leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "2"; description "Number of retransmissions in inactivity periodic connectivity verification"; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "10"; description "Timeout before an inactivity periodic connectivity verification is retransmitted"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the trigger for inactive hosts"; } } // container inactivity container mobility { description "Enter the mobility context"; leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "1"; description "Number of retransmissions in mobility periodic connectivity verification"; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "1"; description "Timeout before an mobility periodic connectivity verification is retransmitted"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of trigger for SAP IP/MAC conflict"; } } // container mobility container mac-learning { description "Enter the mac-learning context"; leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "2"; description "Number of retransmissions in mac-learning periodic connectivity verification"; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "10"; description "Timeout before an mac-learning periodic connectivity verification is retransmitted"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of trigger for MAC learning"; } } // container mac-learning } // container trigger } // list shcv-policy list http-redirect-policy { key "name"; max-elements 16; description "Enter the http-redirect-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Identification of the http redirect policy"; } leaf description { type types-sros:description; description "Text description"; } leaf url { type types-sros:http-redirect-url; description "HTTP URL to which the matching traffic is redirected. Only macros $URL, $MAC, $IP are supported in this case. For unsupported macros, the string is not modified."; } leaf dst-port { type types-sros:tcp-udp-port-non-zero; default "80"; description "Destination port number of the HTTP request to match"; } leaf portal-hold-time { type types-sros:time-duration { range "1..60"; } description "Time for holding on to the re-direct forwarding resources after the subscriber has left the portal"; } leaf ignore-app-profile { type boolean; default "false"; description "Ignore application profile attribute in the RADIUS Access-Accept message"; } list forward-entry { key "dst-ip protocol dst-port"; description "Add a list entry for forward-entry"; leaf dst-ip { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "Destination address"; } leaf protocol { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "tcp" { value 6; } enum "udp" { value 17; } } } description "Destination protocol"; } leaf dst-port { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:tcp-udp-port-non-zero; } description "Destination port"; } } // list forward-entry } // list http-redirect-policy list msap-policy { key "name"; max-elements 256; description "Enter the msap-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Managed SAP policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy"; } leaf lag-link-map-profile { type types-services:link-map-profile-id; description "Map profile for LAG link"; } leaf sticky-msaps { type boolean; default "false"; description "Prevent MSAPs from being deleted"; } leaf sticky-msaps-idle-timeout { type uint32 { range "5..604800"; } units "seconds"; description "Timeout used for sticky MSAPs"; } container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type types-services:cpm-prot-policy-id; description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Apply the CPU protection policy per-source-rate on MAC sources."; } } case ip { leaf ip-src-monitoring { type empty; description "Apply the CPU protection policy per-source-rate on IP sources."; } } } } // container cpu-protection container sub-sla-mgmt { description "Enter the sub-sla-mgmt context"; leaf subscriber-limit { type types-submgt:sap-subscriber-limit; default "1"; description "Maximum subscribers on this SAP"; } leaf sub-ident-policy { type types-sros:external-named-item; description "Configure subscriber identification policy"; } container defaults { description "Enter the defaults context"; leaf sla-profile { type types-sros:external-named-item; description "Default SLA profile"; } leaf sub-profile { type types-sros:external-named-item; description "Subscriber profile"; } container int-dest-id { description "Enter the int-dest-id context"; choice int-dest-id-config { case top-q-tag { leaf top-q-tag { type empty; description "Derive string based on top most delineating Dot1Q tag from SAP's encapsulation"; } } case string { leaf string { type types-submgt:int-dest-id; description "String to be used as the int-dest-id"; } } } } // container int-dest-id container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id-config { case auto-id { leaf auto-id { type empty; description "Autogenerated sub-id as default sub-id"; } } case sap-id { leaf sap-id { type empty; description "SAP-id as default sub-id"; } } case string { leaf string { type types-submgt:subscriber-id; description "String to be used as default sub-id"; } } } } // container subscriber-id } // container defaults container single-sub-parameters { description "Enter the single-sub-parameters context"; leaf profiled-traffic-only { type boolean; default "false"; description "Enable/disable profiled-traffic-only."; } container non-sub-traffic-profiles { presence "Enter the 'non-sub-traffic-profiles' context"; description "Enable the non-sub-traffic-profiles context"; leaf sub-profile { type types-sros:external-named-item; description "Subscriber profile"; } leaf sla-profile { type types-sros:external-named-item; description "SLA profile name"; } leaf subscriber-id { type types-submgt:subscriber-id; description "Subscriber identification string"; } } // container non-sub-traffic-profiles } // container single-sub-parameters } // container sub-sla-mgmt container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; description "Time during which the system continues to track inactive hosts"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of multicast groups to be tracked"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of multicast groups to be tracked per group"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of multicast sources to be tracked"; } } // container igmp-host-tracking container vpls-only-sap-parameters { description "Enter the vpls-only-sap-parameters context"; leaf arp-reply-agent { type types-services:arp-reply-agent; description "Enable arp-reply-agent function"; } leaf mac-da-hashing { type boolean; default "false"; description "Include hashing on MAC DA ISO subscriber ID"; } leaf split-horizon-group { type types-sros:named-item; description "Name of the split horizon group for the MSAP"; } container arp-host { description "Enter the arp-host context"; leaf host-limit { type types-submgt:sap-host-limit; default "1"; description "Maximum number of ARP hosts"; } leaf min-auth-interval { type types-sros:time-duration { range "1..6000"; } units "minutes"; default "15"; description "The minimum authentication interval."; } } // container arp-host container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf policy-name { type types-qos:qos-policy-name; description "SAP-egress QoS policy"; } } // container qos } // container egress container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf policy-name { type types-qos:qos-policy-name; description "Configure the SAP-ingress QoS policy."; } leaf queuing-type { type enumeration { enum "multipoint-shared" { value 1; } enum "service" { value 2; } } default "multipoint-shared"; description "Queuing type"; } } // container qos } // container ingress container dhcp { description "Enter the dhcp context"; leaf lease-populate { type types-submgt:sap-lease-state-limit; default "1"; description "Maximum number of DHCPv4 leases per managed SAP"; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP proxy"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "DHCP relay forwarding policy action"; } leaf circuit-id { type enumeration { enum "none" { value 0; } enum "ascii-tuple" { value 1; } enum "vlan-ascii-tuple" { value 2; } } default "ascii-tuple"; description "Circuit ID suboption of the IPOE relay"; } container remote-id { description "Enter the remote-id context"; choice remote-id { case mac { leaf mac { type empty; description "MAC address of the remote end that is encoded in the suboption"; } } case string { leaf string { type types-sros:named-item; description "String to encode in the suboption"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf client-mac-address { type boolean; default "false"; description "Enable/disable sending of the MAC address in the Nokia vendor specific suboption of the IPOE Relay packet."; } leaf sap-id { type boolean; default "false"; description "Enable/disable sending of the SAP-id in the Nokia vendor specific suboption of the IPOE Relay packet."; } leaf service-id { type boolean; default "false"; description "Enable/disable sending of the service-id in the Nokia vendor specific suboption of the IPOE Relay packet."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "Specifies the string in the Nokia vendor specific suboption of the IPOE Relay packet."; } leaf system-id { type boolean; default "false"; description "Enable/disable sending of the system-id in the Nokia vendor specific suboption of the IPOE Relay packet."; } } // container vendor-specific-option } // container option-82 } // container dhcp container igmp-snooping { description "Enter the igmp-snooping context"; leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf query-last-member-interval { type types-sros:time-duration { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf import-policy { type types-sros:named-item-64; description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type union { type enumeration { enum "unlimited" { value 0; } } type uint32 { range "1..16000"; } } default "unlimited"; description "Maximum number of multicast groups"; } leaf query-interval { type types-sros:time-duration { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type types-sros:time-duration { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss"; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP version"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type string { length "1..32"; } description "Multicast CAC interface-policy name."; } leaf policy { type string { length "1..32"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight while calculating Multicast CAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-mcast-cac:constraints-level; } description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth; default "1"; description "Bandwidth available for this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..64"; } } description "Number of lag ports down"; } leaf level { type types-mcast-cac:constraints-level; description "Level to be associated with this number of lag ports that are down"; } } // list number-down } // container mc-constraints } // container mcac container mvr { description "Enter the mvr context"; leaf from-vpls { type types-services:service-name; description "MVR VPLS from which the multicast channels are taken"; } } // container mvr } // container igmp-snooping } // container vpls-only-sap-parameters container ies-vprn-only-sap-parameters { description "Enter the ies-vprn-only-sap-parameters context"; leaf anti-spoof { type types-services:anti-spoof-option-ip-mac; default "source-ip-and-mac-addr"; description "Anti-spoof filtering for the MSAP"; } container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf policy-name { type types-qos:qos-policy-name; description "SAP-egress QoS policy"; } } // container qos } // container egress container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf policy-name { type types-qos:qos-policy-name; description "Configure the SAP-ingress QoS policy."; } leaf queuing-type { type enumeration { enum "shared" { value 1; } enum "service" { value 2; } } default "shared"; description "Queuing type"; } } // container qos } // container ingress } // container ies-vprn-only-sap-parameters } // list msap-policy list category-map { key "category-map-name"; max-elements 255; description "Enter the category-map list instance"; leaf category-map-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Category map name"; } leaf description { type types-sros:description; description "Text description"; } leaf credit-type { type enumeration { enum "volume" { value 1; } enum "time" { value 2; } } default "volume"; description "Credit type"; } leaf credit-exhaust-threshold { type uint32 { range "50..100"; } units "percent"; default "100"; description "Percentage for credit exhaust threshold"; } leaf activity-threshold { type types-submgt:activity-threshold; description "Threshold that is applied to determine whether an activity is ongoing"; } leaf gx-session-level-usage { type boolean; default "false"; description "Allow Gx session level Usage Monitoring"; } list category { key "category-name"; max-elements 16; description "Enter the category list instance"; leaf category-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Category name"; } leaf description { type types-sros:description; description "Text description"; } leaf rating-group { type int64 { range "0..4294967295"; } description "Rating group for this category"; } leaf credit-type-override { type enumeration { enum "volume" { value 1; } enum "time" { value 2; } } description "Credit type override in category map"; } leaf out-of-credit-action-override { type enumeration { enum "continue" { value 1; } enum "disconnect-host" { value 2; } enum "block-category" { value 3; } enum "change-service-level" { value 4; } } description "Out of credit action that is overridden in category map"; } container default-credit { description "Enter the default-credit context"; choice default-credit { case time { leaf time { type types-sros:time-duration { range "1..4294967295"; } units "seconds"; description "Default time credit"; } } case volume { container volume { presence "Enter the 'volume' context"; description "Enable the volume context"; leaf value { type uint32 { range "1..4294967295"; } description "Value for the default volume credit"; } leaf unit { type enumeration { enum "bytes" { value 0; } enum "kilobytes" { value 1; } enum "megabytes" { value 2; } enum "gigabytes" { value 3; } } default "bytes"; description "Unit for the default volume credit"; } } // container volume } } } // container default-credit container exhausted-credit-service-level { description "Enter the exhausted-credit-service-level context"; leaf pir { type types-qos:pir-rate-override; description "PIR"; } container ingress { description "Enter the ingress context"; container ip-filter { description "Enter the ip-filter context"; list entry { key "id"; max-elements 10; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:limited-entry-id; } description "IP Filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IPv4 protocol to match"; } leaf multiple-option { type boolean; description "Match the multiple option"; } leaf option-present { type boolean; description "Match the present option"; } leaf dst-ip { type types-sros:ipv4-address-and-mask; description "Destination IP address and mask to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP to match"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Fragmentation to match"; } container icmp { description "Enter the icmp context"; leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code to match"; } leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match"; } } // container icmp container ip-option { description "Enter the ip-option context"; leaf type { type types-filter:filter-match-ip-option; default "0"; description "First IP option value for the IP header"; } leaf mask { type types-filter:filter-match-ip-option; default "0"; description "Mask with which the first IP option of IP header is ANDed before comparing"; } } // container ip-option container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Check for ACK bit"; } leaf syn { type boolean; description "Check for SYN bit"; } } // container tcp-flags container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } description "Upper bound of the range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } description "Upper bound of the range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; choice type { default "drop"; description "Action type for the filter entry"; case drop { leaf drop { type empty; description "Packets matching the filter entry are dropped"; } } case forward { leaf forward { type empty; description "Packets matching the filter entry are forwarded"; } } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type types-sros:http-redirect-url; description "URL that is used to redirect the packets"; } leaf allow-override { type boolean; default "false"; description "Allow URL to be overridden by RADIUS/Diameter"; } } // container http-redirect } } } // container action } // list entry } // container ip-filter container ipv6-filter { description "Enter the ipv6-filter context"; list entry { key "id"; max-elements 10; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:limited-entry-id; } description "IP Filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } leaf dst-ip { type types-sros:ipv6-address-and-mask; default "0::0 0::0"; description "Destination IP address and mask to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP to match"; } container icmp { description "Enter the icmp context"; leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code to match"; } leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match"; } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Check for ACK bit"; } leaf syn { type boolean; description "Check for SYN bit"; } } // container tcp-flags container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } description "Upper bound of the range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } description "Upper bound of the range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; choice type { default "drop"; description "Action type for the filter entry"; case drop { leaf drop { type empty; description "Packets matching the filter entry are dropped"; } } case forward { leaf forward { type empty; description "Packets matching the filter entry are forwarded"; } } } } // container action } // list entry } // container ipv6-filter } // container ingress container egress { description "Enter the egress context"; container ip-filter { description "Enter the ip-filter context"; list entry { key "id"; max-elements 10; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:limited-entry-id; } description "IP Filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IPv4 protocol to match"; } leaf multiple-option { type boolean; description "Match the multiple option"; } leaf option-present { type boolean; description "Match the present option"; } leaf src-ip { type types-sros:ipv4-address-and-mask; description "Source IP address and mask to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP to match"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Fragmentation to match"; } container icmp { description "Enter the icmp context"; leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code to match"; } leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match"; } } // container icmp container ip-option { description "Enter the ip-option context"; leaf type { type types-filter:filter-match-ip-option; default "0"; description "First IP option value for the IP header"; } leaf mask { type types-filter:filter-match-ip-option; default "0"; description "Mask with which the first IP option of IP header is ANDed before comparing"; } } // container ip-option container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Check for ACK bit"; } leaf syn { type boolean; description "Check for SYN bit"; } } // container tcp-flags container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } description "Upper bound of the range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } description "Upper bound of the range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; choice type { default "drop"; description "Action type for the filter entry"; case drop { leaf drop { type empty; description "Packets matching the filter entry are dropped"; } } case forward { leaf forward { type empty; description "Packets matching the filter entry are forwarded"; } } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type types-sros:http-redirect-url; description "URL that is used to redirect the packets"; } leaf allow-override { type boolean; default "false"; description "Allow URL to be overridden by RADIUS/Diameter"; } } // container http-redirect } } } // container action } // list entry } // container ip-filter container ipv6-filter { description "Enter the ipv6-filter context"; list entry { key "id"; max-elements 10; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:limited-entry-id; } description "IP Filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } leaf src-ip { type types-sros:ipv6-address-and-mask; default "0::0 0::0"; description "Source IP address and mask to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP to match"; } container icmp { description "Enter the icmp context"; leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code to match"; } leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match"; } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Check for ACK bit"; } leaf syn { type boolean; description "Check for SYN bit"; } } // container tcp-flags container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } description "Upper bound of the range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } description "Upper bound of the range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; choice type { default "drop"; description "Action type for the filter entry"; case drop { leaf drop { type empty; description "Packets matching the filter entry are dropped"; } } case forward { leaf forward { type empty; description "Packets matching the filter entry are forwarded"; } } } } // container action } // list entry } // container ipv6-filter } // container egress } // container exhausted-credit-service-level container ingress { description "Enter the ingress context"; leaf-list queue { type int8 { range "1..32"; } max-elements 32; description "Ingress queues used in this category"; } leaf-list policer { type int8 { range "1..63"; } max-elements 63; description "Ingress policers used in this category"; } } // container ingress container egress { description "Enter the egress context"; leaf-list queue { type int8 { range "1..8"; } max-elements 8; description "Egress queues for this category"; } leaf-list policer { type int8 { range "1..63"; } max-elements 63; description "Egress policers for this category"; } } // container egress } // list category } // list category-map list credit-control-policy { key "name"; max-elements 255; description "Enter the credit-control-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf default-category-map { type types-sros:named-item; description "Default category map for this policy"; } leaf out-of-credit-action { type enumeration { enum "continue" { value 1; } enum "disconnect-host" { value 2; } enum "block-category" { value 3; } enum "change-service-level" { value 4; } } default "continue"; description "Action when out of credit is reached"; } leaf error-handling-action { type enumeration { enum "continue" { value 1; } enum "block" { value 2; } } default "continue"; description "Action when an error occurs in the determination of Credit Control"; } container server { description "Enter the server context"; choice server { default "radius"; case radius { leaf radius { type empty; description "Use RADIUS authentication servers defined in the RADIUS authentication policy in group interface"; } } case diameter { leaf diameter { type types-sros:named-item; description "Diameter policy name that defines the Diameter peers to be used"; } } } } // container server } // list credit-control-policy list router-advertisement-policy { key "name"; max-elements 16; description "Enter the router-advertisement-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:external-named-item; } description "Router advertisement policy name"; } leaf max-advertisement-interval { type types-sros:time-duration { range "900..1800"; } units "seconds"; default "1800"; description "Maximum advertisement interval"; } leaf min-advertisement-interval { type types-sros:time-duration { range "900..1350"; } units "seconds"; default "900"; description "Minimum advertisement interval"; } leaf force-mcast { type enumeration { enum "ip" { value 1; } enum "ip-mac" { value 2; } } description "Send router advertisement to a multicast address instead of unicast for IPoE"; } container options { description "Enter the options context"; leaf current-hop-limit { type uint32 { range "0..255"; } default "64"; description "Hop limit to be advertised"; } leaf managed-configuration { type boolean; default "false"; description "Managed address configuration flag"; } leaf mtu { type union { type uint32 { range "1280..9212"; } type enumeration { enum "not-included" { value 0; } } } units "bytes"; default "not-included"; description "Advertised MTU value"; } leaf other-stateful-configuration { type boolean; default "false"; description "Other stateful configuration flag"; } leaf reachable-time { type types-sros:time-duration { range "0..3600000"; } units "milliseconds"; default "0"; description "Neighbor discovery reachable time that is advertised for this group interface"; } leaf retransmit-timer { type uint32 { range "0..1800000"; } units "seconds"; default "0"; description "Neighbor discovery retransmit timer that is advertised for this group interface"; } leaf router-lifetime { type union { type types-sros:time-duration { range "2700..9000"; } type enumeration { enum "no-default-router" { value 0; } } } units "seconds"; default "4500"; description "Router lifetime"; } container dns { description "Enter the dns context"; leaf include-rdnss { type boolean; default "false"; description "Include the RDNSS server option 25"; } leaf rdnss-lifetime { type union { type types-sros:time-duration { range "900..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "3600"; description "Maximum time for the RDNSS address to remain valid"; } } // container dns } // container options container prefix-options { description "Enter the prefix-options context"; container stateful { description "Enter the stateful context"; leaf auto-lifetimes { type boolean; default "false"; description "Use automatic lifetimes for stateful prefixes"; } leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container stateful container stateless { description "Enter the stateless context"; leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container stateless } // container prefix-options } // list router-advertisement-policy list bgp-peering-policy { key "name"; max-elements 255; description "Enter the bgp-peering-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf advertise-inactive { type boolean; description "Advertise inactive BGP routes to other BGP peers"; } leaf aggregator-id-zero { type boolean; description "Set router ID in aggregator path attribute to zero when BGP aggregates routes"; } leaf as-override { type boolean; description "Replace all instances of the peer's AS number with the local AS number in a BGP route's AS_PATH"; } leaf authentication-keychain { type types-sros:named-item; description "Specify the TCP authentication keychain to use for the session."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf cluster { type types-sros:ipv4-address; description "Cluster ID for route reflector server"; } leaf connect-retry { type int32 { range "1..65535"; } units "seconds"; description "BGP connect retry timer value"; } leaf damping { type boolean; description "Use BGP route damping for learned routes defined within the route policy"; } leaf client-reflect { type boolean; description "Enable/disable the reflection of routes by the route reflector."; } leaf fast-external-failover { type boolean; description "Enable/disable BGP fast external failover."; } leaf hold-time { type int32 { range "0|3..65535"; } units "seconds"; description "BGP hold time before closing connection"; } leaf keepalive { type int32 { range "0..21845"; } units "seconds"; description "BGP keepalive timer"; } leaf local-address { type types-sros:ip-unicast-address; description "Local IP address used by group or neighbor when communicating with BGP peers"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Local preference attribute for incoming routes if not specified"; } leaf loop-detect { type types-bgp:loop-detect; description "Strategy for loop detection in the AS path"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Multi-Exit Discriminator (MED) advertising"; } leaf min-route-advertisement { type int16 { range "1..255"; } units "seconds"; description "Minimum interval between successive updates of prefix toward peer"; } leaf multihop { type uint32 { range "1..255"; } description "TTL value entered in IP header of packets sent to peer"; } leaf next-hop-self { type boolean; description "Advertise routes to peer using next hop path attribute set to itself"; } leaf passive { type boolean; description "Wait passively for BGP peer to connect"; } leaf peer-as { type uint32 { range "1..4294967295"; } description "AS number for remote peer"; } leaf preference { type uint32 { range "1..255"; } description "Route preference for routes learned from all configured peers"; } leaf prefix-limit { type uint32 { range "1..4294967295"; } description "Maximum number of routes that can be learned from peer"; } leaf ttl-security { type int32 { range "1..255"; } description "Minimum TTL value for incoming BGP packet"; } leaf type { type types-bgp:peer-type; description "Peer type"; } leaf asn-4-byte { type boolean; description "Enable/disable the advertisement of 4-byte ASN capability."; } leaf-list import { type types-sros:named-item-64; max-elements 15; ordered-by user; description "Import route policies used to control routes advertised to BGP neighbors"; } leaf-list export { type types-sros:named-item-64; max-elements 15; ordered-by user; description "Export route policies used to control routes advertised to BGP neighbors"; } container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; description "Send the community attribute to the peer for non-external communities"; } leaf extended { type boolean; description "Send the community attribute to the peer for external communities"; } } // container send-communities container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "AS number to be advertised to peer"; } leaf private { type boolean; default "false"; description "Hide local AS number in paths learned from peering"; } } // container local-as container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private AS numbers up to first public ASN encountered"; } } // container remove-private } // list bgp-peering-policy container svlan-statistics { description "Enter the svlan-statistics context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of statistics collection"; } } // container svlan-statistics container ancp { description "Enter the ancp context"; list ancp-policy { key "name"; description "Enter the ancp-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Policy name"; } container egress { description "Enter the egress context"; leaf rate-adjustment { type uint32 { range "1..200"; } units "percent"; default "100"; description "Rate adjustment"; } leaf rate-reduction { type uint32 { range "1..4294967295"; } units "kilobps"; description "Rate reduction"; } container rate-modify { description "Enter the rate-modify context"; choice rate-modify { case agg-rate { leaf agg-rate { type empty; description "Aggregate rate that applies for modification"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Scheduler to be applied for rate modification"; } } } } // container rate-modify container rate-monitor { description "Enter the rate-monitor context"; leaf rate { type uint32 { range "1..4294967295"; } units "kilobps"; description "Rate below which the system generates an event"; } leaf alarm { type boolean; default "false"; description "Generate SNMP notification when monitor event is raised"; } } // container rate-monitor } // container egress container ingress { description "Enter the ingress context"; leaf rate-adjustment { type uint32 { range "1..200"; } units "percent"; default "100"; description "Rate adjustment"; } leaf rate-reduction { type uint32 { range "1..4294967295"; } units "kilobps"; description "Rate reduction"; } container rate-modify { description "Enter the rate-modify context"; leaf scheduler { type types-sros:named-item; description "Scheduler to be applied for rate modification"; } } // container rate-modify container rate-monitor { description "Enter the rate-monitor context"; leaf rate { type uint32 { range "1..4294967295"; } units "kilobps"; description "Rate below which the system generates an event"; } leaf alarm { type boolean; default "false"; description "Generate SNMP notification when monitor event is raised"; } } // container rate-monitor } // container ingress container port-down { description "Enter the port-down context"; container suspend-shcv { presence "Enter the 'suspend-shcv' context"; description "Enable the suspend-shcv context"; leaf alarm { type boolean; default "false"; description "Enables/disables whether the system should generate a notification before suspending SHCV."; } leaf hold-time { type types-sros:time-duration { range "1..7200"; } units "seconds"; description "Configures how long SHCV is suspended."; } } // container suspend-shcv } // container port-down } // list ancp-policy container ancp-static-map { description "Enter the ancp-static-map context"; list sap-entry { key "ancp-string sap-id"; description "Enter the sap-entry list instance"; leaf ancp-string { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:ancp-string; } description "ANCP string"; } leaf sap-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:sap; } description "SAP"; } leaf ancp-policy { type types-sros:named-item; description "ANCP policy name"; } } // list sap-entry list multi-service-site-entry { key "ancp-string customer-name customer-site-name"; description "Enter the multi-service-site-entry list instance"; leaf ancp-string { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-submgt:ancp-string; } description "ANCP string"; } leaf customer-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:customer-name; } description "Service customer identifier"; } leaf customer-site-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Service customer multi-service site name"; } leaf ancp-policy { type types-sros:named-item; description "The ANCP policy."; } } // list multi-service-site-entry } // container ancp-static-map } // container ancp container gtp { description "Enter the gtp context"; leaf max-held-uplink-sessions { type uint32 { range "0..500000"; } default "2000"; description "Maximum GTP sessions to be held while there is no corresponding ESM state"; } container serving-network { presence "Enter the 'serving-network' context"; description "Enable the serving-network context"; leaf mcc { type string { length "3"; pattern "\\d{3}" { error-message "mcc must be digits"; } } description "Mobile Country Code (MCC) portion of serving network"; } leaf mnc { type string { length "2..3"; pattern "\\d{2,3}" { error-message "mnc must be digits"; } } description "Mobile Network Code (MNC) portion of serving network"; } } // container serving-network list apn-policy { key "name"; max-elements 128; description "Enter the apn-policy list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "GTP APN policy name"; } list apn { key "apn-name"; max-elements 1024; description "Enter the apn list instance"; leaf apn-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..80"; pattern "([a-zA-Z0-9]+-+)*([a-zA-Z0-9]+\\.([a-zA-Z0-9]+-+)*)*[a-zA-Z0-9]+" { error-message "wrong format of apn name"; } } } description "GTP APN name"; } leaf skip-gtp-ipv4-allocation { type boolean; default "false"; description "defer IPv4 address allocation to DHCP"; } choice auth-policy { case diameter { leaf diameter-nasreq-policy { type types-sros:named-item; description "NASREQ authentication policy name"; } } case radius { leaf radius-auth-policy { type types-sros:named-item; description "RADIUS authentication policy name"; } } case user-db { leaf user-db { type types-sros:named-item; description "Local user database name"; } } } container ambr-qos-mapping { description "Enter the ambr-qos-mapping context"; container downlink { presence "Enter the 'downlink' context"; description "Enable the downlink context"; choice downlink { case aggregate-rate { leaf aggregate-rate { type empty; description "Map the downlink APN-AMBR rate to an Aggregate Rate override"; } } case arbiter { leaf arbiter { type types-sros:named-item; description "Map the downlink APN-AMBR rate to an override for the specified arbiter"; } } case policer { leaf policer { type types-qos:sap-egress-policer-id; description "Map the downlink APN-AMBR rate to a policer PIR override"; } } case queue { leaf queue { type types-qos:egress-queue-id; description "Map the downlink APN-AMBR rate to a queue PIR override"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Map the downlink APN-AMBR rate to a scheduler rate override"; } } } } // container downlink container uplink { presence "Enter the 'uplink' context"; description "Enable the uplink context"; choice uplink { case arbiter { leaf arbiter { type types-sros:named-item; description "Map the uplink APN-AMBR rate to an override for the specified arbiter"; } } case policer { leaf policer { type types-qos:ingress-policer-id; description "Map the uplink APN-AMBR rate to a policer PIR override"; } } case queue { leaf queue { type types-qos:ingress-queue-id; description "Map the uplink APN-AMBR rate to a queue PIR override"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Map the uplink APN-AMBR rate to a scheduler rate override"; } } } } // container uplink } // container ambr-qos-mapping container defaults { description "Enter the defaults context"; container group-interface { presence "Enter the 'group-interface' context"; description "Enable the group-interface context"; leaf svc-name { type types-services:service-name; description "Group interface service name"; } leaf name { type types-sros:interface-name; description "Group interface name"; } } // container group-interface } // container defaults } // list apn } // list apn-policy list peer-profile { key "name"; description "Enter the peer-profile list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "GTP peer profile name"; } leaf description { type types-sros:description; description "Text description"; } leaf interface-type { type enumeration { enum "gn" { value 1; } enum "s2a" { value 2; } enum "s2b" { value 3; } enum "s11" { value 4; } } default "s2a"; description "3GPP interface type for connections toward this peer"; } leaf ip-ttl { type uint8 { range "1..255"; } default "255"; description "IP TTL value for GTP control messages."; } leaf python-policy { type types-sros:named-item; description "Python policy used to process GTP messages."; } container keep-alive { description "Enter the keep-alive context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of GTP-C echo request messages"; } leaf interval { type types-sros:time-duration { range "60..180"; } units "seconds"; default "60"; description "Frequency for sending keepalives"; } leaf retry-count { type uint32 { range "1..15"; } default "4"; description "Maximum number of unanswered echo retries after which keepalive failure is detected"; } leaf timeout { type uint32 { range "1..20"; } units "seconds"; default "5"; description "Timeout after which an echo request is considered unanswered"; } } // container keep-alive container message-retransmit { description "Enter the message-retransmit context"; leaf timeout { type uint32 { range "1..30"; } units "seconds"; default "5"; description "Timeout after which a message is considered unanswered"; } leaf retry-count { type uint32 { range "1..8"; } default "3"; description "Maximum number of unanswered retries after which the message is considered failed"; } } // container message-retransmit container s11 { description "Enter the s11 context"; leaf ipv4-mtu { type uint32 { range "512..9000"; } default "1400"; description "IPv4 MTU signaled in the Protocol Configuration Options (PCO)"; } leaf end-marker-count { type uint32 { range "0..5"; } default "1"; description "The number of GTP-U end-marker packets sent after mobility."; } leaf change-reporting-action { type union { type uint32 { range "0..255"; } type enumeration { enum "cgi-sai" { value 1; } enum "rai" { value 2; } enum "tai" { value 3; } enum "ecgi" { value 4; } enum "cgi-sai-rai" { value 5; } enum "tai-ecgi" { value 6; } } } description "The value of the Change Reporting Action Information Element sent to the peer."; } container qos { description "Enter the qos context"; leaf arp { type uint32 { range "1..15"; } default "1"; description "Allocation or retention priority"; } leaf qci { type uint32 { range "1..9"; } default "8"; description "QoS Class Identifier (QCI) value that is used in GTP messages"; } container ambr { description "Enter the ambr context"; leaf down-link { type int32 { range "0..10000000"; } units "kilobps"; default "20000"; description "Downlink Aggregated Maximum Bit Rate (AMBR)"; } leaf up-link { type int32 { range "0..10000000"; } units "kilobps"; default "10000"; description "Uplink Aggregated Maximum Bit Rate (AMBR)"; } } // container ambr container down-link { description "Enter the down-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Maximum Bit Rate (MBR)"; } } // container down-link container up-link { description "Enter the up-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Maximum Bit Rate (MBR)"; } } // container up-link } // container qos } // container s11 container uplink { description "Enter the uplink context"; leaf protocol-configuration-options { type enumeration { enum "pco" { value 1; } enum "apco" { value 2; } } default "pco"; description "Information element to use for the protocol configuration options"; } leaf rat-type { type union { type uint32 { range "0..255"; } type enumeration { enum "utran" { value 1; } enum "geran" { value 2; } enum "wlan" { value 3; } enum "gan" { value 4; } enum "hspa" { value 5; } enum "eutran" { value 6; } enum "virtual" { value 7; } } } default "wlan"; description "The default Radio Access Technology type signaled during GTP set-up."; } leaf report-wlan-location { type boolean; default "false"; description "Report the wlan location of the UE during session set-up."; } leaf session-hold-time { type union { type types-sros:time-duration { range "0..3600"; } type enumeration { enum "remaining-lease-time" { value -1; } } } default "30"; description "Time to hold a GTP session after its UE is disconnected"; } container charging-characteristics { description "Enter the charging-characteristics context"; container home { description "Enter the home context"; leaf bit0 { type boolean; default "false"; description "Set bit 0 in charging characteristics information element (IE) for home UE"; } leaf bit1 { type boolean; default "false"; description "Set bit 1 in charging characteristics information element (IE) for home UE"; } leaf bit2 { type boolean; default "false"; description "Set bit 2 in charging characteristics information element (IE) for home UE"; } leaf bit3 { type boolean; default "false"; description "Set bit 3 in charging characteristics information element (IE) for home UE"; } leaf bit4 { type boolean; default "false"; description "Set bit 4 in charging characteristics information element (IE) for home UE"; } leaf bit5 { type boolean; default "false"; description "Set bit 5 in charging characteristics information element (IE) for home UE"; } leaf bit6 { type boolean; default "false"; description "Set bit 6 in charging characteristics information element (IE) for home UE"; } leaf bit7 { type boolean; default "false"; description "Set bit 7 in charging characteristics information element (IE) for home UE"; } leaf bit8 { type boolean; default "false"; description "Set bit 8 in charging characteristics information element (IE) for home UE"; } leaf bit9 { type boolean; default "false"; description "Set bit 9 in charging characteristics information element (IE) for home UE"; } leaf bit10 { type boolean; default "false"; description "Set bit 10 in charging characteristics information element (IE) for home UE"; } leaf bit11 { type boolean; default "false"; description "Set bit 11 in charging characteristics information element (IE) for home UE"; } leaf bit12 { type boolean; default "false"; description "Set bit 12 in charging characteristics information element (IE) for home UE"; } leaf bit13 { type boolean; default "false"; description "Set bit 13 in charging characteristics information element (IE) for home UE"; } leaf bit14 { type boolean; default "false"; description "Set bit 14 in charging characteristics information element (IE) for home UE"; } leaf bit15 { type boolean; default "false"; description "Set bit 15 in charging characteristics information element (IE) for home UE"; } } // container home container roaming { description "Enter the roaming context"; leaf bit0 { type boolean; default "false"; description "Set bit 0 in charging characteristics information element (IE) for home UE"; } leaf bit1 { type boolean; default "false"; description "Set bit 1 in charging characteristics information element (IE) for home UE"; } leaf bit2 { type boolean; default "false"; description "Set bit 2 in charging characteristics information element (IE) for home UE"; } leaf bit3 { type boolean; default "false"; description "Set bit 3 in charging characteristics information element (IE) for home UE"; } leaf bit4 { type boolean; default "false"; description "Set bit 4 in charging characteristics information element (IE) for home UE"; } leaf bit5 { type boolean; default "false"; description "Set bit 5 in charging characteristics information element (IE) for home UE"; } leaf bit6 { type boolean; default "false"; description "Set bit 6 in charging characteristics information element (IE) for home UE"; } leaf bit7 { type boolean; default "false"; description "Set bit 7 in charging characteristics information element (IE) for home UE"; } leaf bit8 { type boolean; default "false"; description "Set bit 8 in charging characteristics information element (IE) for home UE"; } leaf bit9 { type boolean; default "false"; description "Set bit 9 in charging characteristics information element (IE) for home UE"; } leaf bit10 { type boolean; default "false"; description "Set bit 10 in charging characteristics information element (IE) for home UE"; } leaf bit11 { type boolean; default "false"; description "Set bit 11 in charging characteristics information element (IE) for home UE"; } leaf bit12 { type boolean; default "false"; description "Set bit 12 in charging characteristics information element (IE) for home UE"; } leaf bit13 { type boolean; default "false"; description "Set bit 13 in charging characteristics information element (IE) for home UE"; } leaf bit14 { type boolean; default "false"; description "Set bit 14 in charging characteristics information element (IE) for home UE"; } leaf bit15 { type boolean; default "false"; description "Set bit 15 in charging characteristics information element (IE) for home UE"; } } // container roaming } // container charging-characteristics container ggsn { description "Enter the ggsn context"; container qos { description "Enter the qos context"; leaf arp { type uint32 { range "1..3"; } default "1"; description "Allocation or retention priority"; } container ambr { presence "Enter the 'ambr' context"; description "Enable the ambr context"; leaf down-link { type int32 { range "0..10000000"; } units "kilobps"; description "Downlink Aggregated Maximum Bit Rate (AMBR)"; } leaf up-link { type int32 { range "0..10000000"; } units "kilobps"; description "Uplink Aggregated Maximum Bit Rate (AMBR)"; } } // container ambr container down-link { description "Enter the down-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "2000"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "2000"; description "Maximum Bit Rate (MBR)"; } } // container down-link container up-link { description "Enter the up-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "5000"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "5000"; description "Maximum Bit Rate (MBR)"; } } // container up-link } // container qos } // container ggsn container pgw { description "Enter the pgw context"; container qos { description "Enter the qos context"; leaf arp { type uint32 { range "1..15"; } default "1"; description "Allocation or retention priority"; } leaf qci { type uint32 { range "1..9"; } default "8"; description "QoS Class Identifier (QCI) value that is used in GTP messages"; } container ambr { description "Enter the ambr context"; leaf down-link { type int32 { range "0..10000000"; } units "kilobps"; default "20000"; description "Downlink Aggregated Maximum Bit Rate (AMBR)"; } leaf up-link { type int32 { range "0..10000000"; } units "kilobps"; default "10000"; description "Uplink Aggregated Maximum Bit Rate (AMBR)"; } } // container ambr container down-link { description "Enter the down-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Maximum Bit Rate (MBR)"; } } // container down-link container up-link { description "Enter the up-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Maximum Bit Rate (MBR)"; } } // container up-link } // container qos } // container pgw } // container uplink } // list peer-profile } // container gtp list isa-filter { key "name"; description "Enter the isa-filter list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } } description "ISA filter name"; } leaf type { type enumeration { enum "dsm" { value 0; description "Limit the ISA filter to DSM applications"; } } sros-ext:immutable; default "dsm"; description "Limit what the ISA filter can be used for"; } leaf description { type types-sros:description; description "Text description"; } container ipv4 { description "Enter the ipv4 context"; leaf default-action { type types-filter:isa-filter-default-action; description "Action for non-matching entry"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint16 { range "1..1024"; } } description "ISA filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } container action { presence "Enter the 'action' context"; description "Enable the action context"; choice action { case drop { leaf drop { type empty; description "A packet matching the entry will be dropped"; } } case forward { leaf forward { type empty; description "A packet matching the entry will be forwarded"; } } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type types-sros:http-redirect-url; sros-ext:immutable; description "HTTP URL to which the matching traffic is redirected"; } } // container http-redirect } } } // container action container match { description "Enter the match context"; leaf protocol { type enumeration { enum "icmp" { value 1; description "Match only ICMP packets"; } enum "tcp" { value 6; description "Match only TCP packets"; } enum "udp" { value 17; description "Match only UDP packets"; } enum "gre" { value 47; description "Match only GRE packets"; } } description "Protocol"; } leaf dst-ip { type types-sros:ipv4-prefix; description "Destination IPv4 prefix"; } container dst-port { description "Enter the dst-port context"; choice operator-choices { case equals { leaf equals { type types-sros:tcp-udp-port; description "Exact port number"; } } } } // container dst-port } // container match } // list entry } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf default-action { type types-filter:isa-filter-default-action; description "Action for non-matching entry"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint16 { range "1..1024"; } } description "ISA filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } container action { presence "Enter the 'action' context"; description "Enable the action context"; choice action { case drop { leaf drop { type empty; description "A packet matching the entry will be dropped"; } } case forward { leaf forward { type empty; description "A packet matching the entry will be forwarded"; } } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type types-sros:http-redirect-url; sros-ext:immutable; description "HTTP URL to which the matching traffic is redirected"; } } // container http-redirect } } } // container action container match { description "Enter the match context"; leaf protocol { type enumeration { enum "icmp" { value 1; description "Match only ICMP packets"; } enum "tcp" { value 6; description "Match only TCP packets"; } enum "udp" { value 17; description "Match only UDP packets"; } enum "gre" { value 47; description "Match only GRE packets"; } } description "Protocol"; } leaf dst-ip { type types-sros:ipv6-prefix; description "Destination IPv6 prefix"; } container dst-port { description "Enter the dst-port context"; choice operator-choices { case equals { leaf equals { type types-sros:tcp-udp-port; description "Exact port number"; } } } } // container dst-port } // container match } // list entry } // container ipv6 } // list isa-filter list isa-policer { key "name"; max-elements 128; description "Enter the isa-policer list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } } description "ISA policer name"; } leaf description { type types-sros:description; description "Text description"; } leaf type { type enumeration { enum "single-bucket-bandwidth" { value 0; description "Police traffic using a single bucket"; } enum "dual-bucket-bandwidth" { value 1; description "Police traffic using dual buckets"; } } sros-ext:immutable; default "single-bucket-bandwidth"; description "Policing technique"; } leaf action { type enumeration { enum "permit-deny" { value 0; description "Permit or deny packets based on policer outcome"; } enum "priority-mark" { value 1; description "Mark packets as in or out of profile based on policer outcome"; } } default "permit-deny"; description "Action to be taken for packets that are in-profile and out-of-profile"; } leaf cbs { type types-qos:kilobytes { range "0..131071"; } default "0"; description "Committed burst size"; } leaf mbs { type types-qos:kilobytes { range "0..131071"; } default "0"; description "Maximum Burst Size"; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Peak Information Rate"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Committed information rate"; } } // container adaptation-rule container rate { description "Enter the rate context"; leaf pir { type types-qos:isa-policer-pir-rate; default "max"; description "Peak Information Rate"; } leaf cir { type types-qos:isa-policer-cir-rate; default "0"; description "Committed information rate"; } } // container rate } // list isa-policer container isa-service-chaining { description "Enter the isa-service-chaining context"; leaf mac-prefix { type string { length "8"; pattern "[0-9a-f][02468ace](:[0-9a-f]{2}){2}"; } description "Unique MAC prefix per ISA and per outside service for all NAT-groups configured for Service Chaining"; } list evpn { key "id"; max-elements 1024; description "Enter the evpn list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name { pattern "[0-9]{1,10}"; } } description "Service-id of the EVPN"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EVPN"; } leaf description { type types-sros:description; description "Text description"; } leaf import-mode { type enumeration { enum "none" { value 0; } enum "bridged" { value 1; } enum "routed" { value 2; } } sros-ext:immutable; default "none"; description "Import mode for the EVPN"; } leaf prefix-route-resolution { type enumeration { enum "recursive" { value 0; } enum "non-recursive" { value 1; } } sros-ext:immutable; default "recursive"; description "How prefix routes should be resolved"; } container bgp { description "Enter the bgp context"; container route-distinguisher { description "Enter the route-distinguisher context"; leaf rd { type types-services:vpn-route-distinguisher-or-auto-rd; description "High-order 6 bytes that are used as string to compose VSI-ID for use in NLRI"; } } // container route-distinguisher container route-target { presence "Enter the 'route-target' context"; description "Enable the route-target context"; leaf import { type types-services:route-target-32; description "Extended community name for default import policy for BGP in EVPN service"; } leaf export { type types-services:route-target-32; description "Extended community name for default export policy for BGP in EVPN service"; } } // container route-target } // container bgp container export { description "Enter the export context"; container vxlan { description "Enter the vxlan context"; leaf vni { type uint32 { range "1..16777215"; } description "VNI of the VXLAN created by the EVPN service"; } } // container vxlan container gateway-address-range { presence "Enter the 'gateway-address-range' context"; description "Enable the gateway-address-range context"; leaf start { type types-sros:ipv4-unicast-address; description "Start of the gateway address range (V4) for this EVPN service"; } leaf end { type types-sros:ipv4-unicast-address; description "End of the gateway address range (V4) for this EVPN service"; } } // container gateway-address-range container advertise-pools { description "Enter the advertise-pools context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NAT pool route advertisement"; } list pool { key "router-instance name"; description "Add a list entry for pool"; leaf router-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64 { pattern ".{1,32}" { error-message "vRtrName needs to be extended to 64 to support this name"; } } } description "Router-instance of the NAT pool"; } leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of the NAT pool"; } } // list pool } // container advertise-pools } // container export } // list evpn list vas-filter { key "name"; description "Enter the vas-filter list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "VAS filter name"; } leaf description { type types-sros:description; description "Text description"; } list entry { key "id"; max-elements 64; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-filter:limited-entry-id; } description "VAS filter entry id"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the VAS filter"; } leaf description { type types-sros:description; description "Text description"; } container match { description "Enter the match context"; leaf protocol { type enumeration { enum "tcp-udp" { value -2; description "TCP & UDP"; } enum "none" { value -1; description "Disable matching by IP protocol"; } enum "icmp" { value 1; description "ICMP"; } enum "tcp" { value 6; description "TCP"; } enum "udp" { value 17; description "UDP"; } } default "none"; description "IP protocol to match the VAS filter"; } leaf foreign-ip { type union { type types-sros:ipv4-unicast-prefix; type types-sros:ipv4-unicast-address; } description "Foreign IP address or prefix to match in this VAS filter entry"; } leaf foreign-port { type types-sros:tcp-udp-port-non-zero; description "Foreign TCP or UDP port to match in this VAS filter entry"; } } // container match list action { key "direction"; description "Enter the action list instance"; leaf direction { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "upstream" { value 1; } enum "downstream" { value 2; } } } description "Direction for the action in a VAS filter entry"; } leaf fail-action { type types-filter:filter-default-action; default "accept"; description "Fail action when sf-ip is not resolved or no forward action specified"; } container forward { presence "Enter the 'forward' context"; description "Enable the forward context"; leaf sf-ip { type types-sros:ip-unicast-without-local-address; description "Forwarding SF (Service Forward) IP address for the action in VAS filter entry"; } leaf svc { type types-services:service-name { pattern "[0-9]{1,10}"; } description "EVPN service used for forwarding packets"; } leaf esi { type types-services:ethernet-segment-id { pattern "[0-9a-fA-F]{2}([:\\- ][0-9a-fA-F]{2}){9}"; } default "00:00:00:00:00:00:00:00:00:00"; description "ESI (Ethernet Segment Identifier) for the action in a VAS filter"; } } // container forward container insert-nsh { description "Enter the insert-nsh context"; container svc-path { presence "Enter the 'svc-path' context"; description "Enable the svc-path context"; leaf path-id { type uint32 { range "1..16777215"; } description "Path ID used to construct a NSH for the action in a VAS filter entry"; } leaf svc-index { type uint32 { range "1..255"; } description "Service index used to construct a NSH for the action in a VAS filter entry"; } } // container svc-path container meta-data { description "Enter the meta-data context"; choice type { case opaque-data { leaf opaque-data { type string { length "10|18|26|34"; } description "Opaque meta-data for the NSH"; } } case insert-subscriber-id { leaf insert-subscriber-id { type empty; description "Insert the subscriber-id in the NSH"; } } } } // container meta-data } // container insert-nsh } // list action } // list entry } // list vas-filter } // container isa-service-chaining list local-user-db { key "name"; max-elements 127; description "Enter the local-user-db list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Local user database name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the local user database"; } leaf description { type types-sros:description; description "Text description"; } container ipoe { description "Enter the ipoe context"; leaf-list match-list { type enumeration { enum "circuit-id" { value 1; } enum "mac" { value 2; } enum "remote-id" { value 3; } enum "sap-id" { value 4; } enum "service-id" { value 5; } enum "string" { value 6; } enum "system-id" { value 7; } enum "option60" { value 8; } enum "encap-tag-range" { value 9; } enum "dual-stack-remote-id" { value 10; } enum "derived-id" { value 11; } enum "ip" { value 12; } enum "encap-tag-separate-range" { value 13; } } max-elements 4; ordered-by user; description "IPoE host match type"; } list mask { key "type"; description "Enter the mask list instance"; leaf type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "circuit-id" { value 1; } enum "remote-id" { value 3; } enum "sap-id" { value 4; } enum "string" { value 6; } enum "system-id" { value 7; } enum "option60" { value 8; } } } description "Matching type to identify a host"; } container prefix { presence "Enter the 'prefix' context"; description "Enable the prefix context"; choice prefix { case length { leaf length { type uint32 { range "1..127"; } description "Prefix length"; } } case string { leaf string { type string { length "1..127"; } description "Prefix string"; } } } } // container prefix container suffix { presence "Enter the 'suffix' context"; description "Enable the suffix context"; choice suffix { case length { leaf length { type uint32 { range "1..127"; } description "Suffix length"; } } case string { leaf string { type string { length "1..127"; pattern "[^*].*"; } description "Suffix string"; } } } } // container suffix } // list mask list host { key "host-name"; description "Enter the host list instance"; leaf host-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Host key"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the host"; } leaf retail-service-id { type types-services:service-id-maf; description "Configure the retail service-id"; } leaf rip-policy { type types-sros:named-item; description "RIP policy"; } container host-identification { description "Enter the host-identification context"; leaf derived-id { type types-sros:display-string; description "Derived ID string"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address"; } leaf sap-id { type types-sros:display-string; description "SAP ID"; } leaf ip-prefix { type types-sros:ip-prefix-with-host-bits; description "IP interface name"; } leaf string { type types-sros:display-string; description "VSO string"; } leaf service-id { type types-services:service-id-maf; description "Service ID"; } leaf system-id { type types-sros:display-string; description "System ID"; } container circuit-id { description "Enter the circuit-id context"; choice format { case ascii-string { leaf ascii-string { type string { length "1..127"; } description "Circuit ID as ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "Circuit ID as hexadecimal string"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice format { case ascii-string { leaf ascii-string { type string { length "1..255"; } description "Remote ID as ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..512"; } description "Remote ID as hexadecimal string"; } } } } // container remote-id container option60 { description "Enter the option60 context"; choice format { case ascii-string { leaf ascii-string { type types-sros:named-item; description "Option 60 as ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..64"; } description "Option 60 as hexadecimal string"; } } } } // container option60 container encap-tag-range { presence "Enter the 'encap-tag-range' context"; description "Enable the encap-tag-range context"; leaf from { type types-sros:atm-or-vlan-encap; description "Start tag"; } leaf to { type types-sros:atm-or-vlan-encap; description "End tag"; } } // container encap-tag-range container encap-tag-separate-range { description "Enter the encap-tag-separate-range context"; container outer { description "Enter the outer context"; leaf start { type int32 { range "0..4094"; } description "Lower bound of the outer encapsulation tag range"; } leaf end { type int32 { range "0..4094"; } description "Upper bound of the outer encapsulation tag range"; } } // container outer container inner { description "Enter the inner context"; leaf start { type int32 { range "0..4094"; } description "Lower bound of the inner encapsulation tag range"; } leaf end { type int32 { range "0..4094"; } description "Upper bound of the inner encapsulation tag range"; } } // container inner } // container encap-tag-separate-range } // container host-identification container authentication { description "Enter the authentication context"; leaf radius-auth-policy { type types-sros:named-item; description "Host authentication policy"; } leaf gx-policy { type types-sros:named-item; description "Diameter application policy"; } leaf nasreq-auth-policy { type types-sros:named-item; description "Diameter NASREQ application policy to use for authentication"; } leaf auth-domain-name { type types-sros:named-item; description "Authentication domain name for this host"; } } // container authentication container radius-accounting-policy { description "Enter the radius-accounting-policy context"; leaf name { type types-sros:named-item; description "RADIUS accounting policy for generating accounting information"; } leaf duplicate { type types-sros:named-item; description "RADIUS accounting policy for generating duplicate accounting information"; } } // container radius-accounting-policy container gtp-interface { presence "Enter the 'gtp-interface' context"; description "Enable the gtp-interface context"; leaf name { type types-sros:named-item; description "IP interface name"; } leaf service-id { type types-services:service-id-maf; description "Service ID"; } } // container gtp-interface container identification { presence "Enter the 'identification' context"; description "Enable the identification context"; leaf option-number { type uint32 { range "1..254"; } sros-ext:immutable; default "254"; description "The option number used to return the strings in case the LUDB is linked to a DHCP server."; } leaf ancp-string { type string { length "1..63"; } description "ANCP string"; } leaf category-map-name { type types-sros:named-item; description "Category map name"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf sla-profile-string { type string { length "1..32"; } description "SLA profile string"; } leaf sub-profile-string { type string { length "1..32"; } description "Sub profile string"; } leaf subscriber-id { type types-sros:named-item-64; description "Subscriber ID"; } leaf spi-sharing-group-id { type int32 { range "0..65535"; } description "SPI sharing group ID"; } } // container identification container match-radius-proxy-cache { description "Enter the match-radius-proxy-cache context"; leaf fail-action { type enumeration { enum "continue" { value 1; } enum "drop" { value 2; } } default "drop"; description "Action when no match is found"; } leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } container match { description "Enter the match context"; choice format { default "mac"; case mac { leaf mac { type boolean; default "true"; description "Match MAC address of DHCP client"; } } case circuit-id { leaf circuit-id { type boolean; description "Match circuit ID in DHCP Option 82"; } } case remote-id { leaf remote-id { type boolean; description "Match remote ID in DHCP Option 82"; } } case option { leaf ipv4-option { type uint8 { range "1..254"; } description "DHCP option number"; } leaf ipv6-option { type uint32 { range "1..65535"; } description "DHCPv6 option number"; } } } } // container match container server { presence "Enter the 'server' context"; description "Enable the server context"; leaf service { type types-services:external-service-id; description "Service ID"; } leaf name { type types-sros:named-item; description "Server Name"; } } // container server } // container match-radius-proxy-cache container msap-defaults { description "Enter the msap-defaults context"; leaf policy { type types-sros:named-item; description "MSAP policy"; } leaf service { type types-services:service-id-maf; description "The service id."; } container group-interface { presence "Enter the 'group-interface' context"; description "Enable the group-interface context"; leaf name { type types-sros:named-item; description "IP interface name"; } choice parameters { case prefix { leaf prefix { type enumeration { enum "port-id" { value 2; } } description "prefix."; } } case suffix { leaf suffix { type enumeration { enum "port-id" { value 2; } } description "Suffix for the group interface"; } } } } // container group-interface } // container msap-defaults container wpp { description "Enter the wpp context"; leaf restore-to-initial-on-disconnect { type enumeration { enum "restore" { value 1; } enum "no-restore" { value 2; } } description "Restore initial profiles after a host has disconnected"; } container portal { description "Enter the portal context"; choice portal { case portal { leaf router-instance { type union { type enumeration { enum "base" { value 0; } } type types-services:external-service-id; } default "base"; description "The virtual router instance of the WPP portal for the hosts"; } leaf name { type types-sros:named-item; description "Name for the WPP portal of the hosts"; } } case portal-group { leaf portal-group { type types-sros:named-item; description "WPP portal group for this interface"; } } } } // container portal container initial { description "Enter the initial context"; leaf sub-profile { type types-sros:named-item; description "Initial subscriber profile"; } leaf sla-profile { type types-sros:named-item; description "Initial SLA profile"; } } // container initial } // container wpp container ipv4 { description "Enter the ipv4 context"; leaf gi-address { type types-sros:ipv4-unicast-address; description "The DHCP gi-address of this host."; } leaf server { type types-sros:ipv4-unicast-address; description "IPv4 address of the DHCP server"; } container address { description "Enter the address context"; choice address { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IPv4 host address"; } } case gi-address { leaf gi-address { type enumeration { enum "subnet-scope" { value 0; } enum "pool-scope" { value 1; } } description "Use gi-address to select a pool with the given scope"; } } case pool { container pool { presence "Enter the 'pool' context"; description "Enable the pool context"; leaf primary { type types-sros:named-item; description "Primary pool name"; } leaf secondary { type types-sros:named-item; description "Secondary pool name"; } leaf delimiter { type string { length "1"; } description "Delimiter character to combine primary and secondary pool names"; } } // container pool } case use-pool-from-client { container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type string { length "1"; } description "Delimiter character to combine primary and secondary pool names"; } } // container use-pool-from-client } } } // container address list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } } description "DHCP option to send identification strings to client"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration"; } } case ipv4-address { leaf-list ipv4-address { type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option."; } } } } // list option } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf address { type types-sros:ipv6-unicast-address; description "IPv6 address of this host"; } leaf address-pool { type types-sros:named-item; description "IPv6 address pool name"; } leaf delegated-prefix { type types-sros:ipv6-unicast-prefix; description "IPv6 delegated prefix of this host"; } leaf delegated-prefix-length { type uint32 { range "48..64"; } description "Delegated prefix length"; } leaf delegated-prefix-pool { type types-sros:named-item; description "Delegated prefix pool"; } leaf slaac-prefix { type types-sros:ipv6-unicast-prefix; description "IPv6 SLAAC prefix of this host"; } leaf slaac-prefix-pool { type types-sros:named-item; description "IPv6 SLAAC prefix pool of this host"; } leaf router-advertisement-policy { type types-sros:named-item; description "IPv6 router advertisement policy"; } leaf server { type types-sros:ipv6-unicast-address; description "IPv6 address of the DHCP server"; } leaf link-address { type types-sros:ipv6-unicast-address; description "The DHCP Relay link-address."; } container timers { description "Enter the timers context"; leaf preferred-lifetime { type union { type types-sros:time-duration { range "300..315446399"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Time for a lease to remain preferred"; } leaf rebind { type types-sros:time-duration { range "0..1209600"; } units "seconds"; description "Rebind timer (T2)"; } leaf renew { type types-sros:time-duration { range "0..604800"; } units "seconds"; description "Renew timer (T1)"; } leaf valid-lifetime { type union { type types-sros:time-duration { range "300..315446399"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Time for a lease to remain valid"; } } // container timers list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "23"; } type enumeration { enum "dns-server" { value 23; } } } } description "The number of the DHCPv6 option."; } choice value { description "The value of the DHCP option."; case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } } } // list option } // container ipv6 list mld-import { key "policy-name"; max-elements 14; description "Add a list entry for mld-import"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "MLD import policy for this host"; } } // list mld-import container to-client-options { description "Enter the to-client-options context"; list ipv4-option { key "number"; description "Enter the ipv4-option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } } description "DHCP option to send identification strings to client"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration"; } } case ipv4-address { leaf-list ipv4-address { type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list ipv4-option list ipv6-option { key "number"; description "Enter the ipv6-option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } } description "DHCP option number"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list ipv6-option } // container to-client-options container to-server-options { description "Enter the to-server-options context"; list ipv6-option { key "number"; description "Enter the ipv6-option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } } description "DHCP option number"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list ipv6-option } // container to-server-options } // list host } // container ipoe container ppp { description "Enter the ppp context"; leaf-list match-list { type enumeration { enum "circuit-id" { value 1; } enum "mac" { value 2; } enum "remote-id" { value 3; } enum "user-name" { value 4; } enum "service-name" { value 5; } enum "sap-id" { value 6; } enum "encap-tag-range" { value 7; } enum "derived-id" { value 8; } enum "encap-tag-separate-range" { value 9; } } max-elements 3; ordered-by user; description "PPP host match type"; } list mask { key "type"; description "Enter the mask list instance"; leaf type { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "circuit-id" { value 1; } enum "remote-id" { value 3; } enum "user-name" { value 4; } enum "service-name" { value 5; } enum "sap-id" { value 6; } } } description "Matching type to identify a host"; } container prefix { presence "Enter the 'prefix' context"; description "Enable the prefix context"; choice prefix { case length { leaf length { type uint32 { range "1..127"; } description "Prefix length"; } } case string { leaf string { type string { length "1..127"; } description "Prefix string"; } } } } // container prefix container suffix { presence "Enter the 'suffix' context"; description "Enable the suffix context"; choice suffix { case length { leaf length { type uint32 { range "1..127"; } description "Suffix length"; } } case string { leaf string { type string { length "1..127"; pattern "[^*].*"; } description "Suffix string"; } } } } // container suffix } // list mask list host { key "host-name"; description "Enter the host list instance"; leaf host-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Host key"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the host"; } leaf retail-service-id { type types-services:service-id-maf; description "Configure the retail service-id"; } leaf rip-policy { type types-sros:named-item; description "RIP policy"; } leaf pado-delay { type types-sros:time-duration { range "1..30"; } units "deciseconds"; description "Delay timeout before sending a PADO"; } leaf steering-profile { type types-sros:named-item; description "Steering profile"; } container host-identification { description "Enter the host-identification context"; leaf derived-id { type types-sros:display-string; description "Derived ID string"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address"; } leaf sap-id { type types-sros:display-string; description "SAP ID"; } leaf service-name { type types-sros:display-string; description "Administrative service name"; } container circuit-id { description "Enter the circuit-id context"; choice format { case ascii-string { leaf ascii-string { type string { length "1..127"; } description "Circuit ID as ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "Circuit ID as hexadecimal string"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice format { case ascii-string { leaf ascii-string { type string { length "1..255"; } description "Remote ID as ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..512"; } description "Remote ID as hexadecimal string"; } } } } // container remote-id container encap-tag-range { presence "Enter the 'encap-tag-range' context"; description "Enable the encap-tag-range context"; leaf from { type types-sros:atm-or-vlan-encap; description "Start tag"; } leaf to { type types-sros:atm-or-vlan-encap; description "End tag"; } } // container encap-tag-range container encap-tag-separate-range { description "Enter the encap-tag-separate-range context"; container outer { description "Enter the outer context"; leaf start { type int32 { range "0..4094"; } description "Lower bound of the outer encapsulation tag range"; } leaf end { type int32 { range "0..4094"; } description "Upper bound of the outer encapsulation tag range"; } } // container outer container inner { description "Enter the inner context"; leaf start { type int32 { range "0..4094"; } description "Lower bound of the inner encapsulation tag range"; } leaf end { type int32 { range "0..4094"; } description "Upper bound of the inner encapsulation tag range"; } } // container inner } // container encap-tag-separate-range container user-name { presence "Enter the 'user-name' context"; description "Enable the user-name context"; leaf name { type types-sros:display-string { length "1..253"; } description "Full or part of PPP user name as specified with the format."; } leaf format { type enumeration { enum "full" { value 1; } enum "no-domain" { value 2; } enum "domain-only" { value 3; } } default "full"; description "User name format."; } } // container user-name } // container host-identification container authentication { description "Enter the authentication context"; leaf radius-auth-policy { type types-sros:named-item; description "Host authentication policy"; } leaf gx-policy { type types-sros:named-item; description "Diameter application policy"; } leaf nasreq-auth-policy { type types-sros:named-item; description "Diameter NASREQ application policy to use for authentication"; } leaf padi-auth-policy { type types-sros:named-item; description "Authentication policy name"; } leaf pre-auth-policy { type types-sros:named-item; description "Pre-authentication policy of this host"; } leaf user-db { type types-sros:named-item; description "Local user DB to use for PPP PAP/CHAP authentication"; } } // container authentication container lns-interface { presence "Enter the 'lns-interface' context"; description "Enable the lns-interface context"; leaf name { type types-sros:named-item; description "IP interface name"; } leaf service-id { type types-services:service-id-maf; description "Service ID"; } } // container lns-interface container radius-accounting-policy { description "Enter the radius-accounting-policy context"; leaf name { type types-sros:named-item; description "RADIUS accounting policy for generating accounting information"; } leaf duplicate { type types-sros:named-item; description "RADIUS accounting policy for generating duplicate accounting information"; } } // container radius-accounting-policy container identification { presence "Enter the 'identification' context"; description "Enable the identification context"; leaf option-number { type uint32 { range "1..254"; } sros-ext:immutable; default "254"; description "The option number used to return the strings in case the LUDB is linked to a DHCP server."; } leaf ancp-string { type string { length "1..63"; } description "ANCP string"; } leaf category-map-name { type types-sros:named-item; description "Category map name"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf sla-profile-string { type string { length "1..32"; } description "SLA profile string"; } leaf sub-profile-string { type string { length "1..32"; } description "Sub profile string"; } leaf subscriber-id { type types-sros:named-item-64; description "Subscriber ID"; } leaf spi-sharing-group-id { type int32 { range "0..65535"; } description "SPI sharing group ID"; } } // container identification container msap-defaults { description "Enter the msap-defaults context"; leaf policy { type types-sros:named-item; description "MSAP policy"; } leaf service { type types-services:service-id-maf; description "The service id."; } container group-interface { presence "Enter the 'group-interface' context"; description "Enable the group-interface context"; leaf name { type types-sros:named-item; description "IP interface name"; } choice parameters { case prefix { leaf prefix { type enumeration { enum "port-id" { value 2; } } description "prefix."; } } case suffix { leaf suffix { type enumeration { enum "port-id" { value 2; } } description "Suffix for the group interface"; } } } } // container group-interface } // container msap-defaults container access-loop-information { description "Enter the access-loop-information context"; container circuit-id { presence "Enter the 'circuit-id' context"; description "Enable the circuit-id context"; choice format { case ascii-string { leaf ascii-string { type string { length "1..63"; } description "Circuit ID as an ASCII string"; } } case sap-id { leaf sap-id { status obsolete; type boolean; description "SAP ID as circuit ID"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use sap-id as circuit-id."; } } } } // container circuit-id container remote-id { presence "Enter the 'remote-id' context"; description "Enable the remote-id context"; choice format { case ascii-string { leaf ascii-string { type string { length "1..63"; } description "Remote-id as an ASCII string."; } } case mac { leaf mac { status obsolete; type boolean; description "Use MAC address as remote ID"; } } case use-mac-address { leaf use-mac-address { type empty; description "Use MAC address as remote-id."; } } } } // container remote-id } // container access-loop-information container l2tp { description "Enter the l2tp context"; container group { presence "Enter the 'group' context"; description "Enable the group context"; leaf name { type string { length "1..63"; } description "Tunnel group name"; } leaf service-id { type types-services:external-service-id; description "Service-id for group."; } } // container group } // container l2tp container password { description "Enter the password context"; choice password { case pap { leaf pap { type types-sros:encrypted-leaf { length "1..115"; } description "PAP protocol."; } } case chap { leaf chap { type types-sros:encrypted-leaf { length "1..115"; } description "CHAP protocol"; } } case ignore { leaf ignore { type empty; description "Ignore."; } } } } // container password container access-loop-encapsulation { presence "Enter the 'access-loop-encapsulation' context"; description "Enable the access-loop-encapsulation context"; leaf rate-down { type uint32 { range "1..100000"; } units "kilobps"; description "Last mile link downstream rate in the access loop"; } container encap-offset { description "Enter the encap-offset context"; leaf type { type enumeration { enum "pppoa-llc" { value 1; } enum "pppoa-null" { value 2; } enum "pppoeoa-llc" { value 3; } enum "pppoeoa-llc-fcs" { value 4; } enum "pppoeoa-llc-tagged" { value 5; } enum "pppoeoa-llc-tagged-fcs" { value 6; } enum "pppoeoa-null" { value 7; } enum "pppoeoa-null-fcs" { value 8; } enum "pppoeoa-null-tagged" { value 9; } enum "pppoeoa-null-tagged-fcs" { value 10; } enum "ipoa-llc" { value 11; } enum "ipoa-null" { value 12; } enum "ipoeoa-llc" { value 13; } enum "ipoeoa-llc-fcs" { value 14; } enum "ipoeoa-llc-tagged" { value 15; } enum "ipoeoa-llc-tagged-fcs" { value 16; } enum "ipoeoa-null" { value 17; } enum "ipoeoa-null-fcs" { value 18; } enum "ipoeoa-null-tagged" { value 19; } enum "ipoeoa-null-tagged-fcs" { value 20; } enum "pppoe" { value 21; } enum "pppoe-tagged" { value 22; } enum "ipoe" { value 23; } enum "ipoe-tagged" { value 24; } } description "Egress encapsulation type"; } } // container encap-offset } // container access-loop-encapsulation container ipv4 { description "Enter the ipv4 context"; leaf ignore-df-bit { type boolean; default "false"; description "Ignore the DF bit in the IPv4 header when fragmenting"; } container address { description "Enter the address context"; choice address { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IPv4 host address"; } leaf prefix-length { type uint32 { range "1..32"; } default "32"; description "IPv4 host address prefix length, a value different from 32 will be used during IPCP subnet negotiation when enabled."; } } case gi-address { leaf gi-address { type enumeration { enum "subnet-scope" { value 0; } enum "pool-scope" { value 1; } } description "Use gi-address to select a pool with the given scope"; } } case pool { container pool { presence "Enter the 'pool' context"; description "Enable the pool context"; leaf primary { type types-sros:named-item; description "Primary pool name"; } leaf secondary { type types-sros:named-item; description "Secondary pool name"; } leaf delimiter { type string { length "1"; } description "Delimiter character to combine primary and secondary pool names"; } } // container pool } case use-pool-from-client { container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type string { length "1"; } description "Delimiter character to combine primary and secondary pool names"; } } // container use-pool-from-client } } } // container address list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } } description "DHCP option to send identification strings to client"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration"; } } case ipv4-address { leaf-list ipv4-address { type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option."; } } } } // list option } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf address { type types-sros:ipv6-unicast-address; description "IPv6 address of this host"; } leaf address-pool { type types-sros:named-item; description "IPv6 address pool name"; } leaf delegated-prefix { type types-sros:ipv6-unicast-prefix; description "IPv6 delegated prefix of this host"; } leaf delegated-prefix-length { type uint32 { range "48..64"; } description "Delegated prefix length"; } leaf delegated-prefix-pool { type types-sros:named-item; description "Delegated prefix pool"; } leaf slaac-prefix { type types-sros:ipv6-unicast-prefix; description "IPv6 SLAAC prefix of this host"; } leaf slaac-prefix-pool { type types-sros:named-item; description "IPv6 SLAAC prefix pool of this host"; } leaf router-advertisement-policy { type types-sros:named-item; description "IPv6 router advertisement policy"; } leaf force-ipv6cp { type boolean; default "false"; description "forces ipv6 control protocol."; } container timers { description "Enter the timers context"; leaf preferred-lifetime { type union { type types-sros:time-duration { range "300..315446399"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Time for a lease to remain preferred"; } leaf rebind { type types-sros:time-duration { range "0..1209600"; } units "seconds"; description "Rebind timer (T2)"; } leaf renew { type types-sros:time-duration { range "0..604800"; } units "seconds"; description "Renew timer (T1)"; } leaf valid-lifetime { type union { type types-sros:time-duration { range "300..315446399"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Time for a lease to remain valid"; } } // container timers list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "23"; } type enumeration { enum "dns-server" { value 23; } } } } description "The number of the DHCPv6 option."; } choice value { description "The value of the DHCP option."; case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } } } // list option } // container ipv6 list mld-import { key "policy-name"; max-elements 14; description "Add a list entry for mld-import"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "MLD import policy for this host"; } } // list mld-import container to-client-options { description "Enter the to-client-options context"; list ipv6-option { key "number"; description "Enter the ipv6-option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } } description "DHCP option number"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list ipv6-option } // container to-client-options } // list host } // container ppp } // list local-user-db container vrgw { description "Enter the vrgw context"; container lanext { description "Enter the lanext context"; leaf router-target-as-number { type uint16 { range "1..65535"; } description "AS number that derives the route target and distinguisher for vRGW LAN Extension bridge domains"; } } // container lanext list brg-profile { key "brg-profile-name"; max-elements 16; description "Enter the brg-profile list instance"; leaf brg-profile-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "A brg profile name"; } leaf description { type types-sros:description; description "Text description"; } leaf sla-profile-string { type types-sros:named-item-or-empty; description "Default SLA profile string on BRG level, overridable via AAA"; } leaf sub-profile-string { type types-sros:named-item-or-empty; description "Default subscriber profile string on BRG level, overridable via AAA"; } leaf hold-time { type types-sros:time-duration { range "0|30..2592000"; } units "seconds"; default "0"; description "The time to hold on to a BRG after it went down"; } leaf initial-hold-time { type types-sros:time-duration { range "0..900"; } units "seconds"; default "300"; description "The minimum time to hold on to a BRG after creation, even if no devices are linked to it yet"; } leaf uplink-initial-wait { type types-sros:time-duration { range "10..300"; } units "seconds"; default "30"; description "Time needed in case of a non-routed uplink to block host set-up while waiting for the uplink to become operational"; } container connectivity-verification { description "Enter the connectivity-verification context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of BRG connectivity verification"; } leaf count { type uint32 { range "1..5"; } description "Total number of consecutive unanswered messages that should be sent before the BRG is considered disconnected"; } leaf timeout { type uint32 { range "5..60"; } description "Timeout after which a message is considered unanswered"; } leaf retry-time { type uint32 { range "300..3600"; } description "Time the system will wait after a successful connectivity check before starting a new check"; } } // container connectivity-verification list radius-proxy-server { key "router-instance name"; max-elements 4; description "Add a list entry for radius-proxy-server"; leaf router-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:service-name; } description "router-instance"; } leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "server-name"; } } // list radius-proxy-server container home-pool { description "Enter the home-pool context"; leaf lease-time { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "21600"; description "The lease time."; } leaf standby-ip-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "21600"; description "The lifetime of the standby IP addresses"; } container subnet { description "Enter the subnet context"; leaf prefix { type types-sros:ipv4-prefix-with-host-bits; default "192.168.0.1/24"; description "Prefix and default-gateway to be used inside the home"; } leaf start { type types-sros:ipv4-unicast-address; default "192.168.0.2"; description "Start address of the range used for dynamic IP address allocation"; } leaf end { type types-sros:ipv4-unicast-address; default "192.168.0.254"; description "End address of the range used for dynamic IP address allocation"; } } // container subnet list option { key "number"; description "Enter the option list instance"; leaf number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } } description "DHCP option to send identification strings to client"; } choice value { description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option ASCII string."; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option as hexadecimal string."; } } case netbios-node-type { leaf netbios-node-type { type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type."; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration."; } } case ipv4-address { leaf-list ipv4-address { type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses."; } } case empty { leaf empty { type empty; description "Empty DHCP option."; } } } } // list option } // container home-pool container radius-authentication { description "Enter the radius-authentication context"; leaf server-policy { type types-sros:named-item; description "Radius servers to be used for authentication"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "Password used for authentication"; } } // container radius-authentication } // list brg-profile } // container vrgw container wlan-gw { description "Enter the wlan-gw context"; leaf virtual-chassis-identifier { type types-sros:string-not-all-spaces { length "1..16"; } description "WLAN Gateway virtual chassis ID or dual homing key"; } container queries { description "Enter the queries context"; list ue { key "name"; max-elements 1024; description "Enter the ue list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Textual identification for the UE query"; } leaf bridge-domain { type uint32 { range "0..4294967294"; } description "When specified, the query will only return UEs in this Bridge Domain"; } leaf mac-address { type types-sros:mac-address; description "When specified, the query will only return the UE having this MAC address"; } leaf vlan { type types-sros:qtag-full-range; description "When specified, the query will only return UEs for which the VLAN tag is present in the traffic received from the UE"; } container address { description "Enter the address context"; leaf type { type types-wlangw:ue-address-type; description "When specified, the query will only return UEs with this address type"; } leaf ipv4 { type types-sros:ipv4-unicast-address; description "When specified, the query will only return UEs having this IPv4 address"; } leaf dhcp6-na { type types-sros:ipv6-unicast-without-local-address; description "When specified, the query will only return UEs having this DHCPv6 address"; } leaf slaac { type types-sros:ipv6-unicast-without-local-address; description "When specified, the query will only return UEs having this SLAAC prefix"; } } // container address container connection-state { presence "Enter the 'connection-state' context"; description "Enable the connection-state context"; leaf data-triggered { type boolean; default "true"; description "Controls whether the query returns UEs in data-triggered state"; } leaf dhcp-triggered { type boolean; default "true"; description "Controls whether the query returns UEs in DHCP-triggered state"; } leaf ip-assigned { type boolean; default "true"; description "Controls whether the query returns UEs in IP-assigned state"; } leaf authorized-only { type boolean; default "true"; description "Controls whether the query returns UEs in authorized-only state"; } leaf ip-assigned-authorized { type boolean; default "true"; description "Controls whether the query returns UEs in IP-assigned-authorized state"; } leaf already-signed-in { type boolean; default "true"; description "Controls whether the query returns UEs in already-signed-in state"; } leaf portal { type boolean; default "true"; description "Controls whether the query returns UEs in portal state"; } leaf dsm { type boolean; default "true"; description "Controls whether the query returns UEs in DSM state"; } leaf esm { type boolean; default "true"; description "Controls whether the query returns UEs in ESM state"; } leaf l2 { type boolean; default "true"; description "Controls whether the query returns UEs in Layer-2 Wholesale state"; } leaf gtp-authorized { type boolean; default "true"; description "Controls whether the query returns UEs in GTP-authorized state"; } leaf delete-pending { type boolean; default "true"; description "Controls whether the query returns UEs in delete-pending state"; } leaf cross-connect { type boolean; default "true"; description "Controls whether the query returns UEs in cross-connect state"; } } // container connection-state container tunnel { description "Enter the tunnel context"; leaf router-instance { type string; description "When specified, the query will only return UEs on this tunnel router"; } leaf remote-address { type types-sros:ip-address; description "When specified, the query will only return UEs with this IP address as remote tunnel endpoint"; } leaf local-address { type types-sros:ip-address; description "When specified, the query will only return UEs with this IP address as local tunnel endpoint"; } leaf encapsulation { type types-wlangw:encapsulation; description "When specified, the query will only return UEs for which the received traffic is encapsulated with this type"; } } // container tunnel container wlan-gw-group { presence "Enter the 'wlan-gw-group' context"; description "Enable the wlan-gw-group context"; leaf id { type types-isa:wlan-gw-group-id; description "The identifier of the WLAN-GW ISA group"; } leaf member { type types-nat:bb-group-member { range "1..1024"; } description "The member of the WLAN-GW ISA group"; } } // container wlan-gw-group } // list ue list tunnel { key "name"; max-elements 1024; description "Enter the tunnel list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Textual identification for the tunnel query"; } leaf calculate-counts { type boolean; default "false"; description "Whether the system calculates the current number of tunnels matching this query"; } leaf access-point-mac-address-learning-status { type enumeration { enum "failed" { value 1; } enum "succeeded" { value 2; } } description "When specified, the query will only return tunnels where the learning of the Access Point MAC address had the specified result"; } container encapsulation { presence "Enter the 'encapsulation' context"; description "Enable the encapsulation context"; leaf gre { type boolean; default "true"; description "Controls whether the query returns Soft GRE tunnels"; } leaf l2tp { type boolean; default "true"; description "Controls whether the query returns Soft L2TPv3 tunnels"; } leaf l2 { type boolean; default "true"; description "Controls whether the query returns IEEE 802.1Q and IEEE 802.1ad tunnels"; } leaf vxlan { type boolean; default "true"; description "Controls whether the query returns VXLAN tunnels"; } } // container encapsulation container l2 { description "Enter the l2 context"; leaf sap { type types-sros:sap; description "When specified, the query will only return a Layer-2 tunnel if the value matches the tunnel's L2-AP Access Point"; } leaf inner-vlan { type types-sros:qtag-full-range; description "When specified, the query will only return a Layer-2 tunnel if the value matches the tunnel's inner tag (customer tag, ethertype 0x8100) in case of qinq encapsulation"; } leaf outer-vlan { type types-sros:qtag-full-range; description "When specified, the query will only return a Layer-2 tunnel if the value matches the tunnel's VLAN tag in case of IEEE 802.1Q encapsulation, or the outer tag (service tag, ethertype 0x88a8) in case of IEEE 802.1ad encapsulation"; } } // container l2 container l3 { description "Enter the l3 context"; leaf router-instance { type string; description "When specified, the query will only return tunnels on this router-instance"; } leaf remote-address { type types-sros:ip-address; description "When specified, the query will only return tunnels with this IP address as remote endpoint"; } leaf local-address { type types-sros:ip-address; description "When specified, the query will only return tunnels with this IP address as local endpoint"; } leaf address-type { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 2; } } description "When specified, the query will only return tunnels where the IP layer has this address type"; } } // container l3 container ues { description "Enter the ues context"; leaf maximum { type uint32; description "The query will only return tunnels where the number of UEs is lower than or equal to this value. When a UE state filter is active, the maximum is enforced using the UE count after the state filter."; } leaf minimum { type uint32; default "1"; description "The query will only return tunnels where the number of UEs is higher than or equal to this value. When a UE state filter is active the minimum is enforced using the UE count after the state filter."; } container state { presence "Enter the 'state' context"; description "Enable the state context"; leaf migrant { type boolean; default "true"; description "Controls whether the query takes the number of migrant UEs in a tunnel into account"; } leaf dsm { type boolean; default "true"; description "Controls whether the query takes the number of DSM UEs in a tunnel into account"; } leaf esm { type boolean; default "true"; description "Controls whether the query takes the number of ESM UEs in a tunnel into account"; } leaf l2 { type boolean; default "true"; description "Controls whether the query takes the number of Layer-2 Wholesale UEs in a tunnel into account"; } leaf cross-connect { type boolean; default "true"; description "Controls whether the query takes the number of cross-connect UEs in a tunnel into account"; } } // container state } // container ues } // list tunnel } // container queries } // container wlan-gw } // container subscriber-mgmt container system { description "Enter the system context"; leaf contact { type types-sros:description; description "Contact information for this managed node"; } leaf name { type types-sros:named-item-64; description "Administrative name assigned to the system"; } leaf location { type types-sros:description; description "Site location of this system"; } leaf alarm-contact-in-power { type boolean; default "false"; description "Supply +24V output power on the +24DC pin of the Alarm Interface Port"; } leaf icmp-vse { type boolean; default "false"; description "Vendor-specific extensions to ICMP"; } leaf selective-fib { type boolean; default "false"; description "FIB assigned to the system"; } leaf coordinates { type types-sros:description; description "GPS coordinates for the system location"; } leaf clli-code { type types-sros:clli-description; description "CLLI code value for the system"; } leaf congestion-management { type boolean; default "false"; description "Virtual Service Router congestion management"; } leaf ospf-dynamic-hostnames { type boolean; default "false"; description "Process received OSPF dynamic hostname information"; } leaf boot-good-exec { type types-sros:url; description "Location and name of CLI script file executed after successful boot-up configuration file execution"; } leaf boot-bad-exec { type types-sros:url; description "CLI script file to execute following a failed boot-up"; } leaf allow-boot-license-violations { type boolean; default "true"; description "Allow boot license violations in a boot-up configuration"; } container alarms { description "Enter the alarms context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the system alarm"; } leaf max-cleared { type uint32 { range "0..500"; } default "500"; description "Maximum number of cleared alarms"; } } // container alarms container cpm-http-redirect { description "Enter the cpm-http-redirect context"; leaf optimized-mode { type boolean; default "true"; description "Enable optimized mode for CPM HTTP redirect messages"; } } // container cpm-http-redirect container load-balancing { description "Enter the load-balancing context"; leaf l2tp-load-balancing { type boolean; default "false"; description "L2TP header load balancing."; } leaf l4-load-balancing { type boolean; description "Use load balancing based on Layer 4 fields"; } leaf lsr-load-balancing { type enumeration { enum "lbl-only" { value 1; } enum "lbl-ip" { value 2; } enum "ip-only" { value 3; } enum "eth-encap-ip" { value 4; } enum "lbl-ip-l4-teid" { value 5; } } default "lbl-only"; description "Hashing algorithm for system-wide LSR load balancing"; } leaf mc-enh-load-balancing { type boolean; default "false"; description "Enable enhanced egress multicast load balancing behavior for Layer 3 multicast"; } leaf service-id-lag-hashing { type boolean; default "false"; description "Enable enhanced VLL LAG service ID hashing"; } leaf system-ip-load-balancing { type boolean; description "Use the system IP address in the ECMP and LAG load balancing calculation"; } container hash-polynomial { description "Enter the hash-polynomial context"; leaf ecmp { type types-system:hash-polynomial-type; default "poly1"; description "CRC polynomial used in the ECMP hashing."; } leaf lag { type types-system:hash-polynomial-type; default "poly2"; description "CRC polynomial used in the LAG hashing."; } } // container hash-polynomial } // container load-balancing list alarm-contact-input { key "input-pin-number"; description "Enter the alarm-contact-input list instance"; leaf input-pin-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..4"; } } description "PIN of the alarm contact input"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the alarm contact input"; } leaf description { type types-sros:long-description; description "Text description"; } leaf normal-state { type enumeration { enum "open" { value 1; } enum "closed" { value 2; } } default "open"; description "Alarm normal state"; } leaf trigger-message { type types-sros:description; default "Alarm Input Triggered"; description "Text message sent in the log event when input changes"; } leaf clear-message { type types-sros:description; default "Alarm Input Cleared"; description "Text message sent in the log event when an alarm clears"; } } // list alarm-contact-input container dns { description "Enter the dns context"; leaf address-pref { type enumeration { enum "ipv4-only" { value 1; } enum "ipv6-first" { value 2; } } description "Preference in DNS address resolving order"; } container dnssec { description "Enter the dnssec context"; leaf ad-validation { type enumeration { enum "fall-through" { value 1; description "Allow non-DNSSEC responses to fall-through to permit resolution in case of validation failure."; } enum "drop" { value 2; description "Drop non-DNSSEC responses in case of validation failure."; } } description "Response to DNSSEC validation of presence of AD-bit in responses from DNS servers"; } } // container dnssec } // container dns container efm-oam { description "Enter the efm-oam context"; leaf dying-gasp-tx-on-reset { type boolean; default "false"; description "Generate Information OAM PDU when EFM receives soft reset"; } leaf grace-tx { type boolean; default "false"; description "Allow sending of EFM OAM grace period messages"; } } // container efm-oam container eth-cfm { description "Enter the eth-cfm context"; leaf grace { type boolean; default "true"; description "Allow overall system level capability of grace messaging for ETH-CFM MEPs"; } container sender-id { description "Enter the sender-id context"; leaf type { type types-eth-cfm:chassis-id-subtype; description "ETH-CFM sender ID to be used in CFM PDUs"; } leaf local-name { type string { length "1..45"; } description "Local name in CFM PDUs"; } } // container sender-id container redundancy { description "Enter the redundancy context"; container mc-lag { description "Enter the mc-lag context"; leaf propagate-hold-time { type union { type int32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "1"; description "Delay timer value for the fault propagation caused by port, or MC-LAG state changes"; } leaf standby-mep { type boolean; default "false"; description "Allow MEPs on the standby MC-LAG to act administratively down"; } } // container mc-lag } // container redundancy container slm { description "Enter the slm context"; leaf inactivity-timer { type uint32 { range "10..100"; } units "seconds"; default "100"; description "SLR inactivity timer to maintain the stale test data"; } } // container slm container md-auto-id { description "Enter the md-auto-id context"; container md-index-range { presence "Enter the 'md-index-range' context"; description "Enable the md-index-range context"; leaf start { type uint32 { range "1..max"; } sros-ext:immutable; description "Start of the range"; } leaf end { type uint32 { range "1..max"; } sros-ext:immutable; description "End of the range"; } } // container md-index-range container ma-index-range { presence "Enter the 'ma-index-range' context"; description "Enable the ma-index-range context"; leaf start { type uint32 { range "1..max"; } sros-ext:immutable; description "Start of the range"; } leaf end { type uint32 { range "1..max"; } sros-ext:immutable; description "End of the range"; } } // container ma-index-range } // container md-auto-id } // container eth-cfm container fp { description "Enter the fp context"; container options { description "Enter the options context"; container qos { description "Enter the qos context"; container dscp-transparency { description "Enter the dscp-transparency context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the DSCP transparency option."; } } // container dscp-transparency container fc-4-profile { description "Enter the fc-4-profile context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the fc-4-profile option."; } } // container fc-4-profile container mac-classification-criteria { description "Enter the mac-classification-criteria context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the QOS mac classification criteria."; } } // container mac-classification-criteria container ipv6-classification-criteria { description "Enter the ipv6-classification-criteria context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the QOS ipv6 classification criteria."; } } // container ipv6-classification-criteria container bum-policers { description "Enter the bum-policers context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the QOS bum policers."; } } // container bum-policers } // container qos container mpls { description "Enter the mpls context"; container entropy-label { description "Enter the entropy-label context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the entropy label option."; } } // container entropy-label container fast-switchover { description "Enter the fast-switchover context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the MPLS fast switchover option."; } } // container fast-switchover } // container mpls container service { description "Enter the service context"; container vpls-evpn-mpls { description "Enter the vpls-evpn-mpls context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the VPLS-EVPN-MPLS option."; } } // container vpls-evpn-mpls } // container service container mac-filter { description "Enter the mac-filter context"; container outer-vlan-priority { description "Enter the outer-vlan-priority context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the MAC filter outer VLAN priority option."; } } // container outer-vlan-priority } // container mac-filter container router { description "Enter the router context"; container ecmp { description "Enter the ecmp context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the router ECMP option."; } } // container ecmp } // container router } // container options container cam-allocation { description "Enter the cam-allocation context"; leaf v6-multicast { type uint32 { range "0|512|1024|2048|4096|6144|8192|10240"; } default "0"; description "Cam bank allocation for v6 multicast configurations."; } } // container cam-allocation container resource-allocation { description "Enter the resource-allocation context"; leaf g8032-sap { type uint32 { range "0..4096"; } description "Max G8032 SAP entries IXR-e Ux - 700 max IXR-e Ax - 2048 max IXR-R6/s - 4096 max"; } } // container resource-allocation } // container fp list transmission-profile { key "name"; description "Enter the transmission-profile list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of file transmission profile"; } leaf ipv4-source-address { type types-sros:ipv4-unicast-address; description "IPv4 source address of the file transmission connections"; } leaf ipv6-source-address { type types-sros:ipv6-address; description "IPv6 source address of the file transmission connections"; } leaf redirection { type uint32 { range "1..8"; } description "Maximum level of redirection"; } leaf retry { type uint32 { range "1..256"; } description "Number of attempts to reconnecting to the server"; } leaf router-instance { type types-sros:router-instance-base-management-vprn-loose; default "Base"; description "Router instance that hosts the file transmission connection"; } leaf timeout { type uint32 { range "1..3600"; } units "seconds"; default "60"; description "Timeout for a response from the server"; } } // list transmission-profile container grpc { description "Enter the grpc context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of gRPC server"; } leaf max-msg-size { type uint32 { range "1..1024"; } units "megabytes"; default "512"; description "Maximum size of received message"; } choice transport { case tls-server-profile { leaf tls-server-profile { type types-sros:named-item; description "Preferred TLS server profile"; } } case allow-unsecure-connection { leaf allow-unsecure-connection { type empty; description "Run gRPC server without secured transport protocol"; } } } container tcp-keepalive { description "Enter the tcp-keepalive context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the TCP keepalive algorithm"; } leaf idle-time { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "600"; description "Seconds until the first TCP keepalive probe is sent"; } leaf interval { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "15"; description "Seconds between TCP keep-alive probes"; } leaf retries { type uint32 { range "3..100"; } default "4"; description "Missed keepalives before the TCP connection is closed"; } } // container tcp-keepalive container gnmi { description "Enter the gnmi context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of gNMI service"; } leaf auto-config-save { type boolean; default "false"; description "Automatically save the configuration"; } } // container gnmi container gnoi { description "Enter the gnoi context"; container cert-mgmt { description "Enter the cert-mgmt context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of gNOI CertificateManagement service."; } } // container cert-mgmt container file { description "Enter the file context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of gNOI File service."; } } // container file container system { description "Enter the system context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of gNOI System service."; } } // container system } // container gnoi container md-cli { description "Enter the md-cli context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MD-CLI service"; } } // container md-cli container rib-api { description "Enter the rib-api context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RibAPI service"; } leaf purge-timeout { type types-sros:time-duration { range "1..100000"; } units "seconds"; description "Number of seconds until stale entries are purged"; } } // container rib-api } // container grpc container management-interface { description "Enter the management-interface context"; leaf configuration-mode { type enumeration { enum "classic" { value 1; } enum "model-driven" { value 2; } enum "mixed" { value 3; } } default "classic"; description "Mode of the management interface configuration in the system"; } leaf schema-path { type types-sros:url; description "Schema path URL"; } container cli { description "Enter the cli context"; leaf-list cli-engine { type types-system:cli-engine-type; max-elements 2; ordered-by user; description "System wide CLI engine access"; } container classic-cli { description "Enter the classic-cli context"; leaf allow-immediate { type boolean; default "true"; description "Allow writable access in the classic CLI configure branch"; } container rollback { description "Enter the rollback context"; leaf location { type types-sros:url; description "Location and filename of the rollback checkpoint files"; } leaf local-checkpoints { type uint32 { range "1..50"; } default "10"; description "Maximum number of rollback files on compact flash"; } leaf remote-checkpoints { type uint32 { range "1..200"; } default "10"; description "Maximum number of rollback files saved at a remote location"; } container rescue { description "Enter the rescue context"; leaf location { type types-sros:url; description "Location of the rollback rescue file"; } } // container rescue } // container rollback } // container classic-cli container md-cli { description "Enter the md-cli context"; leaf auto-config-save { type boolean; default "false"; description "Automatically save the configuration"; } leaf command-accounting-during-load { status obsolete; type boolean; default "true"; description "Perform remote command accounting during a load or rollback operation"; } container environment { description "Enter the environment context"; leaf more { type boolean; default "true"; description "Prompt to continue or stop when output text fills page"; } leaf time-display { type enumeration { enum "local" { value 1; } enum "utc" { value 2; } } default "local"; description "Time zone displayed before the prompt"; } leaf time-format { type enumeration { enum "iso-8601" { value 1; } enum "rfc-1123" { value 2; } enum "rfc-3339" { value 3; } } default "rfc-3339"; description "Time format to display date and time"; } container command-completion { description "Enter the command-completion context"; leaf enter { type boolean; default "true"; description "Complete the command when the enter key is pressed"; } leaf space { type boolean; default "true"; description "Complete the command when the space key is pressed"; } leaf tab { type boolean; default "true"; description "Complete the command when the tab key is pressed"; } } // container command-completion container console { description "Enter the console context"; leaf length { type uint32 { range "24..512"; } default "24"; description "Number of lines displayed on the screen"; } leaf width { type uint32 { range "80..512"; } default "80"; description "Number of columns displayed on the screen"; } } // container console container message-severity-level { description "Enter the message-severity-level context"; leaf cli { type enumeration { enum "warning" { value 6; } enum "info" { value 7; } } default "info"; description "Message severity threshold for CLI messages"; } } // container message-severity-level container progress-indicator { description "Enter the progress-indicator context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the progress indicator"; } leaf type { type enumeration { enum "dots" { value 1; } } default "dots"; description "Progress indicator output style"; } leaf delay { type uint32 { range "0..10000"; } units "milliseconds"; default "1000"; description "Delay before progress indicator is displayed"; } } // container progress-indicator container prompt { description "Enter the prompt context"; leaf context { type boolean; default "true"; description "Show the current command context in the prompt"; } leaf newline { type boolean; default "true"; description "Add a new line before every prompt line"; } leaf timestamp { type boolean; default "false"; description "Show the timestamp before the first prompt line"; } leaf uncommitted-changes-indicator { type boolean; default "true"; description "Show an asterisk (*) when uncommitted changes exist"; } } // container prompt } // container environment } // container md-cli } // container cli container configuration-save { description "Enter the configuration-save context"; leaf configuration-backups { type uint32 { range "1..200"; } default "5"; description "Maximum number of backup versions maintained"; } } // container configuration-save container netconf { description "Enter the netconf context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NETCONF"; } leaf port { type uint32 { range "22|830"; } default "830"; description "Choose port on which the NETCONF server will listen for new connections."; } leaf auto-config-save { type boolean; default "false"; description "Automatically save the configuration"; } container capabilities { description "Enter the capabilities context"; leaf candidate { type boolean; default "true"; description "Allow the NETCONF server to access the candidate datastore"; } leaf writable-running { type boolean; default "false"; description "Allow the NETCONF server to access the writable running datastore"; } } // container capabilities } // container netconf container remote-management { description "Enter the remote-management context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of remote management registration"; } leaf connection-timeout { type uint32 { range "1..3600"; } units "seconds"; default "60"; description "Max time without response before manager declared down"; } leaf hello-interval { type types-sros:time-duration { range "10..3600"; } units "minutes"; default "10"; description "Time between hello messages from SR OS node to manager"; } leaf router-instance { type string; default "management"; description "Reference to a router or VPRN service name"; } leaf device-label { type types-sros:named-item-64; description "Device label supplied to the remote manager"; } leaf device-name { type types-sros:named-item-64; description "Device name supplied to the remote manager"; } leaf source-address { type types-sros:ip-address; description "Source IP address for connection to the manager"; } leaf source-port { type types-system:remote-mgmt-registration-port; default "grpc-default"; description "Source TCP port number to connection to the manager"; } choice transport { case client-tls-profile { leaf client-tls-profile { type types-sros:named-item; description "TLS client profile name"; } } case allow-unsecure-connection { leaf allow-unsecure-connection { type empty; description "Allow remote management without secured gRPC protocol"; } } } list manager { key "manager-name"; max-elements 2; description "Enter the manager list instance"; leaf manager-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Remote management manager name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of remote management registration"; } leaf connection-timeout { type uint32 { range "1..3600"; } units "seconds"; description "Max time without response before manager declared down"; } leaf description { type types-sros:description; description "Text description"; } leaf manager-address { type union { type types-sros:ip-address; type types-sros:fully-qualified-domain-name; } description "Destination IP address of the manager"; } leaf manager-port { type types-sros:tcp-udp-port-non-zero; default "57400"; description "TCP port for gRPC connections to manager"; } leaf router-instance { type string; description "Reference to a router or VPRN service name"; } leaf device-label { type types-sros:named-item-64; description "Device label supplied to the remote manager"; } leaf device-name { type types-sros:named-item-64; description "Device name supplied to the remote manager"; } leaf source-address { type types-sros:ip-address; description "Source IP address for connection to the manager"; } leaf source-port { type types-system:remote-mgmt-registration-port; description "Source TCP destination port number"; } choice transport { case client-tls-profile { leaf client-tls-profile { type types-sros:named-item; description "TLS client profile name"; } } case allow-unsecure-connection { leaf allow-unsecure-connection { type empty; description "Allow manager connection without secured gRPC protocol"; } } } } // list manager } // container remote-management container yang-modules { description "Enter the yang-modules context"; leaf base-r13-modules { type boolean; default "false"; description "Support base release 13 YANG models"; } leaf nokia-submodules { type boolean; description "Support submodule-based packaging of Nokia YANG models"; } leaf openconfig-modules { type boolean; default "false"; description "Support OpenConfig YANG models"; } leaf nokia-combined-modules { type boolean; description "Support access to combined Nokia YANG models"; } leaf nokia-modules { status obsolete; type boolean; description "Support Nokia YANG models"; } } // container yang-modules container snmp { description "Enter the snmp context"; leaf engine-id { type types-system:engine-id-as-string; description "SNMP engine ID to uniquely identify the SNMPv3 node"; } leaf general-port { type types-sros:tcp-udp-port; default "161"; description "Port number to be used to send general SNMP messages."; } leaf packet-size { type int32 { range "484..9216"; } default "1500"; description "Max size SNMP packet generated by this node."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SNMP daemon"; } container streaming { description "Enter the streaming context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the streaming daemon"; } } // container streaming } // container snmp } // container management-interface container thresholds { description "Enter the thresholds context"; list cflash-cap-alarm-percent { key "cflash-id"; description "Enter the cflash-cap-alarm-percent list instance"; leaf cflash-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:thresholds-cflash-url; } description "Capacity that monitors the cflash (compact flash) assigned in this command"; } leaf rising-threshold { type int32 { range "0..100"; } units "percent"; description "Specifies the rising threshold percentage value for sampled statistics of cflash capacity alarm entry."; } leaf falling-threshold { type int32 { range "0..100"; } units "percent"; description "Specifies the falling threshold percentage value for sampled statistics of cflash capacity alarm entry."; } leaf interval { type int32 { range "1..2147483647"; } description "Polling period over which data is sampled and compared"; } leaf rmon-event-type { type types-system:threshold-event-type; description "Notification type specifying action when event occurs"; } leaf startup-alarm { type types-system:threshold-startup-alarm; description "Alarm type when the alarm is first created"; } } // list cflash-cap-alarm-percent list cflash-cap-warn-percent { key "cflash-id"; description "Enter the cflash-cap-warn-percent list instance"; leaf cflash-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:thresholds-cflash-url; } description "Capacity that monitors the cflash (compact flash) assigned in this command"; } leaf rising-threshold { type int32 { range "0..100"; } units "percent"; description "Specifies the rising threshold percentage value for sampled statistics of cflash capacity alarm entry."; } leaf falling-threshold { type int32 { range "0..100"; } units "percent"; description "Specifies the falling threshold percentage value for sampled statistics of cflash capacity alarm entry."; } leaf interval { type int32 { range "1..2147483647"; } description "Polling period over which data is sampled and compared"; } leaf rmon-event-type { type types-system:threshold-event-type; description "Notification type specifying action when event occurs"; } leaf startup-alarm { type types-system:threshold-startup-alarm; description "Alarm type when the alarm is first created"; } } // list cflash-cap-warn-percent container kb-memory-use-alarm { presence "Enter the 'kb-memory-use-alarm' context"; description "Enable the kb-memory-use-alarm context"; leaf rising-threshold { type int64 { range "-2147483648..2147483647"; } description "Specifies the threshold for the sampled statistic for the rising threshold event."; } leaf falling-threshold { type int64 { range "-2147483648..2147483647"; } description "Specifies the threshold for the sampled statistic for the falling threshold event."; } leaf interval { type int32 { range "1..2147483647"; } description "Polling period over which data is sampled and compared"; } leaf rmon-event-type { type types-system:threshold-event-type; description "Notification type specifying action when event occurs"; } leaf startup-alarm { type types-system:threshold-startup-alarm; description "Alarm type when the alarm is first created"; } } // container kb-memory-use-alarm container kb-memory-use-warn { presence "Enter the 'kb-memory-use-warn' context"; description "Enable the kb-memory-use-warn context"; leaf rising-threshold { type int64 { range "-2147483648..2147483647"; } description "Specifies the threshold for the sampled statistic for the rising threshold event."; } leaf falling-threshold { type int64 { range "-2147483648..2147483647"; } description "Specifies the threshold for the sampled statistic for the falling threshold event."; } leaf interval { type int32 { range "1..2147483647"; } description "Polling period over which data is sampled and compared"; } leaf rmon-event-type { type types-system:threshold-event-type; description "Notification type specifying action when event occurs"; } leaf startup-alarm { type types-system:threshold-startup-alarm; description "Alarm type when the alarm is first created"; } } // container kb-memory-use-warn container rmon { description "Enter the rmon context"; list alarm { key "rmon-alarm-id"; max-elements 1200; description "Enter the alarm list instance"; leaf rmon-alarm-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..65400"; } } description "Index ID for an entry in the alarm table"; } leaf variable-oid { type string { length "1..255"; } description "Object identifier to sample the specific variable"; } leaf interval { type int32 { range "1..2147483647"; } description "Polling period over which data is sampled and compared"; } leaf sample-type { type types-system:threshold-sample; description "Method to sample the selected variable and calculate the value comparing against the thresholds"; } leaf startup-alarm { type types-system:threshold-startup-alarm; description "Alarm to send when this entry is first set to valid"; } leaf rising-event { type uint32 { range "0..65400"; } description "RMON event ID used when a rising event threshold event occurs"; } leaf falling-event { type uint32 { range "0..65400"; } description "RMON event ID used when a falling threshold crossing event occurs"; } leaf rising-threshold { type int64 { range "-2147483648..2147483647"; } description "Specifies the threshold for the sampled statistic for the rising threshold event."; } leaf falling-threshold { type int64 { range "-2147483648..2147483647"; } description "Specifies the threshold for the sampled statistic for the falling threshold event."; } leaf owner { type string { length "1..80"; } default "TiMOS CLI"; description "Owner that created this entry and uses the resources"; } } // list alarm list event { key "rmon-event-id"; max-elements 1200; description "Enter the event list instance"; leaf rmon-event-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..65400"; } } description "Index ID for an entry in the event table"; } leaf event-type { type types-system:threshold-rmon-event-type; description "Type of notification action to be taken when this event occurs"; } leaf description { type types-sros:description; description "Text description"; } leaf owner { type string { length "1..80"; } default "TiMOS CLI"; description "Owner that created this entry and uses the resources"; } } // list event } // container rmon } // container thresholds container ip { description "Enter the ip context"; leaf allow-qinq-network-interface { type boolean; default "false"; description "Allow QinQ encapsulation for network interfaces"; } leaf enforce-unique-if-index { type boolean; default "false"; description "Create IP interface indexes that are globally unique"; } leaf mpls-tunnel-mode { type types-sros:mpls-tunnel-mode; default "uniform"; description "Specifies the MPLS tunnel mode."; } leaf forward-6in4 { type boolean; default "false"; description "Allows the 6in4 forwarding of traffic sent to the system IP address."; } leaf forward-ip-over-gre { type boolean; default "false"; description "Allows the forwarding of IP traffic encapsulated in GRE transport sent to the system IP address."; } leaf ipv6-eh { type enumeration { enum "max" { value 1; } enum "limited" { value 2; } } default "max"; description "Limit the number of IPv6 extension headers processed ingress/egress."; } leaf allow-cpu-fragmentation { type boolean; default "false"; description "Enables IP fragmentation for packets exceeding IP MTU via system CPU."; } leaf allow-icmp-redirect { type boolean; default "false"; description "Enables generation of ICMP redirect messages."; } container mpls { description "Enter the mpls context"; leaf label-stack-statistics-count { type uint32 { range "1..2"; } default "1"; description "Specifies the MPLS label stack statistics count."; } } // container mpls } // container ip container lacp { description "Enter the lacp context"; leaf system-priority { type uint32 { range "1..65535"; } default "32768"; description "Set the LACP system priority"; } } // container lacp container lldp { description "Enter the lldp context"; leaf tx-credit-max { type int32 { range "1..100"; } default "5"; description "Maximum consecutive LLDPDUs to be transmitted"; } leaf message-fast-tx { type int32 { range "1..3600"; } units "seconds"; default "1"; description "Interval at which LLDP frames are transmitted"; } leaf message-fast-tx-init { type int32 { range "1..8"; } default "4"; description "Number of PDUs to transmit during a fast transmission period"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LLDP"; } leaf tx-interval { type int32 { range "5..32768"; } units "seconds"; default "30"; description "Interval at which LLDP frames are transmitted"; } leaf tx-hold-multiplier { type int32 { range "2..10"; } default "4"; description "LLDP transmit interval time"; } leaf reinit-delay { type int32 { range "1..10"; } units "seconds"; default "2"; description "Time required before reinitializing LLDP on a port"; } leaf notification-interval { type int32 { range "5..3600"; } units "seconds"; default "5"; description "Transmission interval of LLDP notifications"; } } // container lldp container l2tp { description "Enter the l2tp context"; container non-multi-chassis-tunnel-id-range { description "Enter the non-multi-chassis-tunnel-id-range context"; leaf start { type types-l2tp:loc-tunnel-id-or-zero; default "1"; description "Start value of range"; } leaf end { type types-l2tp:loc-tunnel-id-or-zero; default "16383"; description "End value of the range"; } } // container non-multi-chassis-tunnel-id-range } // container l2tp list power-management { key "power-zone"; description "Enter the power-management list instance"; leaf power-zone { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2"; } } description "Power mode"; } leaf mode { type enumeration { enum "none" { value 0; } enum "basic" { value 1; } enum "advanced" { value 2; } } default "basic"; description "Power capacity mode algorithm"; } leaf power-safety-alert { type uint32 { range "0..120000"; } units "watts"; default "0"; description "Power capacity to trigger a safety alert event"; } leaf power-safety-level { type yang:gauge32 { range "0..100"; } units "percent"; default "100"; description "Minimum threshold to power off devices"; } } // list power-management container dhcp6 { description "Enter the dhcp6 context"; leaf-list adv-noaddrs-global { type enumeration { enum "esm-relay" { value 1; } enum "server" { value 2; } } max-elements 2; description "Specifies the composition of DHCPv6 Advertise Messages in case a DHCP6 application in this system will not assign any addresses to any Identity Association (IA) in a subsequent Request from the client. DHCP6 applications in this system are Server and ESM Relay, which must be set together."; } } // container dhcp6 list software-repository { key "repository-name"; description "Enter the software-repository list instance"; leaf repository-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Unique name for the system software repository"; } leaf description { type types-sros:description; description "Text description"; } leaf primary-location { type string { length "1..180"; } description "Primary location for the files in the software repository"; } leaf secondary-location { type string { length "1..180"; } description "Secondary location for the files in the software repository"; } leaf tertiary-location { type string { length "1..180"; } description "Tertiary location for the files in the software repository"; } } // list software-repository container resource { description "Enter the resource context"; list ecmp-profile { key "profile-id"; description "Enter the ecmp-profile list instance"; leaf profile-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..2"; } } description "The ecmp-profile identifier."; } leaf type { type enumeration { enum "mpls" { value 1; } enum "ip" { value 2; } } sros-ext:immutable; description "Specifies the ECMP bundle type applicable to this profile."; } leaf links { type uint32 { range "1..16"; } description "Specifies the maximum number of links per group for the ECMP bundle."; } leaf groups { type uint32 { range "1..2048"; } description "Specifies the maximum number of groups allowed for the ECMP bundle. When type is 'mpls', the maximum value for group is 2047. When type is 'ip', the maximum value for group is 2048."; } } // list ecmp-profile } // container resource container switch-fabric { description "Enter the switch-fabric context"; leaf sfm-loss-threshold { type uint32 { range "1..7"; } description "Number of SFMs that can fail before SFM overload state"; } container failure-recovery { description "Enter the failure-recovery context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the automatic switch fabric failure recovery process."; } } // container failure-recovery } // container switch-fabric list usb { key "usb-cflash"; description "Enter the usb list instance"; leaf usb-cflash { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "cf2" { value 2; } } } description "Specifies the compact flash id."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Enable/disable the Universal Serial Bus (USB) port."; } } // list usb container bluetooth { description "Enter the bluetooth context"; leaf passkey { type string { length "6"; pattern "[0-9]+" { error-message "passkey can only contain digits"; } } default "123456"; description "Bluetooth passkey"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the desired administrative state of the bluetooth module."; } leaf advertising-timeout { type uint32 { range "30..3600"; } units "seconds"; description "Bluetooth advertising timeout"; } leaf power-mode { type enumeration { enum "manual" { value 1; } enum "automatic" { value 2; } } default "automatic"; description "Bluetooth module(s) power mode."; } leaf pairing-button { type boolean; default "false"; description "Enable the pairing button"; } leaf power { status obsolete; type enumeration { enum "manual" { value 1; } enum "automatic" { value 2; } } description "Bluetooth module power state"; } list device { key "mac-address"; max-elements 5; description "Enter the device list instance"; leaf mac-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type yang:mac-address; } description "Bluetooth client device MAC address"; } leaf description { type types-sros:description; description "Text description"; } } // list device list module { key "cpm-slot"; description "Enter the module list instance"; leaf cpm-slot { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-card:cpm-card-slot; } description "CPM slot on which the module resides"; } leaf provisioned-identifier { type types-sros:display-string { length "1..32"; pattern ".*\\S.*" { error-message "provisioned-identifier must not be all spaces"; } } description "User configured identifier for this Bluetooth module"; } } // list module } // container bluetooth container central-frequency-clock { description "Enter the central-frequency-clock context"; leaf ql-minimum { type types-system:ref-ssm-quality-level-override; default "unused"; description "Minimum signal quality level for system timing module"; } leaf ql-selection { type boolean; default "false"; description "Consider quality level in system and BITS output timing"; } leaf revert { type boolean; default "false"; description "Revert to higher-priority reference source"; } leaf wait-to-restore { type uint32 { range "1..12"; } units "minutes"; description "Time to re-validate a previously failed input reference"; } container ref-order { description "Enter the ref-order context"; leaf first { type types-system:sets-ref-source; description "First preferred timing reference source"; } leaf second { type types-system:sets-ref-source; description "Second preferred timing reference source"; } leaf third { type types-system:sets-ref-source; description "Third preferred timing reference source"; } leaf fourth { type types-system:sets-ref-source; description "Fourth preferred timing reference source"; } leaf fifth { type types-system:sets-ref-source; description "The fifth most preferred timing reference source for the synchronous equipment timing subsystem."; } } // container ref-order container bits { description "Enter the bits context"; leaf interface-type { type types-system:bits-if-type; default "ds1-esf"; description "Interface type of the BITS timing reference"; } leaf ql-override { type types-system:ssm-quality-level-override; default "unused"; description "Quality level of a timing reference that overrides any value provided by the reference's SSM process"; } leaf ssm-bit { type uint32 { range "4..8"; } default "8"; description "SSM information conveyed by the sa-bit"; } container input { description "Enter the input context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BITS input timing reference"; } } // container input container output { description "Enter the output context"; leaf line-length { type enumeration { enum "length-not-applicable" { value 0; } enum "110" { value 1; } enum "220" { value 2; } enum "330" { value 3; } enum "440" { value 4; } enum "550" { value 5; } enum "660" { value 6; } } description "Line length for the BITS output timing reference"; } leaf ql-minimum { type types-system:ref-ssm-quality-level-override; default "unused"; description "Minimum signal quality level for BITSout port"; } leaf source { type types-system:bits-out-source; default "line-ref"; description "Source of the BITS output timing reference"; } leaf squelch { type boolean; default "false"; description "Squelch the signal of the BITS output timing reference"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of BITS output timing reference"; } } // container output } // container bits container ptp { description "Enter the ptp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the PTP timing reference"; } } // container ptp container ref1 { description "Enter the ref1 context"; leaf ql-override { type types-system:ref-ssm-quality-level-override; default "unused"; description "Quality level of a timing reference that overrides any value provided by the reference's SSM process"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the first timing reference"; } leaf source-port { type types-sros:port; description "Source port for the first timing reference"; } } // container ref1 container ref2 { description "Enter the ref2 context"; leaf ql-override { type types-system:ref-ssm-quality-level-override; default "unused"; description "Quality level of a timing reference that overrides any value provided by the reference's SSM process"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the second timing reference"; } leaf source-port { type types-sros:port; description "Source port for the first timing reference"; } } // container ref2 container synce { description "Enter the synce context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the SyncE timing reference"; } leaf ql-override { type types-system:ref-ssm-quality-level-override; default "unused"; description "Override the quality level of a timing reference"; } } // container synce container gnss { description "Enter the gnss context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the gnss timing reference"; } leaf ql-override { type types-system:ssm-quality-level-override; default "unused"; description "Override the quality level of a timing reference"; } } // container gnss } // container central-frequency-clock container cron { description "Enter the cron context"; list schedule { key "schedule-name owner"; max-elements 255; description "Enter the schedule list instance"; leaf schedule-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Schedule name"; } leaf owner { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Schedule owner"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the cron schedule"; } leaf description { type types-sros:description; description "Text description"; } leaf count { type uint32 { range "1..65535"; } description "Number of times to repeat a periodic CRON schedule run"; } leaf interval { type uint32 { range "30..42949672"; } units "seconds"; description "Time between each periodic schedule run"; } leaf type { type enumeration { enum "periodic" { value 1; } enum "calendar" { value 2; } enum "oneshot" { value 3; } } default "periodic"; description "Schedule type"; } leaf-list day-of-month { type int32 { range "-31..-1|1..31"; } max-elements 62; description "Days in a month when a schedule runs"; } leaf-list hour { type uint32 { range "0..23"; } max-elements 24; description "Hours within a day when a schedule runs"; } leaf-list minute { type uint32 { range "0..59"; } max-elements 60; description "Minutes in an hour when a schedule runs"; } leaf-list month { type union { type enumeration { enum "january" { value 1; } enum "february" { value 2; } enum "march" { value 3; } enum "april" { value 4; } enum "may" { value 5; } enum "june" { value 6; } enum "july" { value 7; } enum "august" { value 8; } enum "september" { value 9; } enum "october" { value 10; } enum "november" { value 11; } enum "december" { value 12; } } type uint32 { range "1..12"; } } max-elements 12; description "Months when a schedule runs"; } leaf-list weekday { type union { type enumeration { enum "sunday" { value 1; } enum "monday" { value 2; } enum "tuesday" { value 3; } enum "wednesday" { value 4; } enum "thursday" { value 5; } enum "friday" { value 6; } enum "saturday" { value 7; } } type uint32 { range "1..7"; } } max-elements 7; description "Weekdays when the schedule runs"; } container script-policy { description "Enter the script-policy context"; leaf name { type types-sros:named-item; description "Script policy name"; } leaf owner { type types-sros:named-item; description "Script policy owner"; } } // container script-policy container end-time { description "Enter the end-time context"; choice date-or-dayname-time { case date-and-time { leaf date-and-time { type yang:date-and-time; description "Date-hour-minute to stop triggering this schedule"; } } case dayname-time { leaf day { type enumeration { enum "sunday" { value 0; } enum "monday" { value 1; } enum "tuesday" { value 2; } enum "wednesday" { value 3; } enum "thursday" { value 4; } enum "friday" { value 5; } enum "saturday" { value 6; } } description "Day to stop triggering this schedule"; } leaf time { type types-system:hours-minutes-twenty-four; description "Time to stop triggering this schedule"; } } } } // container end-time } // list schedule } // container cron container login-control { description "Enter the login-control context"; leaf exponential-backoff { type boolean; default "false"; description "Login exponential-backoff to deter brute force attack"; } leaf idle-timeout { type union { type enumeration { enum "none" { value 9999; } } type int64 { range "1..1440"; } } units "minutes"; default "30"; description "Idle timeout for FTP, console, or Telnet sessions before the system terminate the session"; } leaf login-banner { type boolean; default "false"; description "Display login banner"; } container login-scripts { description "Enter the login-scripts context"; leaf global-script { type types-sros:string-not-all-spaces { length "1..180"; } description "URL of the global login script"; } container per-user-script { description "Enter the per-user-script context"; leaf user-directory { type types-sros:string-not-all-spaces { length "1..180"; } description "Users to define their own login scripts that can be executed when they first log in to CLI"; } leaf file-name { type types-sros:filename; description "File name of the per-user login script"; } } // container per-user-script } // container login-scripts container motd { description "Enter the motd context"; choice motd { case url { leaf url { type types-sros:string-not-all-spaces { length "1..180"; } description "URL from where a message of the day is fetched"; } } case text { leaf text { type types-sros:string-not-all-spaces { length "1..900"; } description "Message to display in text format"; } } } } // container motd container pre-login-message { description "Enter the pre-login-message context"; leaf message { type types-sros:string-not-all-spaces { length "1..900"; } description "Message to display prior to the login prompt of an inbound FTP, Telnet, or SSH session"; } leaf name { type boolean; default "false"; description "Pre login message included in the system name"; } } // container pre-login-message container ftp { description "Enter the ftp context"; leaf inbound-max-sessions { type uint32 { range "0..5"; } default "3"; description "Maximum number of concurrent inbound FTP sessions"; } } // container ftp container ssh { description "Enter the ssh context"; leaf graceful-shutdown { type boolean; default "true"; description "Allow graceful shutdown of SSH sessions"; } leaf inbound-max-sessions { type uint32 { range "0..50"; } default "5"; description "Maximum number of concurrent inbound sessions"; } leaf outbound-max-sessions { type uint32 { range "0..15"; } default "5"; description "Maximum number of concurrent outbound sessions"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for incoming BGP packet"; } } // container ssh container telnet { description "Enter the telnet context"; leaf graceful-shutdown { type boolean; default "false"; description "Allow graceful shutdown of Telnet sessions"; } leaf inbound-max-sessions { type uint32 { range "0..50"; } default "5"; description "Maximum number of concurrent inbound sessions"; } leaf outbound-max-sessions { type uint32 { range "0..15"; } default "5"; description "Maximum number of concurrent outbound sessions"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for incoming BGP packet"; } } // container telnet } // container login-control container network-element-discovery { description "Enter the network-element-discovery context"; leaf generate-traps { type boolean; default "false"; description "Generate NE discovery traps"; } list profile { key "name"; max-elements 1; description "Enter the profile list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Profile name"; } leaf neid { type string { length "7..8"; } description "Network element ID of the advertised node"; } leaf platform-type { type types-sros:named-item-255; description "The platform name and chassis type to be advertised"; } leaf vendor-id { type types-sros:named-item-255; default "Nokia"; description "The vendor identifier to be advertised"; } leaf system-mac { type types-sros:mac-unicast-address-no-zero; description "MAC address of the advertised node"; } container neip { description "Enter the neip context"; leaf ipv4 { type types-sros:ipv4-unicast-address; description "The neip IPv4 address of the advertised node"; } leaf ipv6 { type types-sros:ipv6-address; description "The neip IPv6 address of the advertised node"; } container auto-generate { description "Enter the auto-generate context"; container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf vendor-id-value { type uint32 { range "1..255"; } default "140"; description "Most significant byte if the NE IPv4 address"; } } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf vendor-id-value { type uint32 { range "1..255"; } default "140"; description "Most significant byte of the NE IPv6 address"; } } // container ipv6 } // container auto-generate } // container neip } // list profile } // container network-element-discovery container persistence { description "Enter the persistence context"; container ancp { description "Enter the ancp context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } } // container ancp container application-assurance { description "Enter the application-assurance context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } } // container application-assurance container dhcp-server { description "Enter the dhcp-server context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } } // container dhcp-server container nat-port-forwarding { description "Enter the nat-port-forwarding context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } } // container nat-port-forwarding container python-policy-cache { description "Enter the python-policy-cache context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } } // container python-policy-cache container subscriber-mgmt { description "Enter the subscriber-mgmt context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } } // container subscriber-mgmt container options { description "Enter the options context"; leaf dhcp-leasetime-threshold { type types-sros:time-duration { range "1..631152000"; } description "Threshold time for DHCP leases to be eligible for persistence"; } } // container options } // container persistence container script-control { description "Enter the script-control context"; list script { key "script-name owner"; max-elements 1500; description "Enter the script list instance"; leaf script-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Script name"; } leaf owner { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Script owner"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf location { type types-sros:string-not-all-spaces { length "1..255"; } description "Script location"; } } // list script list script-policy { key "policy-name owner"; max-elements 1500; description "Enter the script-policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Script policy name"; } leaf owner { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Script policy owner"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the script policy"; } leaf expire-time { type union { type uint32 { range "0..21474836"; } type enumeration { enum "forever" { value 2147483647; } } } units "seconds"; default "3600"; description "Maximum amount of time to keep the run history status from a script run"; } leaf lifetime { type union { type uint32 { range "0..21474836"; } type enumeration { enum "forever" { value 2147483647; } } } units "seconds"; default "3600"; description "Maximum amount of time the script may run."; } leaf max-completed { type uint32 { range "1..1500"; } default "1"; description "Maximum number of script run history status entries to keep."; } leaf results { type types-sros:string-not-all-spaces { length "1..255"; } description "Location to receive CLI output of a script run"; } leaf lock-override { type boolean; default "false"; description "Allow EHS/CRON script to break database explicit lock"; } container script { description "Enter the script context"; leaf name { type types-sros:named-item; description "Script name"; } leaf owner { type types-sros:named-item; description "Script owner"; } } // container script } // list script-policy } // container script-control container security { description "Enter the security context"; leaf telnet-server { type boolean; default "false"; description "Enable telnet servers running on the system"; } leaf telnet6-server { type boolean; default "false"; description "Enable telnet IPv6 servers running on the system"; } leaf ftp-server { type boolean; default "false"; description "Enable FTP servers running on the system"; } leaf per-peer-queuing { type boolean; description "Allow a separate control plane queue for each LDP and BGP peering session to improve DoS protection"; } container vprn-network-exceptions { presence "Enter the 'vprn-network-exceptions' context"; description "Enable the vprn-network-exceptions context"; leaf count { type uint32 { range "10..1000"; } default "100"; description "Number of MPLS exception messages to be received in the assigned time frame"; } leaf window { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time frame to limit the number of MPLS exception messages issued per time frame"; } } // container vprn-network-exceptions container cpu-protection { description "Enter the cpu-protection context"; leaf link-specific-rate { type types-security:cpm-packet-rate-limit; units "packets per second"; description "Limit of packet arrival rate limit for link level protocols"; } container port-overall-rate { description "Enter the port-overall-rate context"; leaf pir { type types-security:cpm-packet-rate-limit; units "packets per second"; description "Per-port packet arrival rate limit applied to all protocol messages to be processed by CPM"; } leaf action-low-priority { type boolean; default "false"; description "Mark packets that exceed the rate as low-priority instead of discarding them immediately"; } } // container port-overall-rate container protocol-protection { presence "Enter the 'protocol-protection' context"; description "Enable the protocol-protection context"; leaf allow-sham-links { type boolean; default "false"; description "Allow OSPF sham-link traffic over VPRN transport tunnels"; } leaf block-pim-tunneled { type boolean; default "false"; description "Block extraction and processing of PIM packets that arrive inside a tunnel"; } } // container protocol-protection container ip-src-monitoring { description "Enter the ip-src-monitoring context"; container included-protocols { description "Enter the included-protocols context"; leaf dhcp { type boolean; default "true"; description "DHCP protocol packets for IP source monitoring"; } leaf gtp { type boolean; default "false"; description "GTP protocol packets for IP source monitoring"; } leaf icmp { type boolean; default "false"; description "ICMP protocol packets for IP source monitoring"; } leaf igmp { type boolean; default "false"; description "IGMP protocol for IP source monitoring"; } } // container included-protocols } // container ip-src-monitoring list policy { key "policy-id"; description "Enter the policy list instance"; leaf policy-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-services:cpm-prot-policy-id; } description "Number that identifies this CPU protection policy"; } leaf alarm { type boolean; default "true"; description "Notification sent when a packet arrival rate limits is reached"; } leaf description { type types-sros:description; description "Text description"; } leaf overall-rate { type types-security:cpm-policy-packet-rate-limit; units "packets per second"; default "max"; description "Overall packet arrival rate limit to apply for all sources of packets"; } leaf per-source-rate { type types-security:cpm-policy-packet-rate-limit; units "packets per second"; default "max"; description "Per-source packet arrival rate limit"; } container out-profile-rate { description "Enter the out-profile-rate context"; leaf pir { type types-security:cpm-policy-packet-rate-limit; units "packets per second"; default "3000"; description "Packet arrival threshold PIR above which incoming control packets are discarded"; } leaf log-events { type boolean; default "false"; description "Log events to generate when the out profile rate PIR is exceeded"; } } // container out-profile-rate container per-source-parameters { description "Enter the per-source-parameters context"; container ip-src-monitoring { description "Enter the ip-src-monitoring context"; leaf limit-dhcp-ci-addr-zero { type boolean; default "false"; description "Apply per-source rate limiting to DHCP packets containing Client IP address zero"; } } // container ip-src-monitoring } // container per-source-parameters container eth-cfm { description "Enter the eth-cfm context"; list entry { key "id"; max-elements 10; description "Enter the entry list instance"; leaf id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..100"; } } description "Number to identify this entry"; } leaf pir { type union { type int32 { range "0..65534"; } type enumeration { enum "max" { value -1; } } } units "packets per second"; default "max"; description "Packet arrival rate limit for this set of Ethernet CFM packets"; } list level { key "start end"; min-elements 1; description "Add a list entry for level"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..7"; } } description "First level in the range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..7"; } } description "Last level in the range"; } } // list level list opcode { key "start end"; min-elements 1; description "Add a list entry for opcode"; leaf start { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..255"; } } description "First opcode in the range"; } leaf end { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..255"; } } description "Last opcode in the range"; } } // list opcode } // list entry } // container eth-cfm } // list policy } // container cpu-protection container dist-cpu-protection { description "Enter the dist-cpu-protection context"; list policy { key "policy-name"; max-elements 18; description "Enter the policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for the distributed CPU protection policy"; } leaf description { type types-sros:description; description "Text description"; } list protocol { key "protocol-name"; description "Enter the protocol list instance"; leaf protocol-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-system:dist-cpu-protocol-id; } description "Protocol name that is monitored by the distributed CPU protection policy"; } container enforcement { description "Enter the enforcement context"; choice type { default "dynamic-local-mon-bypass"; case static { container static { description "Enter the static context"; leaf policer-name { type types-sros:named-item; description "Static enforcement policer name"; } } // container static } case dynamic { container dynamic { description "Enter the dynamic context"; leaf mon-policer-name { type types-sros:named-item; description "Name for the dynamic enforcement policer"; } } // container dynamic } case dynamic-local-mon-bypass { leaf dynamic-local-mon-bypass { type empty; description "Do not include packets from this protocol in the local monitoring function"; } } } } // container enforcement container dynamic-parameters { description "Enter the dynamic-parameters context"; leaf detection-time { type uint32 { range "1..128000"; } units "seconds"; default "30"; description "Minimum time that an instantiated dynamic enforcing policer remains allocated"; } leaf log-events { type enumeration { enum "false" { value 0; } enum "true" { value 1; } enum "verbose" { value 2; } } default "true"; description "Control of log events creation for static policer status and activity"; } container exceed-action { description "Enter the exceed-action context"; leaf action { type types-system:dcp-exceed-action; description "Action to perform upon the extracted control packets when configured policer rates are exceeded"; } leaf hold-down { type union { type enumeration { enum "indefinite" { value -1; } enum "none" { value 0; } } type uint32 { range "1..10080"; } } units "seconds"; default "none"; description "Hold down behavior"; } } // container exceed-action container rate { description "Enter the rate context"; choice type { default "packets"; case kbps { container kbps { description "Enter the kbps context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "1..20000000"; } } units "kilobps"; default "max"; description "Limiting rate and burst tolerance for the policer in a packet rate, or a bit rate"; } leaf mbs { type int32 { range "0..4194304"; } units "bytes"; description "Buffer space assigned"; } } // container kbps } case packets { container packets { description "Enter the packets context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "0..8000"; } } units "packets per interval"; default "max"; description "Overall packet arrival rate limit to be applied to all sources of packets"; } leaf within { type uint32 { range "1..32767"; } units "seconds"; default "1"; description "Measurement interval for packets rate"; } leaf initial-delay { type uint32 { range "0..255"; } units "packets"; default "0"; description "Number of packets allowed in an initial burst or burst after the policer bucket drained to zero"; } } // container packets } } } // container rate } // container dynamic-parameters } // list protocol list local-monitoring-policer { key "policer-name"; max-elements 1; description "Enter the local-monitoring-policer list instance"; leaf policer-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for the distributed CPU protection local monitoring policer"; } leaf description { type types-sros:description; description "Text description"; } leaf exceed-action { type types-system:dcp-exceed-action; description "Action to perform upon the extracted control packets when configured policer rates are exceeded"; } leaf log-events { type enumeration { enum "false" { value 0; } enum "true" { value 1; } enum "verbose" { value 2; } } default "true"; description "Control of log events creation for static policer status and activity"; } container rate { description "Enter the rate context"; choice type { default "packets"; case kbps { container kbps { description "Enter the kbps context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "1..20000000"; } } units "kilobps"; default "max"; description "Limiting rate and burst tolerance for the policer in a packet rate, or a bit rate"; } leaf mbs { type int32 { range "0..4194304"; } units "bytes"; description "Buffer space assigned"; } } // container kbps } case packets { container packets { description "Enter the packets context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "0..8000"; } } units "packets per interval"; default "max"; description "Overall packet arrival rate limit to be applied to all sources of packets"; } leaf within { type uint32 { range "1..32767"; } units "seconds"; default "1"; description "Measurement interval for packets rate"; } leaf initial-delay { type uint32 { range "0..255"; } units "packets"; default "0"; description "Number of packets allowed in an initial burst or burst after the policer bucket drained to zero"; } } // container packets } } } // container rate } // list local-monitoring-policer list static-policer { key "policer-name"; max-elements 18; description "Enter the static-policer list instance"; leaf policer-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for the distributed CPU protection static policer"; } leaf description { type types-sros:description; description "Text description"; } leaf detection-time { type uint32 { range "1..128000"; } units "seconds"; default "30"; description "Minimum time that an instantiated dynamic enforcing policer remains allocated"; } leaf log-events { type enumeration { enum "false" { value 0; } enum "true" { value 1; } enum "verbose" { value 2; } } default "true"; description "Control of log events creation for static policer status and activity"; } container exceed-action { description "Enter the exceed-action context"; leaf action { type types-system:dcp-exceed-action; description "Action to perform upon the extracted control packets when configured policer rates are exceeded"; } leaf hold-down { type union { type enumeration { enum "indefinite" { value -1; } enum "none" { value 0; } } type uint32 { range "1..10080"; } } units "seconds"; default "none"; description "Hold down behavior"; } } // container exceed-action container rate { description "Enter the rate context"; choice type { default "packets"; case kbps { container kbps { description "Enter the kbps context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "1..20000000"; } } units "kilobps"; default "max"; description "Limiting rate and burst tolerance for the policer in a packet rate, or a bit rate"; } leaf mbs { type int32 { range "0..4194304"; } units "bytes"; description "Buffer space assigned"; } } // container kbps } case packets { container packets { description "Enter the packets context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "0..8000"; } } units "packets per interval"; default "max"; description "Overall packet arrival rate limit to be applied to all sources of packets"; } leaf within { type uint32 { range "1..32767"; } units "seconds"; default "1"; description "Measurement interval for packets rate"; } leaf initial-delay { type uint32 { range "0..255"; } units "packets"; default "0"; description "Number of packets allowed in an initial burst or burst after the policer bucket drained to zero"; } } // container packets } } } // container rate } // list static-policer } // list policy } // container dist-cpu-protection container dot1x { description "Enter the dot1x context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of port access control in a system"; } list radius-policy { key "policy-name"; description "Enter the radius-policy list instance"; leaf policy-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "RADIUS server policy to use for 802.1X authentication"; } leaf source-address { type types-sros:ipv4-unicast-address; description "Source address of the RADIUS packet"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this RADIUS server policy"; } leaf retry { type uint32 { range "1..10"; } default "3"; description "Number of RADIUS requests toward the same RADIUS server"; } leaf timeout { type uint32 { range "1..90"; } units "seconds"; default "5"; description "Time assigned between the request retries toward the same RADIUS server"; } list server { key "server-index"; max-elements 5; description "Enter the server list instance"; leaf server-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..5"; } } description "RADIUS server index"; } leaf address { type types-sros:ipv4-unicast-address; description "IP address of the RADIUS server"; } leaf secret { type types-sros:encrypted-leaf { length "1..54"; } description "Secret key associated with the RADIUS server"; } leaf authentication-port { type types-sros:tcp-udp-port-non-zero; default "1812"; description "UDP port number on which to contact the RADIUS server for authentication"; } leaf accounting-port { type types-sros:tcp-udp-port-non-zero; default "1813"; description "UDP port number on which to contact the RADIUS server for accounting requests"; } leaf type { type enumeration { enum "authorization" { value 0; } enum "accounting" { value 1; } enum "combined" { value 2; } } default "authorization"; description "RADIUS server type"; } } // list server } // list radius-policy } // container dot1x container keychains { description "Enter the keychains context"; list keychain { key "keychain-name"; max-elements 256; description "Enter the keychain list instance"; leaf keychain-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Keychain name"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the keychain"; } container tcp-option-number { description "Enter the tcp-option-number context"; leaf receive { type enumeration { enum "option-253" { value 1; } enum "option-254" { value 2; } enum "both" { value 3; } enum "tcp-ao" { value 4; } } default "option-254"; description "TCP option value expected in the TCP header of received packets"; } leaf send { type enumeration { enum "option-253" { value 1; } enum "option-254" { value 2; } enum "tcp-ao" { value 4; } } default "option-254"; description "TCP option value assigned in the TCP header of transmitted packets"; } } // container tcp-option-number container bidirectional { description "Enter the bidirectional context"; list entry { key "keychain-entry-index"; description "Enter the entry list instance"; leaf keychain-entry-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..63|255"; } } description "Keychain identifier"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..54"; } sros-ext:immutable; description "The key used by the encryption algorithm to sign and authenticate protocol packets."; } leaf algorithm { type types-security:keychain-algo; sros-ext:immutable; description "Encryption algorithm used by the keychain key"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the keychain entry"; } leaf begin-time { type yang:date-and-time; description "Calendar date and time when the system starts using the key"; } leaf option { type enumeration { enum "none" { value 0; } enum "basic" { value 1; } enum "isis-enhanced" { value 2; } } default "none"; description "Keychain key option"; } leaf tolerance { type union { type types-sros:time-duration { range "0..4294967294"; } type enumeration { enum "infinite" { value -1; } } } default "300"; description "Time within which an eligible receive key should overlap with the active send key"; } } // list entry } // container bidirectional container receive { description "Enter the receive context"; list entry { key "keychain-entry-index"; description "Enter the entry list instance"; leaf keychain-entry-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..63|255"; } } description "Keychain identifier"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..54"; } sros-ext:immutable; description "The key used by the encryption algorithm to sign and authenticate protocol packets."; } leaf algorithm { type types-security:keychain-algo; sros-ext:immutable; description "Encryption algorithm used by the keychain key"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the keychain entry"; } leaf begin-time { type yang:date-and-time; description "Calendar date and time when the system starts using the key"; } leaf end-time { type yang:date-and-time; description "Calendar date and time when the system should stop using the key"; } leaf tolerance { type union { type types-sros:time-duration { range "0..4294967294"; } type enumeration { enum "infinite" { value -1; } } } default "300"; description "Time within which an eligible receive key should overlap with the active send key"; } } // list entry } // container receive container send { description "Enter the send context"; list entry { key "keychain-entry-index"; description "Enter the entry list instance"; leaf keychain-entry-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..63|255"; } } description "Keychain identifier"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..54"; } sros-ext:immutable; description "The key used by the encryption algorithm to sign and authenticate protocol packets."; } leaf algorithm { type types-security:keychain-algo; sros-ext:immutable; description "Encryption algorithm used by the keychain key"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the keychain entry"; } leaf begin-time { type yang:date-and-time; description "Calendar date and time when the system starts using the key"; } } // list entry } // container send } // list keychain } // container keychains container source-address { description "Enter the source-address context"; list ipv4 { key "application"; description "Enter the ipv4 list instance"; leaf application { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "telnet" { value 1; } enum "ftp" { value 2; } enum "ssh" { value 3; } enum "radius" { value 4; } enum "tacplus" { value 5; } enum "snmptrap" { value 6; } enum "syslog" { value 7; } enum "ping" { value 8; } enum "traceroute" { value 9; } enum "dns" { value 10; } enum "sntp" { value 11; } enum "ntp" { value 12; } enum "cflowd" { value 13; } enum "ptp" { value 23; } enum "mcreporter" { value 24; } enum "sflow" { value 27; } enum "icmp-error" { value 29; } enum "ldap" { value 31; } } } description "Source IP address for the application"; } choice source { case interface-name { leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Interface name whose IP address to be used in all packets sent by the application"; } } case address { leaf address { type types-sros:ipv4-address; sros-ext:immutable; description "Source IPv4 address to be used in all packets sent by the application"; } } } } // list ipv4 list ipv6 { key "application"; description "Enter the ipv6 list instance"; leaf application { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "telnet" { value 14; } enum "ftp" { value 15; } enum "radius" { value 16; } enum "tacplus" { value 17; } enum "snmptrap" { value 18; } enum "syslog" { value 19; } enum "ping" { value 20; } enum "traceroute" { value 21; } enum "dns" { value 22; } enum "cflowd" { value 25; } enum "ntp" { value 26; } enum "sflow" { value 28; } enum "icmp6-error" { value 30; } enum "ldap" { value 32; } } } description "Source IPv6 address for the application"; } leaf address { type types-sros:ipv6-address; sros-ext:immutable; description "Source IPv6 address to be used in all packets sent by the application"; } } // list ipv6 } // container source-address container system-passwords { description "Enter the system-passwords context"; leaf admin-password { type types-sros:hashed-leaf { length "3..136"; } description "Password that assigns the user as administrator"; } leaf vsd-password { type types-sros:hashed-leaf { length "3..136"; } description "Password that allows the user to assign VSD services"; } } // container system-passwords container tech-support { description "Enter the tech-support context"; leaf ts-location { type types-sros:ts-url-string; description "Default file path for generated tech-support files"; } } // container tech-support container hash-control { description "Enter the hash-control context"; container management-interface { description "Enter the management-interface context"; container classic-cli { description "Enter the classic-cli context"; leaf read-algorithm { type enumeration { enum "all-hash" { value 0; } enum "hash" { value 1; } enum "hash2" { value 2; } enum "custom" { value 3; } } default "all-hash"; description "Global read algorithm for the system"; } leaf write-algorithm { type enumeration { enum "cleartext" { value 0; } enum "hash" { value 1; } enum "hash2" { value 2; } enum "custom" { value 3; } } default "hash2"; description "Changes output of secret values"; } } // container classic-cli container md-cli { description "Enter the md-cli context"; leaf hash-algorithm { type enumeration { enum "cleartext" { value 0; } enum "hash" { value 1; } enum "hash2" { value 2; } enum "custom" { value 3; } } default "hash2"; description "Changes output of secret values"; } } // container md-cli container netconf { description "Enter the netconf context"; leaf hash-algorithm { type enumeration { enum "cleartext" { value 0; } enum "hash" { value 1; } enum "hash2" { value 2; } enum "custom" { value 3; } } default "hash2"; description "Changes output of secret values"; } } // container netconf container grpc { description "Enter the grpc context"; leaf hash-algorithm { type enumeration { enum "cleartext" { value 0; } enum "hash" { value 1; } enum "hash2" { value 2; } enum "custom" { value 3; } } default "hash2"; description "Changes output of secret values"; } } // container grpc } // container management-interface } // container hash-control container management { description "Enter the management context"; leaf allow-telnet { type boolean; default "true"; description "Allow/disallow access to telnet server."; } leaf allow-telnet6 { type boolean; default "true"; description "Allow/disallow access to telnet IPv6 server."; } leaf allow-ftp { type boolean; default "true"; description "Allow/disallow access to ftp server."; } leaf allow-ssh { type boolean; default "true"; description "Allow/disallow access to ssh server."; } leaf allow-netconf { type boolean; default "true"; description "Allow/disallow access to netconf server."; } leaf allow-grpc { type boolean; default "true"; description "Allow/disallow access to grpc server."; } } // container management container aaa { description "Enter the aaa context"; leaf health-check { type union { type int32 { range "6..1500"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "30"; description "Polling interval of RADIUS, TACACS+, and LDAP servers"; } container remote-servers { description "Enter the remote-servers context"; container radius { description "Enter the radius context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RADIUS authentication"; } leaf accounting { type boolean; default "false"; description "Enable/disable RADIUS command accounting."; } leaf accounting-port { type uint32 { range "1..65535"; } default "1813"; description "Port number on which to contact RADIUS server for accounting requests."; } leaf authorization { type boolean; default "false"; description "Enable/disable RADIUS command authorization."; } leaf interactive-authentication { type boolean; default "false"; description "Enable/disable RADIUS interactive authentication."; } leaf server-retry { type uint32 { range "1..10"; } default "3"; description "Number of attempts to retry contacting RADIUS."; } leaf server-timeout { type uint32 { range "1..90"; } units "seconds"; default "3"; description "Timeout for a response from RADIUS server."; } leaf port { type uint32 { range "1..65535"; } default "1812"; description "Port number on which to contact RADIUS server."; } leaf use-default-template { type boolean; default "false"; description "Enable/disable RADIUS default template."; } leaf access-algorithm { type enumeration { enum "direct" { value 1; } enum "round-robin" { value 2; } } default "direct"; description "Configure the algorithm used to access the set of RADIUS servers."; } list server { key "index"; max-elements 5; description "Enter the server list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..5"; } } description "Unique number which identifies a specific RADIUS server."; } leaf address { type types-sros:ip-unicast-address; description "IP address of Radius server."; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "The secret key associated with RADIUS server. The value of secret cannot be set to an empty string."; } } // list server } // container radius container ldap { description "Enter the ldap context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the LDAP protocol"; } leaf public-key-authentication { type boolean; default "false"; description "Allow SSH public key authentication from LDAP server"; } leaf server-retry { type uint32 { range "1..10"; } default "3"; description "Number of attempts to retry contacting an LDAP server"; } leaf server-timeout { type types-sros:time-duration { range "1..90"; } units "seconds"; default "3"; description "Timeout for a response from an LDAP server"; } leaf use-default-template { type boolean; default "true"; description "Use LDAP default template"; } list server { key "index"; max-elements 5; description "Enter the server list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..5"; } } description "Unique value which identifies a specific LDAP server."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this LDAP server"; } leaf server-name { type types-sros:named-item; description "LDAP server name"; } leaf tls-profile { type types-sros:named-item; description "TLS client transport profile"; } list address { key "ip-address"; max-elements 1; description "Enter the address list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-address; } description "LDAP server address"; } leaf port { type int32 { range "1..65535"; } default "389"; description "Port number on which to contact the LDAP server."; } } // list address container bind-authentication { description "Enter the bind-authentication context"; leaf root-dn { type types-sros:string-not-all-spaces { length "1..512"; } description "Root domain used for authentication with the LDAP server."; } leaf password { type types-sros:encrypted-leaf { length "1..199"; } description "Password used for authentication with the LDAP server."; } } // container bind-authentication container search { description "Enter the search context"; leaf base-dn { type types-sros:string-not-all-spaces { length "1..512"; } description "LDAP server search domain"; } } // container search } // list server } // container ldap container tacplus { description "Enter the tacplus context"; leaf interactive-authentication { type boolean; default "false"; description "Enable/disable TACACS+ interactive authentication."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the TACACS+ protocol operation"; } leaf server-timeout { type types-sros:time-duration { range "1..90"; } units "seconds"; default "3"; description "Timeout for a response from an TACACS+ server."; } leaf use-default-template { type boolean; default "true"; description "Enable/disable TACACS+ default template."; } container accounting { presence "Enter the 'accounting' context"; description "Enable the accounting context"; leaf record-type { type enumeration { enum "start-stop" { value 1; } enum "stop-only" { value 2; } } default "stop-only"; description "Configure the type of accounting record packet that is to be sent to the TACACS+ server."; } } // container accounting container authorization { presence "Enter the 'authorization' context"; description "Enable the authorization context"; leaf use-priv-lvl { type boolean; default "false"; description "Enable/disable the privilege level mapping."; } } // container authorization container admin-control { description "Enter the admin-control context"; leaf tacplus-map-to-priv-lvl { type int32 { range "0..15"; } description "Interactive authentication exchange from the node to the TACACS+ server"; } } // container admin-control container priv-lvl-map { description "Enter the priv-lvl-map context"; list priv-lvl { key "level"; description "Enter the priv-lvl list instance"; leaf level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "0..15"; } } description "Specifies the privilege level for this mapping."; } leaf user-profile-name { type types-sros:named-item { pattern "[^ ]*" { error-message "The name cannot contain spaces."; } } description "Specifies the user profile for this mapping."; } } // list priv-lvl } // container priv-lvl-map list server { key "index"; max-elements 5; description "Enter the server list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..5"; } } description "Identifies a specific TACACS+ server."; } leaf address { type types-sros:ip-unicast-address; description "IP address of TACACS+ server."; } leaf port { type types-qos:tcp-udp-match-port; default "49"; description "TCP port number on which to contact TACACS+ server."; } leaf secret { type types-sros:encrypted-leaf { length "1..199"; } description "The secret key associated with the TACACS+ server. The value of secret cannot be set to an empty string."; } } // list server } // container tacplus } // container remote-servers container local-profiles { description "Enter the local-profiles context"; list profile { key "user-profile-name"; max-elements 128; description "Enter the profile list instance"; leaf user-profile-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item { pattern "[^ ]*" { error-message "The name cannot contain spaces."; } } } description "Profile name"; } leaf cli-session-group { type types-sros:named-item { pattern "[^ ]*" { error-message "The name cannot contain spaces."; } } description "CLI session group to which the profile belongs"; } leaf default-action { type enumeration { enum "deny-all" { value 1; } enum "permit-all" { value 2; } enum "none" { value 3; } enum "read-only-all" { value 4; } } default "none"; description "Action for non-matching entry"; } leaf combined-max-sessions { type types-system:session-limit; description "Maximum number of concurrent SSH and Telnet sessions"; } leaf ssh-max-sessions { type types-system:session-limit; description "Maximum number of concurrent SSH sessions"; } leaf telnet-max-sessions { type types-system:session-limit; description "Maximum number of concurrent TELNET sessions"; } leaf li { type boolean; default "false"; description "Lawful Intercept profile identifier."; } container grpc { description "Enter the grpc context"; container rpc-authorization { description "Enter the rpc-authorization context"; leaf gnmi-capabilities { type types-system:permit-deny; description "Capabilities RPC usage"; } leaf gnmi-get { type types-system:permit-deny; description "gNMI Get RPC usage"; } leaf gnmi-set { type types-system:permit-deny; description "gNMI Set RPC usage"; } leaf gnmi-subscribe { type types-system:permit-deny; description "gNMI Subscribe RPC usage"; } leaf gnoi-cert-mgmt-rotate { type types-system:permit-deny; default "deny"; description "Rotate RPC usage"; } leaf gnoi-cert-mgmt-install { type types-system:permit-deny; default "deny"; description "Install RPC usage"; } leaf gnoi-cert-mgmt-getcert { type types-system:permit-deny; default "deny"; description "GetCertificates RPC usage"; } leaf gnoi-cert-mgmt-revoke { type types-system:permit-deny; default "deny"; description "RevokeCertificates RPC usage"; } leaf gnoi-cert-mgmt-cangenerate { type types-system:permit-deny; default "deny"; description "CanGenerateCSR RPC usage"; } leaf gnoi-file-get { type types-system:permit-deny; description "gNOI File Get RPC usage"; } leaf gnoi-file-put { type types-system:permit-deny; description "gNOI File Put RPC usage"; } leaf gnoi-file-stat { type types-system:permit-deny; description "gNOI File Stat RPC usage"; } leaf gnoi-file-remove { type types-system:permit-deny; description "gNOI File Remove RPC usage"; } leaf gnoi-system-setpackage { type types-system:permit-deny; default "deny"; description "gNOI System SetPackage RPC usage"; } leaf gnoi-system-switchcontrolprocessor { type types-system:permit-deny; default "deny"; description "gNOI System SwitchControlProcessor RPC usage"; } leaf gnoi-system-reboot { type types-system:permit-deny; default "deny"; description "gNOI System Reboot RPC usage"; } leaf gnoi-system-rebootstatus { type types-system:permit-deny; default "deny"; description "gNOI System RebootStatus RPC usage"; } leaf gnoi-system-cancelreboot { type types-system:permit-deny; default "deny"; description "gNOI System CancelReboot RPC usage"; } leaf md-cli-session { type types-system:permit-deny; description "gNOI MdCli Session RPC usage"; } leaf rib-api-getversion { type types-system:permit-deny; description "GetVersion RPC use for RibApi service"; } leaf rib-api-modify { type types-system:permit-deny; description "Modify RPC use for RibApi service"; } } // container rpc-authorization } // container grpc container netconf { description "Enter the netconf context"; container base-op-authorization { description "Enter the base-op-authorization context"; leaf kill-session { type boolean; default "false"; description "Send a kill session NETCONF operation"; } leaf lock { type boolean; default "false"; description "Send a lock session NETCONF operation"; } } // container base-op-authorization } // container netconf list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..9999"; } } description "User profile entry identifier"; } leaf action { type enumeration { enum "deny" { value 1; } enum "permit" { value 2; } enum "none" { value 3; } enum "read-only" { value 4; } } default "none"; description "Action when a user command matches this entry"; } leaf description { type types-sros:description; description "Text description"; } leaf match { type types-sros:display-string; description "Command to match this entry"; } } // list entry } // list profile } // container local-profiles list user-template { key "user-template-name"; description "Enter the user-template list instance"; leaf user-template-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "ldap-default" { value 0; } enum "radius-default" { value 1; } enum "tacplus-default" { value 2; } } } description "Template value to derive a system user"; } leaf home-directory { type types-sros:local-url; description "Home directory for the user based on this template"; } leaf profile { type types-sros:named-item { pattern "[^ ]*" { error-message "The profile name cannot contain spaces."; } } description "User profile based on this template"; } leaf restricted-to-home { type boolean; default "false"; description "Users to prevent from navigating above their home directories to access file"; } container access { description "Enter the access context"; leaf ftp { type boolean; default "false"; description "Allow FTP access"; } leaf console { type boolean; default "true"; description "Allow console access (serial port or Telnet)"; } leaf grpc { type boolean; default "false"; description "Allow gRPC access"; } leaf netconf { type boolean; default "false"; description "Allow NETCONF session access"; } leaf li { type boolean; default "false"; description "Enable/disable access to LI."; } } // container access container console { description "Enter the console context"; leaf login-exec { type types-sros:string-not-all-spaces { length "1..200"; } description "File to execute when a user, who derived from the template, logs in successfully"; } } // container console } // list user-template list cli-session-group { key "cli-session-group-name"; max-elements 16; description "Enter the cli-session-group list instance"; leaf cli-session-group-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item { pattern "[^ ]*" { error-message "The name cannot contain spaces."; } } } description "The name of the cli session group."; } leaf description { type types-sros:description; description "Text description"; } leaf combined-max-sessions { type types-system:session-limit; description "Maximum number of concurrent SSH and Telnet sessions"; } leaf ssh-max-sessions { type types-system:session-limit; description "Maximum number of concurrent SSH sessions"; } leaf telnet-max-sessions { type types-system:session-limit; description "Maximum number of concurrent TELNET sessions"; } } // list cli-session-group container management-interface { description "Enter the management-interface context"; container output-authorization { description "Enter the output-authorization context"; leaf md-interfaces { type boolean; default "true"; description "Perform output authorization"; } leaf telemetry-data { type boolean; default "false"; description "Perform telemetry data notification authorization"; } } // container output-authorization container md-cli { description "Enter the md-cli context"; leaf command-accounting-during-load { type boolean; default "true"; description "Perform remote command accounting during a load or rollback operation"; } } // container md-cli } // container management-interface } // container aaa container cli-script { description "Enter the cli-script context"; container authorization { description "Enter the authorization context"; container cron { description "Enter the cron context"; leaf cli-user { type types-sros:named-item; description "User profile name for command authorization when executing a CLI command script"; } } // container cron container event-handler { description "Enter the event-handler context"; leaf cli-user { type types-sros:named-item; description "User profile name for command authorization when executing a CLI command script"; } } // container event-handler container vsd { description "Enter the vsd context"; leaf cli-user { type types-sros:named-item; description "User profile name for command authorization when executing a CLI command script"; } } // container vsd } // container authorization } // container cli-script container cpm-filter { description "Enter the cpm-filter context"; leaf default-action { type enumeration { enum "drop" { value 1; } enum "accept" { value 2; } } default "accept"; description "Action for packets that do not match any filter entries"; } container ip-filter { description "Enter the ip-filter context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this CPM filter"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..131072"; } } description "The id used to uniquely identify this filter entry."; } leaf description { type types-sros:description; description "Text description"; } leaf log { type types-filter:filter-log-id; description "Log that is used for packets matching this entry"; } container match { description "Enter the match context"; leaf router-instance { type types-sros:named-item-64; description "Specifies router instance to be matched."; } leaf protocol { type types-sros:match-ip-protocol; description "Specifies the IP protocol to match. It can be set to -1 to disable matching cpm protocol."; } leaf dscp { type types-qos:dscp-name; description "Specifies the DSCP to be matched on the packet."; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Match criterion based on presence of fragmented packets"; } leaf multiple-option { type boolean; description "Specifies whether multiple options are to be matched."; } leaf option-present { type boolean; description "Specifies whether IP options matching is enabled."; } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Parameter port list as match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Parameter port list as match criterion"; } } } } // container dst-port } case port { container port { description "Enter the port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Parameter port list as match criterion"; } } } } // container port } } container ip-option { presence "Enter the 'ip-option' context"; description "Enable the ip-option context"; leaf type { type types-filter:filter-match-ip-option; description "Specific IP option to match"; } leaf mask { type types-filter:filter-match-ip-option { range "1..255"; } default "255"; description "Mask that is ANDed with ip-option value in the packet header"; } } // container ip-option container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "IP address to match"; } leaf mask { type types-sros:ipv4-address; description "Mask as an AND to the IP address"; } } case ip-prefix-list { leaf ip-prefix-list { type types-sros:named-item; description "IP prefix list as match criterion for IP address"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "IP address to match"; } leaf mask { type types-sros:ipv4-address; description "Mask as an AND to the IP address"; } } case ip-prefix-list { leaf ip-prefix-list { type types-sros:named-item; description "IP prefix list as match criterion for IP address"; } } } } // container dst-ip container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match"; } } } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "TCP ACK packet to match"; } leaf syn { type boolean; description "TCP SYN packet to match"; } } // container tcp-flags } // container match container action { description "Enter the action context"; choice action-choice { default "case-drop"; case case-drop { leaf drop { type empty; description "Drop packet matching this entry"; } } case case-accept { leaf accept { type empty; description "Packets matching the filter entry are forwarded"; } } case case-default { leaf default { type empty; description "Action to take on the traffic when the filter entry matches"; } } case case-queue { leaf queue { type uint32 { range "33..2000"; } description "Packets matching the filter entry to be sent to this queue"; } } } } // container action } // list entry } // container ip-filter container ipv6-filter { description "Enter the ipv6-filter context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this CPM filter"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..131072"; } } description "The id used to uniquely identify this filter entry."; } leaf description { type types-sros:description; description "Text description"; } leaf log { type types-filter:filter-log-id; description "Log that is used for packets matching this entry"; } container match { description "Enter the match context"; leaf router-instance { type types-sros:named-item-64; description "Specifies router instance to be matched."; } leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } leaf dscp { type types-qos:dscp-name; description "Specifies the DSCP to be matched on the packet."; } leaf flow-label { type types-filter:filter-match-flow-label; description "Specifies the flow label to be matched."; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Match criterion based on presence of fragmented packets"; } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Parameter port list as match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Parameter port list as match criterion"; } } } } // container dst-port } case port { container port { description "Enter the port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type types-sros:named-item; description "Parameter port list as match criterion"; } } } } // container port } } container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "IP prefix list as match criterion for IP address"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "IP prefix list as match criterion for IP address"; } } } } // container dst-ip container extension-header { description "Enter the extension-header context"; leaf hop-by-hop { type boolean; description "Match a packet as per the existence of a Hop-By-Hop options Extension Header"; } } // container extension-header container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv6-match-icmp-codes; description "ICMP code to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv6-match-icmp-types; description "ICMP type to match"; } } } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "TCP ACK packet to match"; } leaf syn { type boolean; description "TCP SYN packet to match"; } } // container tcp-flags } // container match container action { description "Enter the action context"; choice action-choice { default "case-drop"; case case-drop { leaf drop { type empty; description "Drop packet matching this entry"; } } case case-accept { leaf accept { type empty; description "Packets matching the filter entry are forwarded"; } } case case-default { leaf default { type empty; description "Action to take on the traffic when the filter entry matches"; } } case case-queue { leaf queue { type uint32 { range "33..2000"; } description "Packets matching the filter entry to be sent to this queue"; } } } } // container action } // list entry } // container ipv6-filter container mac-filter { description "Enter the mac-filter context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this CPM filter"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..131072"; } } description "The id used to uniquely identify this filter entry."; } leaf description { type types-sros:description; description "Text description"; } leaf log { type types-filter:filter-log-id; description "Log that is used for packets matching this entry"; } container match { description "Enter the match context"; leaf service { type types-services:service-name; description "Specifies the VPLS service in which the packet is to be received for this entry to match."; } leaf frame-type { type enumeration { enum "802dot2-llc" { value 1; } enum "ethernet-ii" { value 3; } } description "MAC frame as match criteria"; } leaf etype { type types-services:etype-value; description "Ethernet type"; } container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container src-mac container dst-mac { presence "Enter the 'dst-mac' context"; description "Enable the dst-mac context"; leaf address { type yang:mac-address; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container dst-mac container llc-ssap { presence "Enter the 'llc-ssap' context"; description "Enable the llc-ssap context"; leaf ssap { type types-qos:service-access-point; description "SSAP value"; } leaf mask { type types-qos:service-access-point { range "1..255"; } default "255"; description "SAP mask"; } } // container llc-ssap container llc-dsap { presence "Enter the 'llc-dsap' context"; description "Enable the llc-dsap context"; leaf dsap { type types-qos:service-access-point; description "DSAP value"; } leaf mask { type types-qos:service-access-point { range "1..255"; } default "255"; description "DSAP mask"; } } // container llc-dsap container cfm-opcode { description "Enter the cfm-opcode context"; choice cfm-opcode { case eq { leaf eq { type uint32 { range "0..255"; } description "Value of the opcode to match"; } } case lt { leaf lt { type uint32 { range "1..255"; } description "Upper bound for the range of opcode to match"; } } case gt { leaf gt { type uint32 { range "0..254"; } description "Lower bound for the range of opcode to match"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint32 { range "0..254"; } description "Lower bound for the range of opcode to match"; } leaf end { type uint32 { range "1..255"; } description "Upper bound for the range of opcode to match"; } } // container range } } } // container cfm-opcode } // container match container action { description "Enter the action context"; choice action-choice { default "case-drop"; case case-drop { leaf drop { type empty; description "Drop packet matching this entry"; } } case case-accept { leaf accept { type empty; description "Packets matching the filter entry are forwarded"; } } case case-default { leaf default { type empty; description "Action to take on the traffic when the filter entry matches"; } } case case-queue { leaf queue { type uint32 { range "33..2000"; } description "Packets matching the filter entry to be sent to this queue"; } } } } // container action } // list entry } // container mac-filter } // container cpm-filter container cpm-queue { description "Enter the cpm-queue context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "33..2000"; } } description "Unique identifier of a CPM queue"; } leaf cbs { type types-security:burst-size; units "kilobps"; description "CBS (Committed Burst Excess) associated with this queue"; } leaf mbs { type types-security:burst-size; units "kilobps"; description "MBS (Maximum Burst Size) associated with this queue"; } container rate { description "Enter the rate context"; leaf pir { type types-system:pir-rate; units "kilobps"; default "max"; description "Peak information rate associated with this queue"; } leaf cir { type types-system:cir-rate; units "kilobps"; default "max"; description "Amount of bandwidth committed to the queue"; } } // container rate } // list queue } // container cpm-queue container management-access-filter { description "Enter the management-access-filter context"; container ip-filter { description "Enter the ip-filter context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of management-access IP filters"; } leaf default-action { type types-filter:maf-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..9999"; } } description "The id used to uniquely identify this filter entry."; } leaf action { type types-filter:maf-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } leaf description { type types-sros:description; description "Text description"; } leaf log-events { type boolean; default "false"; description "If is 'true', entry match logging is enabled."; } container match { description "Enter the match context"; leaf router-instance { type string; description "Specifies router instance to be matched."; } leaf protocol { type types-sros:match-ip-protocol; description "Specifies protocol to match."; } container src-ip { description "Enter the src-ip context"; choice src-ip { case address { leaf address { type union { type types-sros:ipv4-prefix; type types-sros:ipv4-address; } description "IP address or IP prefix."; } leaf mask { type types-sros:ipv4-address; description "IP address mask."; } } case ip-prefix-list { leaf ip-prefix-list { type types-sros:named-item; description "IP prefix list as a match criterion for the IP address"; } } } } // container src-ip container mgmt-port { description "Enter the mgmt-port context"; choice mgmt-port { case port-id { leaf port-id { type types-sros:port; description "Specifies source port."; } } case cpm { leaf cpm { type empty; description "Specifies source cpm."; } } case lag-id { leaf lag { type types-sros:lag-interface; description "Source LAG name"; } leaf lag-id { status obsolete; type types-sros:lag-interface; description "Specifies source lag."; } } } } // container mgmt-port container dst-port { presence "Enter the 'dst-port' context"; description "Enable the dst-port context"; leaf port { type uint16 { range "1..65535"; } description "Specifies port to match."; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Specifies mask to match."; } } // container dst-port } // container match } // list entry } // container ip-filter container ipv6-filter { description "Enter the ipv6-filter context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of management-access IP filters"; } leaf default-action { type types-filter:maf-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..9999"; } } description "The id used to uniquely identify this filter entry."; } leaf action { type types-filter:maf-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } leaf description { type types-sros:description; description "Text description"; } leaf log-events { type boolean; default "false"; description "If is 'true', entry match logging is enabled."; } container match { description "Enter the match context"; leaf router-instance { type string; description "Specifies router instance to be matched."; } leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } leaf flow-label { type types-filter:filter-match-flow-label; description "Specifies the flow label to be matched."; } container src-ip { description "Enter the src-ip context"; choice src-ip { case address { leaf address { type union { type types-sros:ipv6-prefix; type types-sros:ipv6-address; } description "IPv6 address or IPv6 prefix."; } leaf mask { type types-sros:ipv6-address; description "IPv6 address mask."; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type types-sros:named-item; description "IPv6 prefix list as a match criterion for IPv6 address"; } } } } // container src-ip container mgmt-port { description "Enter the mgmt-port context"; choice mgmt-port { case port-id { leaf port-id { type types-sros:port; description "Specifies source port."; } } case cpm { leaf cpm { type empty; description "Specifies source cpm."; } } case lag-id { leaf lag { type types-sros:lag-interface; description "Source LAG name"; } leaf lag-id { status obsolete; type types-sros:lag-interface; description "Specifies source lag."; } } } } // container mgmt-port container dst-port { presence "Enter the 'dst-port' context"; description "Enable the dst-port context"; leaf port { type uint16 { range "1..65535"; } description "Specifies port to match."; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Specifies mask to match."; } } // container dst-port } // container match } // list entry } // container ipv6-filter container mac-filter { description "Enter the mac-filter context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of management access MAC filter"; } leaf default-action { type types-filter:maf-mac-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..9999"; } } description "The id used to uniquely identify this filter entry."; } leaf action { type types-filter:maf-mac-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } leaf description { type types-sros:description; description "Text description"; } leaf log-events { type boolean; default "false"; description "If is 'true', entry match logging is enabled."; } container match { description "Enter the match context"; leaf service { type types-services:service-name; description "Specifies the service id in which the packet is to be received for this entry to match."; } leaf frame-type { type enumeration { enum "802dot3" { value 0; } enum "802dot2-llc" { value 1; } enum "802dot2-snap" { value 2; } enum "ethernet-ii" { value 3; } enum "802dot1-ag" { value 4; } } default "802dot3"; description "Specifies the type of mac frame for which we are defining this match criteria."; } leaf etype { type types-services:etype-value; description "Specifies the Ethertype for this MAC filter entry. This object has no significance if the object frame-type is not set to Ethernet_II."; } leaf snap-pid { type int32 { range "0..65535"; } description "Specifies snap-pid Match Criteria."; } leaf snap-oui { type enumeration { enum "zero" { value 2; } enum "non-zero" { value 3; } } description "Specifies snap-oui Match Criteria."; } container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container src-mac container dst-mac { presence "Enter the 'dst-mac' context"; description "Enable the dst-mac context"; leaf address { type yang:mac-address; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container dst-mac container dot1p { presence "Enter the 'dot1p' context"; description "Enable the dot1p context"; leaf priority { type int32 { range "0..7"; } description "Specifies a Dot1p value to assign to the traffic generated by this application."; } leaf mask { type int32 { range "1..7"; } default "7"; description "Specifies a Dot1p value to assign to the traffic generated by this application."; } } // container dot1p container llc-ssap { presence "Enter the 'llc-ssap' context"; description "Enable the llc-ssap context"; leaf ssap { type int32 { range "0..255"; } description "Specifies SSAP value."; } leaf mask { type int32 { range "1..255"; } default "255"; description "Specifies SSAP mask."; } } // container llc-ssap container llc-dsap { presence "Enter the 'llc-dsap' context"; description "Enable the llc-dsap context"; leaf dsap { type int32 { range "0..255"; } description "Specifies DSAP value."; } leaf mask { type int32 { range "1..255"; } default "255"; description "Specifies DSAP mask."; } } // container llc-dsap container cfm-opcode { description "Enter the cfm-opcode context"; choice match-cfm-opcode { case operator-eq { leaf eq { type uint32 { range "0..255"; } description "Specifies the operator for op-code matching."; } } case operator-lt { leaf lt { type uint32 { range "1..255"; } description "Specifies the operator for op-code matching."; } } case operator-gt { leaf gt { type uint32 { range "0..254"; } description "Specifies the operator for op-code matching."; } } case opcode-range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint32 { range "0..254"; } description "Specifies lower bound for the range of op-code to match."; } leaf end { type uint32 { range "1..255"; } description "Specifies upper bound for the range of op-code to match."; } } // container range } } } // container cfm-opcode } // container match } // list entry } // container mac-filter } // container management-access-filter container pki { description "Enter the pki context"; leaf certificate-display-format { type enumeration { enum "ascii" { value 1; } enum "utf8" { value 2; } } default "ascii"; description "Display format for certificates and Certificate Revocation Lists (CRLs)"; } leaf imported-format { type enumeration { enum "any" { value 1; } enum "secure" { value 2; } } default "any"; description "The supported encrypted file formats"; } leaf maximum-cert-chain-depth { type uint32 { range "1..7"; } default "7"; description "Maximum depth of certificate chain verification"; } container certificate-expiration-warning { description "Enter the certificate-expiration-warning context"; leaf hours { type int32 { range "0..8760"; } units "hours"; description "Time at which the system generates the certificate expiration warning trap for in-use certificates"; } leaf repeat-hours { type int32 { range "0..8760"; } units "hours"; default "0"; description "Time period when the system repeatedly generates the certificate expiration warning trap"; } } // container certificate-expiration-warning container crl-expiration-warning { description "Enter the crl-expiration-warning context"; leaf hours { type int32 { range "0..8760"; } units "hours"; description "Time when the system generates the Certificate Revocation List (CRL) expiration warning trap"; } leaf repeat-hours { type int32 { range "0..8760"; } units "hours"; default "0"; description "Time when the system repeatedly generates the Certificate Revocation List (CRL) expiration warning trap"; } } // container crl-expiration-warning list ca-profile { key "ca-profile-name"; max-elements 128; description "Enter the ca-profile list instance"; leaf ca-profile-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Certificate Authority (CA) profile name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the CA profile"; } leaf description { type types-sros:description; description "Text description"; } leaf cert-file { type types-security:pki-file-name; description "Certificate file name"; } leaf crl-file { type types-security:pki-file-name; description "Certificate Revocation List (CRL) file name"; } leaf revocation-check { type enumeration { enum "crl" { value 1; } enum "crl-optional" { value 2; } } default "crl"; description "Method to verify the revocation status of certificates issued by the CA"; } container ocsp { description "Enter the ocsp context"; leaf responder-url { type union { type types-sros:http-optional-url-loose; } description "HTTP URL of the OCSP responder for the CA"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf transmission-profile { type types-sros:named-item; description "The transmission profile for OCSP."; } } // container ocsp container cmpv2 { description "Enter the cmpv2 context"; leaf always-set-sender-for-ir { type boolean; default "false"; description "Subject name in CMPv2 header for all Initial Registration (IR) messages"; } leaf same-recipient-nonce-for-poll-request { type boolean; default "false"; description "Same recipNonce as the last CMPv2 response for a poll request"; } leaf response-signing-cert { type types-security:pki-file-name; description "File name of the certificate to verify the signature of received CMPv2 responses"; } container accept-unprotected-message { description "Enter the accept-unprotected-message context"; leaf error-message { type boolean; default "false"; description "Accept unprotected error messages"; } leaf pkiconf-message { type boolean; default "false"; description "Accept unprotected PKI confirmation messages"; } } // container accept-unprotected-message container http { description "Enter the http context"; leaf response-timeout { type uint32 { range "1..3600"; } units "seconds"; default "30"; description "HTTP response timeout"; } leaf version { type enumeration { enum "1.0" { value 1; } enum "1.1" { value 2; } } default "1.1"; description "HTTP version for CMPv2 messages"; } } // container http container url { description "Enter the url context"; leaf url-string { type union { type types-sros:http-optional-url-loose; } description "URL for CMPv2"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } } // container url container key-list { description "Enter the key-list context"; list key { key "reference-number"; max-elements 128; description "Enter the key list instance"; leaf reference-number { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:display-string { length "1..64"; pattern ".*\\S.*" { error-message "Reference number must not be all spaces"; } } } description "Unique identifier for the CA initial authentication key"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "Shared secret for this CA initial authentication key"; } } // list key } // container key-list } // container cmpv2 container auto-crl-update { presence "Enter the 'auto-crl-update' context"; description "Enable the auto-crl-update context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the automatic CRL update"; } leaf periodic-update-interval { type types-sros:time-duration { range "3600..31622400"; } units "seconds"; default "86400"; description "Interval between two consecutive CRL updates"; } leaf pre-update-time { type types-sros:time-duration { range "0..31622400"; } units "seconds"; default "3600"; description "Time prior to the next update time of the current CRL"; } leaf retry-interval { type types-sros:time-duration { range "0..31622400"; } units "seconds"; default "3600"; description "Interval before retrying to update CRL"; } leaf schedule-type { type enumeration { enum "next-update-based" { value 1; } enum "periodic" { value 2; } } default "next-update-based"; description "Time scheduler type for an automated CRL update"; } container crl-urls { description "Enter the crl-urls context"; list url-entry { key "entry-id"; description "Enter the url-entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..8"; } } description "URL on this system"; } leaf transmission-profile { type types-sros:named-item; description "File transmission profile to update CRL"; } leaf url { type union { type types-sros:http-url-path-loose; } description "Location of updated CRL"; } } // list url-entry } // container crl-urls } // container auto-crl-update } // list ca-profile list common-name-list { key "cn-list-name"; max-elements 64; description "Enter the common-name-list list instance"; leaf cn-list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name for the common name list"; } list common-name { key "cn-index"; description "Enter the common-name list instance"; leaf cn-index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..128"; } } description "Common name index"; } leaf cn-type { type enumeration { enum "ip-address" { value 1; } enum "domain-name" { value 2; } } description "Common name type"; } leaf cn-value { type types-sros:regular-expression-not-all-spaces; description "Common name value"; } } // list common-name } // list common-name-list } // container pki container snmp { description "Enter the snmp context"; list access { key "group context security-model security-level"; description "Enter the access list instance"; leaf group { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Group name"; } leaf context { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } default "_sros_none"; description "String against which the context name should match to gain access rights"; } leaf security-model { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "snmpv1" { value 1; } enum "snmpv2c" { value 2; } enum "usm" { value 3; } } } description "Security model"; } leaf security-level { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type enumeration { enum "no-auth-no-privacy" { value 1; } enum "auth-no-privacy" { value 2; } enum "privacy" { value 3; } } } description "Minimum level of security required to gain the access rights allowed by this entry"; } leaf prefix-match { type enumeration { enum "exact" { value 1; } enum "prefix" { value 2; } } default "exact"; description "Type of the context name match"; } leaf read { type types-sros:named-item; description "Specifies the MIB view of the SNMP context to which this conceptual row authorizes read access."; } leaf write { type types-sros:named-item; description "Specifies the MIB view of the SNMP context to which this conceptual row authorizes write access."; } leaf notify { type types-sros:named-item; description "MIB view of SNMP context to which access for notifications is authorized by this conceptual row"; } } // list access list community { key "community-string"; description "Enter the community list instance"; leaf community-string { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:encrypted-leaf { length "1..114"; } } description "Management information that is accessed when using the community string"; } leaf access-permissions { type enumeration { enum "r" { value 1; } enum "rw" { value 2; } enum "rwa" { value 3; } enum "mgmt" { value 4; } enum "vpls-mgmt" { value 5; } } description "SNMP community name(s) to be used with the associated VPRN instance"; } leaf version { type enumeration { enum "v1" { value 1; } enum "v2c" { value 2; } enum "both" { value 3; } } default "both"; description "SNMP version"; } leaf source-access-list { type types-sros:string-not-all-spaces { length "1..32"; pattern "([A-Za-z].*[^ \\\\t]?$)|(^[^_].*[^ \\\\t]?)" { error-message "List name must begin with a letter"; } } description "Management information to be accessed when using the community string"; } } // list community list usm-community { key "community-string"; description "Enter the usm-community list instance"; leaf community-string { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:encrypted-leaf { length "1..114"; } } description "SNMPv1/SNMPv2 community string to determine the SNMPv3 access permission"; } leaf group { type types-sros:named-item; description "Group to manage the access rights of the community string"; } leaf source-access-list { type types-sros:string-not-all-spaces { length "1..32"; pattern "([A-Za-z].*[^ \\\\t]?$)|(^[^_].*[^ \\\\t]?)" { error-message "List name must begin with a letter"; } } description "Management information to be accessed when using the community string"; } } // list usm-community container attempts { description "Enter the attempts context"; leaf count { type uint16 { range "1..64"; } default "20"; description "Maximum unsuccessful SNMP attempts that are allowed for the specified time"; } leaf time { type uint16 { range "0..60"; } units "minutes"; default "5"; description "Time when a number of unsuccessful attempts are made before the host is locked out"; } leaf lockout { type uint16 { range "0..1440"; } units "minutes"; default "10"; description "Lockout period during which the host is not allowed to log in"; } } // container attempts list source-access-list { key "list-name"; max-elements 16; description "Enter the source-access-list list instance"; leaf list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:string-not-all-spaces { length "1..32"; pattern "([A-Za-z].*[^ \\\\t]?$)|(^[^_].*[^ \\\\t]?)" { error-message "List name must begin with a letter"; } } } description "Value for the name given to source access list"; } list source-host { key "host-name"; max-elements 16; description "Enter the source-host list instance"; leaf host-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Source host entry name"; } leaf address { type types-sros:ip-unicast-address; description "Address of the source host entry"; } } // list source-host } // list source-access-list list view { key "view-name subtree"; description "Enter the view list instance"; leaf view-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of the view to display output"; } leaf subtree { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..256"; } } description "Object Identifier (OID) value"; } leaf mask { type string { length "1..16"; pattern "(0X|0x)?(([A-Fa-f0-9]){2})+" { error-message "Hex value must be even number of characters."; } } default "ff"; description "Mask value as binary value, or hex value"; } leaf type { type enumeration { enum "included" { value 1; } enum "excluded" { value 2; } } default "included"; description "Type of SNMP security view mask"; } } // list view } // container snmp container ssh { description "Enter the ssh context"; leaf preserve-key { type boolean; default "false"; description "Save keys on SSH server and restore following a system reboot or SSH server restart"; } leaf server-admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SSH server"; } leaf version { type enumeration { enum "1" { value 1; } enum "2" { value 2; } enum "1-2" { value 3; } } default "2"; description "SSH protocol version to be supported by the SSH server"; } container server-cipher-list-v1 { description "Enter the server-cipher-list-v1 context"; list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..255"; } } description "Index of the cipher"; } leaf name { type enumeration { enum "des" { value 2; } enum "3des" { value 3; } enum "blowfish" { value 6; } } description "Cipher name value"; } } // list cipher } // container server-cipher-list-v1 container server-cipher-list-v2 { description "Enter the server-cipher-list-v2 context"; list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..255"; } } description "Index of the cipher"; } leaf name { type enumeration { enum "3des-cbc" { value 32; } enum "blowfish-cbc" { value 33; } enum "cast128-cbc" { value 34; } enum "arcfour" { value 35; } enum "aes128-cbc" { value 36; } enum "aes192-cbc" { value 37; } enum "aes256-cbc" { value 38; } enum "rijndael-cbc" { value 39; } enum "aes128-ctr" { value 40; } enum "aes192-ctr" { value 41; } enum "aes256-ctr" { value 42; } } description "Cipher name value"; } } // list cipher } // container server-cipher-list-v2 container client-cipher-list-v1 { description "Enter the client-cipher-list-v1 context"; list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..255"; } } description "Index of the cipher"; } leaf name { type enumeration { enum "des" { value 2; } enum "3des" { value 3; } enum "blowfish" { value 6; } } description "Cipher name value"; } } // list cipher } // container client-cipher-list-v1 container client-cipher-list-v2 { description "Enter the client-cipher-list-v2 context"; list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..255"; } } description "Index of the cipher"; } leaf name { type enumeration { enum "3des-cbc" { value 32; } enum "blowfish-cbc" { value 33; } enum "cast128-cbc" { value 34; } enum "arcfour" { value 35; } enum "aes128-cbc" { value 36; } enum "aes192-cbc" { value 37; } enum "aes256-cbc" { value 38; } enum "rijndael-cbc" { value 39; } enum "aes128-ctr" { value 40; } enum "aes192-ctr" { value 41; } enum "aes256-ctr" { value 42; } } description "Cipher name value"; } } // list cipher } // container client-cipher-list-v2 container server-mac-list-v2 { description "Enter the server-mac-list-v2 context"; list mac { key "index"; description "Enter the mac list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "MAC algorithm index"; } leaf name { type enumeration { enum "hmac-sha2-512" { value 1; } enum "hmac-sha2-256" { value 2; } enum "hmac-sha1" { value 3; } enum "hmac-sha1-96" { value 4; } enum "hmac-md5" { value 5; } enum "hmac-ripemd160" { value 6; } enum "hmac-ripemd160-openssh-com" { value 7; } enum "hmac-md5-96" { value 8; } } description "MAC algorithm that performs encryption or decryption"; } } // list mac } // container server-mac-list-v2 container client-mac-list-v2 { description "Enter the client-mac-list-v2 context"; list mac { key "index"; description "Enter the mac list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "MAC algorithm index"; } leaf name { type enumeration { enum "hmac-sha2-512" { value 1; } enum "hmac-sha2-256" { value 2; } enum "hmac-sha1" { value 3; } enum "hmac-sha1-96" { value 4; } enum "hmac-md5" { value 5; } enum "hmac-ripemd160" { value 6; } enum "hmac-ripemd160-openssh-com" { value 7; } enum "hmac-md5-96" { value 8; } } description "MAC algorithm that performs encryption or decryption"; } } // list mac } // container client-mac-list-v2 container key-re-exchange { description "Enter the key-re-exchange context"; container server { description "Enter the server context"; leaf minutes { type union { type uint32 { range "1..1440"; } type enumeration { enum "infinite" { value 0; } } } units "minutes"; default "60"; description "Time interval after which the SSH client initiates the key-re-exchange"; } leaf mbytes { type union { type uint32 { range "1..64000"; } type enumeration { enum "infinite" { value 0; } } } units "megabytes"; default "1024"; description "Number of megabytes on a SSH session after which the SSH client initiates the key-re-exchange"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the key re-exchange"; } } // container server container client { description "Enter the client context"; leaf minutes { type union { type uint32 { range "1..1440"; } type enumeration { enum "infinite" { value 0; } } } units "minutes"; default "60"; description "Time interval after which the SSH client initiates the key-re-exchange"; } leaf mbytes { type union { type uint32 { range "1..64000"; } type enumeration { enum "infinite" { value 0; } } } units "megabytes"; default "1024"; description "Number of megabytes on a SSH session after which the SSH client initiates the key-re-exchange"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the key re-exchange"; } } // container client } // container key-re-exchange container server-kex-list-v2 { description "Enter the server-kex-list-v2 context"; list kex { key "index"; description "Enter the kex list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "The index of the kex."; } leaf name { type enumeration { enum "diffie-hellman-group1-sha1" { value 1; } enum "diffie-hellman-group14-sha1" { value 2; } enum "diffie-hellman-group-exchange-sha1" { value 3; } enum "diffie-hellman-group14-sha256" { value 4; } enum "diffie-hellman-group16-sha512" { value 5; } } description "KEX algorithm for computing a shared secret key"; } } // list kex } // container server-kex-list-v2 container client-kex-list-v2 { description "Enter the client-kex-list-v2 context"; list kex { key "index"; description "Enter the kex list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "The index of the kex."; } leaf name { type enumeration { enum "diffie-hellman-group1-sha1" { value 1; } enum "diffie-hellman-group14-sha1" { value 2; } enum "diffie-hellman-group-exchange-sha1" { value 3; } enum "diffie-hellman-group14-sha256" { value 4; } enum "diffie-hellman-group16-sha512" { value 5; } } description "KEX algorithm for computing a shared secret key"; } } // list kex } // container client-kex-list-v2 } // container ssh container tls { description "Enter the tls context"; list cert-profile { key "cert-profile-name"; max-elements 16; description "Enter the cert-profile list instance"; leaf cert-profile-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "TLS certificate profile name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the certificate profile"; } list entry { key "entry-id"; max-elements 8; description "Enter the entry list instance"; leaf entry-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type int32 { range "1..8"; } } description "Certificate profile ID"; } leaf certificate-file { type types-sros:string-not-all-spaces { length "1..95"; pattern "[^:\\\\/]+"; } description "Certificate file name"; } leaf key-file { type types-sros:string-not-all-spaces { length "1..95"; pattern "[^:\\\\/]+"; } description "Key file name"; } container send-chain { description "Enter the send-chain context"; list ca-profile { key "ca-profile-name"; max-elements 7; description "Add a list entry for ca-profile"; leaf ca-profile-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Certificate Authority (CA) profile name"; } } // list ca-profile } // container send-chain } // list entry } // list cert-profile list client-cipher-list { key "client-cipher-list-name"; max-elements 16; description "Enter the client-cipher-list list instance"; leaf client-cipher-list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "TLS client cipher list"; } list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "Index of the cipher"; } leaf name { type enumeration { enum "tls-rsa-with3des-ede-cbc-sha" { value 10; } enum "tls-rsa-with-aes128-cbc-sha" { value 47; } enum "tls-rsa-with-aes256-cbc-sha" { value 53; } enum "tls-rsa-with-aes128-cbc-sha256" { value 60; } enum "tls-rsa-with-aes256-cbc-sha256" { value 61; } enum "tls-rsa-with-null-md5" { status obsolete; } enum "tls-rsa-with-null-sha" { status obsolete; } enum "tls-rsa-with-null-sha256" { status obsolete; } } description "Value for the cipher suite code"; } } // list cipher } // list client-cipher-list list server-cipher-list { key "server-cipher-list-name"; max-elements 16; description "Enter the server-cipher-list list instance"; leaf server-cipher-list-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of TLS server cipher list."; } list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "Index of the cipher"; } leaf name { type enumeration { enum "tls-rsa-with3des-ede-cbc-sha" { value 10; } enum "tls-rsa-with-aes128-cbc-sha" { value 47; } enum "tls-rsa-with-aes256-cbc-sha" { value 53; } enum "tls-rsa-with-aes128-cbc-sha256" { value 60; } enum "tls-rsa-with-aes256-cbc-sha256" { value 61; } enum "tls-rsa-with-null-md5" { status obsolete; } enum "tls-rsa-with-null-sha" { status obsolete; } enum "tls-rsa-with-null-sha256" { status obsolete; } } description "Value for the cipher suite code"; } } // list cipher } // list server-cipher-list list client-tls-profile { key "client-profile-name"; max-elements 16; description "Enter the client-tls-profile list instance"; leaf client-profile-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of TLS client profile."; } leaf cert-profile { type types-sros:named-item; description "Certificate profile ID"; } leaf cipher-list { type types-sros:named-item; description "Specifies the ordered list of supported cipher suite codes associated with this TLS client profile."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the client TLS profile"; } leaf trust-anchor-profile { type types-sros:named-item; description "Trust anchor profile"; } } // list client-tls-profile list server-tls-profile { key "server-profile-name"; max-elements 16; description "Enter the server-tls-profile list instance"; leaf server-profile-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of TLS server profile."; } leaf cert-profile { type types-sros:named-item; description "Certificate profile ID"; } leaf tls-re-negotiate-timer { type uint32 { range "0..65000"; } units "minutes"; default "0"; description "TLS HELLO request timer"; } leaf cipher-list { type types-sros:named-item; description "Specifies the ordered list of supported cipher suite codes associated with this TLS client profile."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the server TLS profile"; } container authenticate-client { description "Enter the authenticate-client context"; leaf trust-anchor-profile { type types-sros:named-item; description "Trust anchor profile for TLS client certificate authentication"; } leaf common-name-list { type types-sros:named-item; description "Common name list for TLS client certificate authentication"; } } // container authenticate-client } // list server-tls-profile list trust-anchor-profile { key "trust-anchor-profile-name"; max-elements 16; description "Enter the trust-anchor-profile list instance"; leaf trust-anchor-profile-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Name of TLS trust anchor profile"; } list trust-anchor { key "ca-profile-name"; max-elements 8; description "Add a list entry for trust-anchor"; leaf ca-profile-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Trusted CA profile"; } } // list trust-anchor } // list trust-anchor-profile } // container tls container user-params { description "Enter the user-params context"; container attempts { description "Enter the attempts context"; leaf count { type uint32 { range "1..64"; } default "3"; description "Number of unsuccessful login attempts"; } leaf time { type uint32 { range "0..60"; } units "minutes"; default "5"; description "Time frame of unsuccessful login attempts"; } leaf lockout { type uint32 { range "0..1440"; } units "minutes"; default "10"; description "Lockout period after unsuccessful login attempts"; } } // container attempts container authentication-order { description "Enter the authentication-order context"; leaf-list order { type types-security:password-authentication-order; max-elements 4; ordered-by user; description "Sequence of password authentication, authorization, and accounting"; } leaf exit-on-reject { type boolean; default "false"; description "Ignore subsequent AAA methods in authentication order when a reject is received"; } } // container authentication-order container local-user { description "Enter the local-user context"; container password { description "Enter the password context"; leaf aging { type uint32 { range "1..500"; } units "days"; description "Maximum time during which a user password is valid"; } leaf hashing { type enumeration { enum "bcrypt" { value 1; } enum "sha2-pbkdf2" { value 2; } enum "sha3-pbkdf2" { value 3; } } default "bcrypt"; description "Password hashing algorithm"; } leaf history-size { type uint32 { range "0..20"; } description "New password to match against previous ones"; } leaf minimum-age { type types-sros:time-duration { range "0..86400"; } units "seconds"; default "600"; description "Minimum age required for a password before changing it"; } leaf minimum-change { type uint32 { range "1..20"; } default "5"; description "Minimum distance required between the old and the new password"; } container complexity-rules { description "Enter the complexity-rules context"; leaf allow-user-name { type boolean; default "false"; description "User name as part of the password"; } leaf minimum-classes { type uint32 { range "2..4"; } description "Force the use of different character classes for a minimum number"; } leaf minimum-length { type uint32 { range "6..50"; } default "6"; description "Minimum length required for local passwords"; } leaf repeated-characters { type uint32 { range "2..8"; } description "Number of times the same character appears consecutively"; } choice complexity-rules-type { case credits { container credits { description "Enter the credits context"; leaf lowercase { type uint32 { range "1..10"; } description "Maximum credits given for the usage of lowercase letters"; } leaf uppercase { type uint32 { range "1..10"; } description "Maximum credits given for the usage of uppercase letters"; } leaf numeric { type uint32 { range "1..10"; } description "Maximum credits given for the usage of numeric characters"; } leaf special-character { type uint32 { range "1..10"; } description "Maximum credits given for the usage of special characters"; } } // container credits } case required { container required { description "Enter the required context"; leaf lowercase { type uint32 { range "1..10"; } description "Number required for lowercase letters"; } leaf uppercase { type uint32 { range "1..10"; } description "Number required for uppercase letters"; } leaf numeric { type uint32 { range "1..10"; } description "Number required for numeric characters"; } leaf special-character { type uint32 { range "1..10"; } description "Number required for special characters"; } } // container required } } } // container complexity-rules } // container password list user { key "user-name"; description "Enter the user list instance"; leaf user-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Local user name"; } leaf home-directory { type types-sros:local-url; description "Home directory for the user"; } leaf password { type types-sros:hashed-leaf { length "3..136"; } description "Password to authenticate the user for console and FTP access"; } leaf restricted-to-home { type boolean; default "false"; description "Users prevented from navigating above their home directories to access file"; } leaf-list cli-engine { type types-system:cli-engine-type; max-elements 2; ordered-by user; description "User level override for CLI engine access"; } container access { description "Enter the access context"; leaf console { type boolean; default "false"; description "Allow console access (serial port or Telnet)"; } leaf ftp { type boolean; default "false"; description "Allow FTP access"; } leaf snmp { type boolean; default "false"; description "Allow SNMP access"; } leaf netconf { type boolean; default "false"; description "Allow NETCONF session access"; } leaf grpc { type boolean; default "false"; description "Allow gRPC access"; } leaf li { type boolean; default "false"; description "Enable/disable access to LI."; } } // container access container console { description "Enter the console context"; leaf cannot-change-password { type boolean; default "false"; description "Change password privileges"; } leaf login-exec { type union { type types-sros:sat-url; type types-sros:cflash-url; type types-sros:ftp-tftp-url { length "1..180"; } type types-sros:filename; } description "File to execute when a user successfully logs in"; } leaf new-password-at-login { type boolean; default "false"; description "Prompt a user to change password at next console login"; } leaf-list member { type types-sros:named-item { pattern "[^ ]*" { error-message "The name cannot contain spaces."; } } max-elements 8; ordered-by user; description "User profiles for this user"; } } // container console container public-keys { description "Enter the public-keys context"; container ecdsa { description "Enter the ecdsa context"; list ecdsa-key { key "ecdsa-public-key-id"; description "Enter the ecdsa-key list instance"; leaf ecdsa-public-key-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32"; } } description "Number of the Secure Shell version 2 (SSHv2) ECDSA public key that is associated with system user"; } leaf description { type types-sros:description; description "Text description"; } leaf key-value { type types-sros:string-not-all-spaces { length "1..255"; } description "Number of the Secure Shell version 2 (SSHv2) ECDSA public key that is associated with system user"; } } // list ecdsa-key } // container ecdsa container rsa { description "Enter the rsa context"; list rsa-key { key "rsa-public-key-id"; description "Enter the rsa-key list instance"; leaf rsa-public-key-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..32"; } } description "Number of the Secure Shell version 2 (SSHv2) RSA public key that is associated with system user"; } leaf description { type types-sros:description; description "Text description"; } leaf key-value { type types-sros:string-not-all-spaces { length "1..800"; } description "Number of the Secure Shell version 2 (SSHv2) RSA public key that is associated with system user"; } } // list rsa-key } // container rsa } // container public-keys container snmp { description "Enter the snmp context"; leaf group { type types-sros:named-item; description "User to associate with a group name"; } container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf authentication-protocol { type enumeration { enum "md5" { value 2; } enum "sha" { value 3; } } description "Authentication protocol"; } leaf authentication-key { type types-sros:encrypted-leaf-hex-without-prefix { length "1..54"; } description "Authentication key for authentication protocol"; } container privacy { presence "Enter the 'privacy' context"; description "Enable the privacy context"; leaf privacy-protocol { type enumeration { enum "des" { value 2; } enum "aes-128-cfb" { value 4; } } description "Encryption protocol for authentication"; } leaf privacy-key { type types-sros:encrypted-leaf-hex-without-prefix { length "1..51"; } description "Localized privacy key for authentication"; } } // container privacy } // container authentication } // container snmp } // list user } // container local-user } // container user-params } // container security container telemetry { description "Enter the telemetry context"; list destination-group { key "name"; max-elements 225; description "Enter the destination-group list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Destination group name"; } leaf description { type types-sros:description; description "Text description"; } choice transport { case tls-client-profile { leaf tls-client-profile { type types-sros:named-item; description "TLS client profile assigned to the destination group"; } } case allow-unsecure-connection { leaf allow-unsecure-connection { type empty; description "Allow unsecured operation of gRPC connections"; } } } container tcp-keepalive { description "Enter the tcp-keepalive context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the TCP keep-alive algorithm"; } leaf idle-time { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "600"; description "Time until the first TCP keepalive probe is sent"; } leaf interval { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "15"; description "Time between TCP keepalive probes"; } leaf retries { type uint32 { range "3..100"; } default "4"; description "Number of probe retries before closing the connection"; } } // container tcp-keepalive list destination { key "address port"; max-elements 4; ordered-by user; description "Enter the destination list instance"; leaf address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type types-sros:ip-address; type types-sros:fully-qualified-domain-name; } } description "Address of the destination within the destination group"; } leaf port { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:tcp-udp-port; } description "TCP port number for the destination"; } leaf router-instance { type string; description "Router instance for the destination group"; } } // list destination } // list destination-group container persistent-subscriptions { description "Enter the persistent-subscriptions context"; list subscription { key "name"; max-elements 225; description "Enter the subscription list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Persistent subscription name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the persistent subscription"; } leaf description { type types-sros:description; description "Text description"; } leaf sensor-group { type types-sros:named-item; description "Sensor group used in the persistent subscription"; } leaf mode { type types-system:telemetry-path-mode; description "Mode for telemetry notifications"; } leaf sample-interval { type uint64 { range "1000..max"; } units "milliseconds"; default "10000"; description "Sampling interval for the persistent subscription"; } leaf destination-group { type types-sros:named-item; description "Name of the destination group used in the subscription"; } leaf local-source-address { type types-sros:ip-address; description "Local IP address of packets sent from the source"; } leaf originated-qos-marking { type types-qos:dscp-name; description "QoS marking used for telemetry notification packets"; } leaf encoding { type types-system:telemetry-value-encoding; default "json"; description "Encoding used for telemetry notifications"; } } // list subscription } // container persistent-subscriptions container sensor-groups { description "Enter the sensor-groups context"; list sensor-group { key "name"; max-elements 225; description "Enter the sensor-group list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item; } description "Sensor group name"; } leaf description { type types-sros:description; description "Text description"; } list path { key "xpath"; max-elements 4500; description "Add a list entry for path"; leaf xpath { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..512"; } } description "YANG model path indicating the data to be streamed"; } } // list path } // list sensor-group } // container sensor-groups } // container telemetry container time { description "Enter the time context"; leaf prefer-local-time { type boolean; default "false"; description "Use local time over UTC time in the system"; } container zone { description "Enter the zone context"; choice time-zone { default "standard-zone"; case standard-zone { container standard { description "Enter the standard context"; leaf name { type enumeration { enum "hst" { value 1; } enum "akst" { value 2; } enum "pst" { value 3; } enum "mst" { value 4; } enum "cst" { value 5; } enum "est" { value 6; } enum "ast" { value 7; } enum "nst" { value 8; } enum "utc" { value 9; } enum "gmt" { value 10; } enum "wet" { value 11; } enum "cet" { value 12; } enum "eet" { value 13; } enum "msk" { value 14; } enum "msd" { value 15; } enum "awst" { value 16; } enum "acst" { value 17; } enum "aest" { value 18; } enum "nzst" { value 19; } } default "utc"; description "Active standard time zone in this managed system"; } } // container standard } case non-standard-zone { container non-standard { description "Enter the non-standard context"; leaf name { type string { length "1..5"; pattern "([0-9]|[a-z])+" { error-message "The name can only contain lower case letters, and digits."; } } description "Active non-standard time zone in this managed system"; } leaf offset { type types-system:hours-minutes-with-range; description "Number of hours and minutes by which the time zone offsets from UTC"; } } // container non-standard } } } // container zone list dst-zone { key "summer-time-zone"; max-elements 1; description "Enter the dst-zone list instance"; leaf summer-time-zone { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type string { length "1..5"; } } description "Name of a summer time zone"; } leaf offset { type uint32 { range "0..60"; } units "minutes"; default "60"; description "Offset for summer time setting"; } container end { description "Enter the end context"; leaf week { type types-system:week; default "first"; description "Week of the month when the daylight savings time setting ends"; } leaf day { type types-system:day-of-week-name-long; default "sunday"; description "Day of the week when the daylight savings time setting ends"; } leaf month { type types-system:month-name-long; default "january"; description "Month of the week when the daylight savings time setting ends"; } leaf hours-minutes { type types-system:hours-minutes-twenty-four; default "00:00"; description "Hour and number of minutes after which the daylight savings time ends"; } } // container end container start { description "Enter the start context"; leaf week { type types-system:week; default "first"; description "Week of the month when the daylight savings time setting starts"; } leaf day { type types-system:day-of-week-name-long; default "sunday"; description "Day of the week when the daylight savings time setting starts"; } leaf month { type types-system:month-name-long; default "january"; description "Month of the week when the daylight savings time setting starts"; } leaf hours-minutes { type types-system:hours-minutes-twenty-four; default "00:00"; description "Hour and number of minutes after which the daylight savings time starts"; } } // container start } // list dst-zone container ntp { presence "Enter the 'ntp' context"; description "Enable the ntp context"; leaf authentication-check { type boolean; default "true"; description "Reject NTP PDUs that do not match the authentication key-id, type, or key requirements"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NTP execution"; } container ntp-server { presence "Enter the 'ntp-server' context"; description "Enable the ntp-server context"; leaf authenticate { type boolean; default "false"; description "Authentication of NTP PDUs when acting as a server"; } } // container ntp-server list server { key "ip-address router-instance"; description "Enter the server list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type union { type types-sros:ip-address; type enumeration { enum "ptp" { value 1; } } } } description "Node that provides time to the NTP client of this system"; } leaf router-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64 { pattern ".{1,32}" { error-message "vRtrName needs to be extended to 64 to support this name"; } } } description "Routing context containing the interface"; } leaf key-id { type uint32 { range "1..255"; } description "Specifies the key-id of the authentication key and its authentication type used by this node to receive and transmit NTP packets to and from an NTP node."; } leaf version { type uint32 { range "2..4"; } default "4"; description "Specifies the NTP version number generated or accepted by this node in NTP packets."; } leaf prefer { type boolean; default "false"; description "NTP server from which is preferred to receive time"; } } // list server list peer { key "ip-address router-instance"; description "Enter the peer list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "Identifies a node that will provide time to the NTP client of this system."; } leaf router-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64 { pattern ".{1,32}" { error-message "vRtrName needs to be extended to 64 to support this name"; } } } description "Routing context containing the interface"; } leaf key-id { type uint32 { range "1..255"; } description "Specifies the key-id of the authentication key and its authentication type used by this node to receive and transmit NTP packets to and from an NTP node."; } leaf version { type uint32 { range "2..4"; } default "4"; description "Specifies the NTP version number generated or accepted by this node in NTP packets."; } leaf prefer { type boolean; default "false"; description "NTP server from which is preferred to receive time"; } } // list peer list broadcast { key "router-instance interface-name"; description "Enter the broadcast list instance"; leaf router-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64 { pattern ".{1,32}" { error-message "vRtrName needs to be extended to 64 to support this name"; } } } description "Administrative name for this virtual router"; } leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name"; } leaf version { type uint32 { range "2..4"; } default "4"; description "NTP version number generated or accepted by this node in NTP packets"; } leaf ttl { type uint32 { range "1..255"; } default "127"; description "TTL value of messages transmitted by this broadcast address"; } leaf key-id { type uint32 { range "1..255"; } description "Specifies the key-id of the authentication key and its authentication type used by this node to receive and transmit NTP packets to and from an NTP node."; } } // list broadcast list broadcast-client { key "router-instance interface-name"; description "Enter the broadcast-client list instance"; leaf router-instance { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64 { pattern ".{1,32}" { error-message "vRtrName needs to be extended to 64 to support this name"; } } } description "Administrative name for this virtual router"; } leaf interface-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:interface-name; } description "Router interface name"; } leaf authenticate { type boolean; default "false"; description "NTP PDUs authentication required when acting as a broadcast client"; } } // list broadcast-client container multicast { presence "Enter the 'multicast' context"; description "Enable the multicast context"; leaf version { type uint32 { range "2..4"; } default "4"; description "Specifies the NTP version number generated or accepted by this node in NTP packets."; } leaf key-id { type uint32 { range "1..255"; } description "Specifies the key-id of the authentication key and its authentication type used by this node to receive and transmit NTP packets to and from an NTP node."; } } // container multicast container multicast-client { presence "Enter the 'multicast-client' context"; description "Enable the multicast-client context"; leaf authenticate { type boolean; default "false"; description "Authentication of NTP PDUs required when acting as a client"; } } // container multicast-client list authentication-key { key "key-id"; description "Enter the authentication-key list instance"; leaf key-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..255"; } } description "Index of the NTP authentication key table that uniquely identifies an authentication key and type"; } leaf key { type types-sros:encrypted-leaf { length "1..71"; } description "Key to authenticate NTP packets"; } leaf type { type enumeration { enum "des" { value 1; } enum "message-digest" { value 2; } } description "Type of authentication method to authenticate NTP packet"; } } // list authentication-key } // container ntp container sntp { description "Enter the sntp context"; leaf sntp-state { type types-router:unicast-broadcast; default "unicast"; description "Mode for Simple Network Time Protocol (SNTP)"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the SNTP protocol execution"; } list server { key "ip-address"; description "Enter the server list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address; } description "Node that provides time to the NTP client of this system"; } leaf version { type int32 { range "1..3"; } default "3"; description "SNTP version supported by this server"; } leaf prefer { type boolean; default "false"; description "Preference value for this SNTP server"; } leaf interval { type uint32 { range "64..1024"; } units "seconds"; default "64"; description "Frequency of querying the server"; } } // list server } // container sntp } // container time } // container system container test-oam { description "Enter the test-oam context"; container mpls-dm { description "Enter the mpls-dm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MPLS DM packet processing"; } } // container mpls-dm container twamp { description "Enter the twamp context"; container server { description "Enter the server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the TWAMP server"; } leaf inactivity-timeout { type uint32 { range "60..3600"; } units "seconds"; default "900"; description "System wide inactivity timeout for each TWAMP server control connection"; } leaf max-connections { type types-oam:twamp-server-connection-count; default "32"; description "System wide maximum number of concurrent TWAMP server control connections"; } leaf max-sessions { type types-oam:twamp-server-session-count; default "32"; description "System wide maximum number of concurrent TWAMP server test sessions"; } leaf ref-inactivity-timeout { type uint32 { range "60..3600"; } units "seconds"; default "900"; description "System wide reflector inactivity timeout for TWAMP"; } list prefix { key "ip-prefix"; max-elements 100; description "Enter the prefix list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-unicast-prefix; } description "Prefix to be matched against a TWAMP client address Best-fit is used when matching a TWAMP client's IP address against the set of configured prefixes. For example, suppose the first row of this table has the prefix 138.120.0.0/16, and the second row has the prefix 138.120.214.0/24. The TWAMP client address 138.120.214.52 matches the second row."; } leaf description { type types-sros:description; description "Text description"; } leaf max-connections { type types-oam:twamp-server-connection-count; default "32"; description "Maximum number of concurrent TWAMP control connections allowed for the TWAMP prefix identified by the index values In addition, the number of concurrent TWAMP control connections for this prefix is limited by the system maximum '/configure test-oam twamp server max-connections'."; } leaf max-sessions { type types-oam:twamp-server-session-count; default "32"; description "Maximum number of concurrent TWAMP test sessions allowed for the TWAMP prefix identified by the key value In addition, the number of concurrent TWAMP test sessions for this prefix is limited by the system maximum '/configure test-oam twamp server max-sessions'."; } } // list prefix } // container server container twamp-light { description "Enter the twamp-light context"; leaf inactivity-timeout { type uint32 { range "10..100"; } units "seconds"; default "100"; description "System inactivity timeout for TWAMP-Light reflectors A TWAMP-Light reflector replies to TWAMP-Test PDUs. When a reflector sees a TWAMP-Test PDU for a new session (i.e. a {source IP address, source UDP port, destination IP address} triple which is not known to the reflector), the reflector allocates a record for the session. The record is used to ensure that reply PDUs sent for the session have consecutive sequence numbers. When a reflector sees 'inactivity-timeout' seconds pass without receiving a TWAMP-Test PDU for a particular session, an inactivity timeout has occurred, so the record allocated to the session is freed."; } } // container twamp-light } // container twamp container icmp { description "Enter the icmp context"; list ping-template { key "name"; description "Enter the ping-template list instance"; leaf name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:named-item-64; } description "Ping template name"; } leaf description { type types-sros:description; description "Text description"; } leaf dscp { type types-qos:dscp-name; default "nc1"; description "DSCP value used in the outgoing ping packet"; } leaf dot1p { type types-qos:dot1p-priority; default "7"; description "Dot1p in Ethernet header of outgoing ping packets"; } leaf interval { type uint32 { range "1..60"; } units "seconds"; default "60"; description "Packet transmit interval"; } leaf timeout { type uint32 { range "1..60"; } units "seconds"; default "5"; description "Wait time before ICMP echo request is declared lost"; } leaf failure-threshold { type uint32 { range "2..10"; } default "3"; description "Failure threshold to declare inter-connectivity down"; } leaf reactivation-interval { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Ping reactivation interval"; } leaf reactivation-failure-threshold { type uint32 { range "1..10"; } default "4"; description "Number of consecutive failures at reactivation interval"; } leaf reactivation-timeout { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Reactivation wait time before packet is declared lost"; } leaf reactivation-threshold { type uint32 { range "1..10"; } default "3"; description "Success threshold to declare inter-connectivity up"; } leaf size { type uint32 { range "12..9786"; } units "octets"; default "56"; description "Data field size of the outgoing ICMP echo packet"; } leaf ttl { type uint32 { range "1..255"; } default "1"; description "TTL value for the outgoing ping packet"; } } // list ping-template } // container icmp } // container test-oam container vrrp { description "Enter the vrrp context"; list policy { key "policy-id"; description "Enter the policy list instance"; leaf policy-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..9999"; } } description "Policy ID that is be used when creating a Priority Control Policy"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP policy"; } leaf context { type types-services:service-name; sros-ext:immutable; description "The value specifies the service name to which this policy applies. If not configured, this policy does not apply to a service, but to the base router instance."; } leaf delta-in-use-limit { type types-vrrp:priority; default "1"; description "Limit on the in-use priority that is derived from delta priority control events"; } leaf description { type types-sros:description; description "Text description"; } container priority-event { description "Enter the priority-event context"; list host-unreachable { key "ip-address"; description "Enter the host-unreachable list instance"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address-with-zone; } description "Priority control event that monitors the ability to receive ICMP Echo Reply packets from a host"; } leaf hold-clear { type types-vrrp:event-hold; units "seconds"; description "Delay time for a cleared event on associated virtual router instance"; } leaf hold-set { type types-vrrp:event-hold; units "seconds"; description "Hold time before transitioning to cleared state to dampen flapping events"; } leaf drop-count { type uint32 { range "1..60"; } default "3"; description "Limit on number of consecutive ICMP echo request transmit failures"; } leaf request-interval { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Time interval between consecutive ICMP echo requests"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Packet length padding of the ICMP packet"; } leaf timeout { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Timeout for ICMP echo request messages"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Effect of the priority-level value on the base priority value"; } } // container priority } // list host-unreachable list lag-port-down { key "lag-name"; description "Enter the lag-port-down list instance"; leaf lag-name { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:lag-interface; } description "LAG name"; } leaf hold-clear { type types-vrrp:event-hold; units "seconds"; description "Delay time for a cleared event on associated virtual router instance"; } leaf hold-set { type types-vrrp:event-hold; units "seconds"; description "Hold time before transitioning to cleared state to dampen flapping events"; } list number-down { key "number-of-lag-ports-down"; description "Enter the number-down list instance"; leaf number-of-lag-ports-down { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint8 { range "1..64"; } } description "Number of LAG ports down that create a set event threshold"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Effect of the priority-level value on the base priority value"; } } // container priority } // list number-down list weight-down { key "lag-ports-down-weight"; description "Enter the weight-down list instance"; leaf lag-ports-down-weight { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint8 { range "1..64"; } } description "LAG name for the reduced LAG ports"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Effect of the priority-level value on the base priority value"; } } // container priority } // list weight-down } // list lag-port-down list mc-ipsec-non-forwarding { key "tunnel-group-id"; description "Enter the mc-ipsec-non-forwarding list instance"; leaf tunnel-group-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type uint32 { range "1..16"; } } description "Multi-chassis IPSEC tunnel group whose non-forwarding state is monitored by priority control event"; } leaf hold-clear { type types-vrrp:event-hold; units "seconds"; description "Delay time for a cleared event on associated virtual router instance"; } leaf hold-set { type types-vrrp:event-hold; units "seconds"; description "Hold time before transitioning to cleared state to dampen flapping events"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Event type"; } } // container priority } // list mc-ipsec-non-forwarding list port-down { key "port-id"; description "Enter the port-down list instance"; leaf port-id { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:port-named; } description "Port ID for the reduced LAG ports"; } leaf hold-clear { type types-vrrp:event-hold; units "seconds"; description "Delay time for a cleared event on associated virtual router instance"; } leaf hold-set { type types-vrrp:event-hold; units "seconds"; description "Hold time before transitioning to cleared state to dampen flapping events"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Effect of the priority-level value on the base priority value"; } } // container priority } // list port-down list route-unknown { key "ip-prefix"; description "Enter the route-unknown list instance"; leaf ip-prefix { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-prefix; } description "IP prefix of the route that is monitored by this priority control event"; } leaf hold-clear { type types-vrrp:event-hold; units "seconds"; description "Delay time for a cleared event on associated virtual router instance"; } leaf hold-set { type types-vrrp:event-hold; units "seconds"; description "Hold time before transitioning to cleared state to dampen flapping events"; } leaf-list protocol { type enumeration { enum "bgp" { value 0; } enum "ospf" { value 1; } enum "isis" { value 2; } enum "rip" { value 3; } enum "static" { value 4; } enum "bgp-vpn" { value 5; } } max-elements 6; description "Routing protocol as match criterion"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Effect of the priority-level value on the base priority value"; } } // container priority container less-specific { presence "Enter the 'less-specific' context"; description "Enable the less-specific context"; leaf allow-default { type boolean; default "false"; description "Match on default route"; } } // container less-specific list next-hop { key "ip-address"; description "Add a list entry for next-hop"; leaf ip-address { type union { type string { length "1..64"; pattern "<.*>" { error-message "Config Groups Regex Pattern"; } } type types-sros:ip-address-with-zone; } description "The value identifies the next-hop IP address which is used to match the route prefix being monitored by this priority control event with the results of a route table lookup."; } } // list next-hop } // list route-unknown } // container priority-event } // list policy } // container vrrp } // list group } // container groups container ipsec { description "Enter the ipsec context"; leaf show-ipsec-keys { type boolean; default "false"; description "Show IPsec IKE and ESP keys."; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list cert-profile { key "name"; max-elements 10200; description "Enter the cert-profile list instance"; leaf name { type types-sros:named-item; description "Certificate profile name."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the certificate profile."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; max-elements 8; description "Enter the entry list instance"; leaf id { type uint32 { range "1..8"; } description "Certificate profile entry ID"; } leaf cert { type types-security:pki-file-name; description "Certificate file name for the certificate profile entry"; } leaf key { type types-security:pki-file-name; description "File name of imported key used for authentication"; } leaf rsa-signature { type enumeration { enum "pkcs1" { value 1; } enum "pss" { value 2; } } default "pkcs1"; description "Signature scheme for the RSA key"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container send-chain { description "Enter the send-chain context"; leaf-list ca-profile { type leafref { path "../../../../../system/security/pki/ca-profile/ca-profile-name"; } max-elements 7; description "CA certificate to send to the peer"; } } // container send-chain } // list entry } // list cert-profile list client-db { key "name"; max-elements 1000; description "Enter the client-db list instance"; leaf name { type types-sros:named-item; description "IPsec client database name."; } leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the client database."; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container match-list { sros-ext:auto-restart-to-modify; description "Enter the match-list context"; leaf idi { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Use IDi type in the IPsec client matching process"; } leaf peer-ip-prefix { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Use the peer's tunnel IP address in matching process"; } } // container match-list list client { key "id"; sros-ext:auto-restart-to-modify; description "Enter the client list instance"; leaf id { type uint32 { range "1..8000"; } description "Client ID"; } leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the database client."; } leaf client-name { type types-sros:named-item; sros-ext:auto-restart-to-modify; description "Client name"; } leaf private-interface { type types-sros:named-item; sros-ext:auto-restart-to-modify; description "Private interface name used for tunnel setup"; } leaf private-service-name { type types-services:service-name; sros-ext:auto-restart-to-modify; description "Name of the private service used for tunnel setup"; } leaf ts-list { type types-sros:named-item; sros-ext:auto-restart-to-modify; description "Traffic selector list used by the tunnel"; } leaf tunnel-template { type uint32 { range "1..2048"; } sros-ext:auto-restart-to-modify; description "Tunnel template ID"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container credential { sros-ext:auto-restart-to-modify; description "Enter the credential context"; leaf pre-shared-key { type types-sros:encrypted-leaf-hex-without-prefix { length "1..115"; } sros-ext:auto-restart-to-modify; description "Pre-shared key used to authenticate peers"; } } // container credential container identification { sros-ext:auto-restart-to-modify; description "Enter the identification context"; container idi { presence "Enter the 'idi' context"; sros-ext:auto-restart-to-modify; description "Enable the idi context"; choice idi { mandatory true; case any { leaf any { type boolean; sros-ext:auto-restart-to-modify; description "Accept any IDi value as a match"; } } case ipv4-prefix { leaf ipv4-prefix { type types-sros:ipv4-prefix; sros-ext:auto-restart-to-modify; description "IPv4 prefix used as the match criteria for the IDi"; } } case ipv4-prefix-any { leaf ipv4-prefix-any { type boolean; sros-ext:auto-restart-to-modify; description "Accept any valid IPv4 prefix as a match for the IDi"; } } case ipv6-prefix { leaf ipv6-prefix { type types-sros:ipv6-prefix; sros-ext:auto-restart-to-modify; description "IPv6 prefix used as the match criteria for the IDi"; } } case ipv6-prefix-any { leaf ipv6-prefix-any { type boolean; sros-ext:auto-restart-to-modify; description "Accept any valid IPv6 prefix as a match for the IDi"; } } case fqdn { leaf fqdn { type types-sros:display-string-or-empty; sros-ext:auto-restart-to-modify; description "FQDN used as the match criteria for the IDi"; } } case fqdn-suffix { leaf fqdn-suffix { type types-sros:display-string-or-empty; sros-ext:auto-restart-to-modify; description "FQDN suffix used as the match criteria for the IDi"; } } case rfc822 { leaf rfc822 { type types-sros:display-string-or-empty; sros-ext:auto-restart-to-modify; description "Email address (RFC 822) used as match criteria for IDi"; } } case rfc822-suffix { leaf rfc822-suffix { type types-sros:display-string-or-empty; sros-ext:auto-restart-to-modify; description "Email address domain (RFC 822) as IDi match criteria"; } } } } // container idi container peer-ip-prefix { presence "Enter the 'peer-ip-prefix' context"; sros-ext:auto-restart-to-modify; description "Enable the peer-ip-prefix context"; choice prefix { mandatory true; case ipv4-only { leaf ipv4-only { type boolean; sros-ext:auto-restart-to-modify; description "Accept any valid IPv4 address as a match"; } } case ipv6-only { leaf ipv6-only { type boolean; sros-ext:auto-restart-to-modify; description "Accept any valid IPv6 address as a match"; } } case ip-prefix { leaf ip-prefix { type types-sros:ip-prefix; sros-ext:auto-restart-to-modify; description "IP prefix used as the match criteria"; } } } } // container peer-ip-prefix } // container identification } // list client } // list client-db list ike-policy { key "id"; max-elements 2048; description "Enter the ike-policy list instance"; leaf id { type types-ipsec:ike-policy-id; description "The unique identifier of an IKE policy."; } leaf description { type types-sros:description; description "Text description"; } leaf ipsec-lifetime { type types-ipsec:lifetime; default "3600"; description "Phase 1 lifetime for the IKE transform session"; } leaf match-peer-id-to-cert { type boolean; default "false"; description "Check IKE peer's ID during certificate authentication"; } leaf-list ike-transform { type leafref { path "../../ike-transform/id"; } max-elements 4; description "IKE transform instance associated with the IKE policy"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice ike-version { default "version-1"; case version-1 { container ike-version-1 { description "Enter the ike-version-1 context"; leaf auth-method { type enumeration { enum "psk" { value 1; } enum "plain-psk-xauth" { value 4; } } default "psk"; description "Authentication method used with the IKE policy"; } leaf own-auth-method { type enumeration { enum "symmetric" { value 0; } } default "symmetric"; description "Authentication method used with policy on its own side"; } leaf ike-mode { type enumeration { enum "main" { value 1; } enum "aggressive" { value 2; } } default "main"; description "Mode of operation"; } leaf ph1-responder-delete-notify { type boolean; default "true"; description "Send delete notification for IKEv1 phase 1 removal"; } } // container ike-version-1 } case version-2 { container ike-version-2 { presence "Enter the 'ike-version-2' context"; description "Enable the ike-version-2 context"; leaf auth-method { type enumeration { enum "psk" { value 1; } enum "cert" { value 5; } enum "psk-radius" { value 6; } enum "cert-radius" { value 7; } enum "eap" { value 8; } enum "auto-eap-radius" { value 9; } enum "auto-eap" { value 10; } } default "psk"; description "Authentication method used with the IKE policy"; } leaf own-auth-method { type enumeration { enum "symmetric" { value 0; } enum "psk" { value 1; } enum "cert" { value 5; } enum "eap-only" { value 8; } } default "symmetric"; description "Authentication method used with IKE policy on own side"; } leaf auto-eap-method { type enumeration { enum "psk" { value 1; } enum "cert" { value 2; } enum "psk-or-cert" { value 3; } } default "cert"; description "Authentication method"; } leaf own-auto-eap-method { type enumeration { enum "psk" { value 1; } enum "cert" { value 2; } } default "cert"; description "Authentication method"; } leaf send-idr-after-eap-success { type boolean; default "true"; description "Send IDr payload in last IKE authentication response"; } container ikev2-fragment { presence "Enter the 'ikev2-fragment' context"; description "Enable the ikev2-fragment context"; leaf mtu { type uint32 { range "512..9000"; } units "octets"; default "1500"; description "MTU of the IKEv2 messages"; } leaf reassembly-timeout { type uint32 { range "1..5"; } units "seconds"; default "2"; description "Timeout for reassembly of IKEv2 message fragments"; } } // container ikev2-fragment } // container ike-version-2 } } container limit-init-exchange { when "../ike-version-2"; description "Enter the limit-init-exchange context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of limiting initial IKE exchanges"; } leaf reduced-max-exchange-timeout { type union { type uint32 { range "2..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "2"; description "Max timeout for the in-progress initial IKE exchange"; } } // container limit-init-exchange container dpd { presence "Enter the 'dpd' context"; description "Enable the dpd context"; leaf reply-only { type boolean; default "false"; description "Initiate DPD request for incoming ESP or IKE packets"; } leaf interval { type uint32 { range "10..300"; } units "seconds"; default "30"; description "DPD interval"; } leaf max-retries { type uint32 { range "2..5"; } default "3"; description "Maximum number of retries before the tunnel is removed"; } } // container dpd container nat-traversal { presence "Enter the 'nat-traversal' context"; description "Enable the nat-traversal context"; leaf force { type boolean; default "false"; description "Force NAT-T to be enabled."; } leaf keep-alive-interval { type uint32 { range "120..600"; } units "seconds"; description "The keep alive interval for NAT-T."; } leaf force-keep-alive { type boolean; default "true"; description "Send the keep alive packets only when behind a NAT."; } } // container nat-traversal container lockout { presence "Enter the 'lockout' context"; description "Enable the lockout context"; leaf failed-attempts { type uint32 { range "1..64"; } default "3"; description "Maximum failed authentications allowed in the duration"; } leaf duration { type uint32 { range "1..60"; } units "minutes"; default "5"; description "Time interval in which failed attempts must be exceeded"; } leaf block { type union { type uint32 { range "1..1440"; } type enumeration { enum "infinite" { value 0; } } } units "minutes"; default "10"; description "Time a client is blocked for failed authentications"; } leaf max-port-per-ip { type uint32 { range "1..32000"; } default "16"; description "Max number of ports allowed behind the same IP address"; } } // container lockout container pfs { presence "Enter the 'pfs' context"; description "Enable the pfs context"; leaf dh-group { type types-ipsec:dh-group; default "group-2"; description "The new Diffie-Hellman (DH) group used when each time the SA(Security Association) key is renegotiated."; } } // container pfs container relay-unsolicited-cfg-attribute { description "Enter the relay-unsolicited-cfg-attribute context"; leaf internal-ip4-address { type boolean; default "false"; description "IPv4 address attribute."; } leaf internal-ip4-netmask { type boolean; default "false"; description "IPv4 netmask attribute."; } leaf internal-ip4-dns { type boolean; default "false"; description "IPv4 DNS attribute."; } leaf internal-ip6-address { type boolean; default "false"; description "IPv6 address attribute."; } leaf internal-ip6-dns { type boolean; default "false"; description "IPv6 DNS attribute."; } } // container relay-unsolicited-cfg-attribute } // list ike-policy list ike-transform { key "id"; max-elements 4096; description "Enter the ike-transform list instance"; leaf id { type types-ipsec:ike-transform-id; description "The unique identifier of an IKE transform."; } leaf dh-group { type types-ipsec:dh-group; default "group-2"; description "Diffie-Helman group used to calculate session keys"; } leaf ike-auth-algorithm { type types-ipsec:ike-auth-algorithms; default "sha-1"; description "IKE authentication algorithm for IKE transform instance"; } leaf ike-encryption-algorithm { type types-ipsec:ike-encryption-algorithms; default "aes-128"; description "IKE encryption algorith for the IKE transform instance"; } leaf ike-prf-algorithm { type types-ipsec:prf-algorithms; default "same-as-auth"; description "PRF algorithm for the IKE transform instance"; } leaf isakmp-lifetime { type types-ipsec:lifetime; default "86400"; description "Phase 1 lifetime for the IKE transform instance"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ike-transform list ipsec-transform { key "id"; max-elements 2048; description "Enter the ipsec-transform list instance"; leaf id { type uint32 { range "1..2048"; } description "IPsec transform ID."; } leaf esp-auth-algorithm { type types-ipsec:auth-algorithms; default "sha-1"; description "The authentication algorithm for this IPsec transform."; } leaf esp-encryption-algorithm { type types-ipsec:encryption-algorithms; default "aes-128"; description "Encryption algorithm for the IPsec transform session"; } leaf ipsec-lifetime { type types-ipsec:lifetime; description "Phase 2 lifetime for the IPsec transform session"; } leaf pfs-dh-group { type enumeration { enum "none" { value 0; } enum "group-1" { value 1; } enum "group-2" { value 2; } enum "group-5" { value 5; } enum "group-14" { value 14; } enum "group-15" { value 15; } enum "group-19" { value 19; } enum "group-20" { value 20; } enum "group-21" { value 21; } } description "Diffie-Hellman group used for PFS compilation"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ipsec-transform list static-sa { key "name"; max-elements 1000; description "Enter the static-sa list instance"; leaf name { type types-sros:named-item; description "Static Security Association (SA) name."; } leaf description { type types-sros:named-item; description "Text description"; } leaf direction { type enumeration { enum "inbound" { value 1; } enum "outbound" { value 2; } enum "bidirectional" { value 3; } } default "bidirectional"; description "Direction to which the static SA entry can be applied"; } leaf protocol { type enumeration { enum "ah" { value 1; } enum "esp" { value 2; } } default "esp"; description "IPsec protocol used with the static SA"; } leaf spi { type uint32 { range "256..16383"; } description "Security Parameter Index (SPI) for the static SA"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf algorithm { type enumeration { enum "md5" { value 2; } enum "sha1" { value 3; } } mandatory true; description "Authentication algorithm used for an IPsec manual SA"; } leaf key { type types-sros:encrypted-leaf { length "1..54"; } mandatory true; description "Key used for the authentication algorithm"; } } // container authentication } // list static-sa list ts-list { key "name"; max-elements 32768; description "Enter the ts-list list instance"; leaf name { type types-sros:named-item; description "IPsec Traffic Selector (TS) list name."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container local { description "Enter the local context"; list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..32"; } description "The unique ID of this TS list entry."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container address { presence "Enter the 'address' context"; description "Enable the address context"; choice address-range { mandatory true; case prefix { leaf prefix { type types-sros:ip-prefix; description "IP prefix for address range in IKEv2 traffic selector"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf begin { type types-sros:ip-address; mandatory true; description "Beginning IP address of the range for the entry"; } leaf end { type types-sros:ip-address; mandatory true; description "The end IP address."; } } // container range } } } // container address container protocol { presence "Enter the 'protocol' context"; description "Enable the protocol context"; choice range { mandatory true; case any { leaf any { type empty; description "Match any protocol ID"; } } case id { container id { presence "Enter the 'id' context"; description "Enable the id context"; choice id { mandatory true; case tcp { container tcp { description "Enter the tcp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } mandatory true; description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } mandatory true; description "Upper bound of the port range"; } } // container port-range } } } // container tcp } case udp { container udp { description "Enter the udp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } mandatory true; description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } mandatory true; description "Upper bound of the port range"; } } // container port-range } } } // container udp } case sctp { container sctp { description "Enter the sctp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } mandatory true; description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } mandatory true; description "Upper bound of the port range"; } } // container port-range } } } // container sctp } case icmp { container icmp { description "Enter the icmp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin-icmp-type { type uint16 { range "0..255"; } mandatory true; description "Lower bound of the ICMP type range"; } leaf begin-icmp-code { type uint16 { range "0..255"; } mandatory true; description "Lower bound of the ICMP code range"; } leaf end-icmp-type { type uint16 { range "0..255"; } mandatory true; description "Upper bound of the ICMP type range"; } leaf end-icmp-code { type uint16 { range "0..255"; } mandatory true; description "Upper bound of the ICMP code range"; } } // container port-range } } } // container icmp } case icmp6 { container icmp6 { description "Enter the icmp6 context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin-icmp-type { type uint16 { range "0..255"; } mandatory true; description "Lower bound of the ICMP type range"; } leaf begin-icmp-code { type uint16 { range "0..255"; } mandatory true; description "Lower bound of the ICMP code range"; } leaf end-icmp-type { type uint16 { range "0..255"; } mandatory true; description "Upper bound of the ICMP type range"; } leaf end-icmp-code { type uint16 { range "0..255"; } mandatory true; description "Upper bound of the ICMP code range"; } } // container port-range } } } // container icmp6 } case mipv6 { container mipv6 { description "Enter the mipv6 context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint16 { range "0..255"; } mandatory true; description "The begin mobility header type."; } leaf end { type uint16 { range "0..255"; } mandatory true; description "The end mobility header type."; } } // container port-range } } } // container mipv6 } case any { leaf protocol-id-with-any-port { type union { type enumeration { enum "icmp" { value 1; } enum "tcp" { value 6; } enum "udp" { value 17; } enum "icmp6" { value 58; } enum "sctp" { value 132; } enum "mipv6" { value 135; } } type int32 { range "1..255"; } } description "Protocol ID that accepts any port value"; } } } } // container id } } } // container protocol } // list entry } // container local container remote { description "Enter the remote context"; list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..32"; } description "The unique ID of this TS list entry."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container address { presence "Enter the 'address' context"; description "Enable the address context"; choice address-range { mandatory true; case prefix { leaf prefix { type types-sros:ip-prefix; description "IP prefix for address range in IKEv2 traffic selector"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf begin { type types-sros:ip-address; mandatory true; description "Beginning IP address of the range for the entry"; } leaf end { type types-sros:ip-address; mandatory true; description "The end IP address."; } } // container range } } } // container address container protocol { presence "Enter the 'protocol' context"; description "Enable the protocol context"; choice range { mandatory true; case any { leaf any { type empty; description "Match any protocol ID"; } } case id { container id { presence "Enter the 'id' context"; description "Enable the id context"; choice id { mandatory true; case tcp { container tcp { description "Enter the tcp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } mandatory true; description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } mandatory true; description "Upper bound of the port range"; } } // container port-range } } } // container tcp } case udp { container udp { description "Enter the udp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } mandatory true; description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } mandatory true; description "Upper bound of the port range"; } } // container port-range } } } // container udp } case sctp { container sctp { description "Enter the sctp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint32 { range "0..65535"; } mandatory true; description "Lower bound of the port range"; } leaf end { type uint32 { range "0..65535"; } mandatory true; description "Upper bound of the port range"; } } // container port-range } } } // container sctp } case icmp { container icmp { description "Enter the icmp context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin-icmp-type { type uint16 { range "0..255"; } mandatory true; description "Lower bound of the ICMP type range"; } leaf begin-icmp-code { type uint16 { range "0..255"; } mandatory true; description "Lower bound of the ICMP code range"; } leaf end-icmp-type { type uint16 { range "0..255"; } mandatory true; description "Upper bound of the ICMP type range"; } leaf end-icmp-code { type uint16 { range "0..255"; } mandatory true; description "Upper bound of the ICMP code range"; } } // container port-range } } } // container icmp } case icmp6 { container icmp6 { description "Enter the icmp6 context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin-icmp-type { type uint16 { range "0..255"; } mandatory true; description "Lower bound of the ICMP type range"; } leaf begin-icmp-code { type uint16 { range "0..255"; } mandatory true; description "Lower bound of the ICMP code range"; } leaf end-icmp-type { type uint16 { range "0..255"; } mandatory true; description "Upper bound of the ICMP type range"; } leaf end-icmp-code { type uint16 { range "0..255"; } mandatory true; description "Upper bound of the ICMP code range"; } } // container port-range } } } // container icmp6 } case mipv6 { container mipv6 { description "Enter the mipv6 context"; choice port { case opaque-port { leaf opaque { type empty; description "Match OPAQUE ports"; } } case port-range { container port-range { presence "Enter the 'port-range' context"; description "Enable the port-range context"; leaf begin { type uint16 { range "0..255"; } mandatory true; description "The begin mobility header type."; } leaf end { type uint16 { range "0..255"; } mandatory true; description "The end mobility header type."; } } // container port-range } } } // container mipv6 } case any { leaf protocol-id-with-any-port { type union { type enumeration { enum "icmp" { value 1; } enum "tcp" { value 6; } enum "udp" { value 17; } enum "icmp6" { value 58; } enum "sctp" { value 132; } enum "mipv6" { value 135; } } type int32 { range "1..255"; } } description "Protocol ID that accepts any port value"; } } } } // container id } } } // container protocol } // list entry } // container remote } // list ts-list list tunnel-template { key "id"; max-elements 2048; description "Enter the tunnel-template list instance"; leaf id { type types-ipsec:tunnel-template-id; description "Tunnel template ID"; } leaf description { type types-sros:description; description "Text description"; } leaf clear-df-bit { type boolean; default "false"; description "Clear the Do-not-Fragment (DF) bit"; } leaf encapsulated-ip-mtu { type uint32 { range "512..9000"; } units "octets"; description "Maximum size of the encapsulated tunnel packet"; } leaf ip-mtu { type uint32 { range "512..9000"; } units "octets"; description "Maximum size of the IP MTU for the payload packets"; } leaf private-tcp-mss-adjust { type int32 { range "512..9000"; } units "octets"; description "New TCP MSS value on the private side"; } leaf public-tcp-mss-adjust { type union { type uint32 { range "512..9000"; } type enumeration { enum "auto" { value 0; } } } units "octets"; description "New TCP MSS value on the public side"; } leaf replay-window { type uint32 { range "32|64|128|256|512"; } description "Anti-replay window size for the tunnel template"; } leaf sp-reverse-route { type enumeration { enum "none" { value 0; } enum "use-security-policy" { value 1; } } default "none"; description "Reverse route creation method in private service"; } leaf-list ipsec-transform { type leafref { path "../../ipsec-transform/id"; } max-elements 4; description "IPsec transform ID for the tunnel template"; } leaf ignore-default-route { type boolean; default "false"; description "Ignore any full range traffic selector in TSi"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container icmp6-generation { description "Enter the icmp6-generation context"; container pkt-too-big { description "Enter the pkt-too-big context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Adminstrative state of the generation of ICMPv6 Packet Too Big messages"; } leaf interval { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Maximum interval during which PTB messages can be sent"; } leaf message-count { type uint32 { range "10..1000"; } default "100"; description "Max ICMPv6 messages that can be sent during interval"; } } // container pkt-too-big } // container icmp6-generation } // list tunnel-template list trust-anchor-profile { key "name"; max-elements 10128; description "Enter the trust-anchor-profile list instance"; leaf name { type types-sros:named-item; description "Trust anchor profile name."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list trust-anchor { key "ca-profile"; max-elements 8; description "Add a list entry for trust-anchor"; leaf ca-profile { type leafref { path "../../../../system/security/pki/ca-profile/ca-profile-name"; } description "Name of the CA profile as a trust anchor profile"; } } // list trust-anchor } // list trust-anchor-profile container radius { description "Enter the radius context"; list accounting-policy { key "name"; max-elements 100; description "Enter the accounting-policy list instance"; leaf name { type types-sros:named-item; description "RADIUS accounting policy name"; } leaf radius-server-policy { type leafref { path "../../../../aaa/radius/server-policy/name"; } description "Referenced RADIUS server policy"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container update-interval { description "Enter the update-interval context"; leaf value { type int32 { range "0|5..259200"; } units "minutes"; default "10"; description "The update interval of the RADIUS accounting data. Zero specifies that no intermediate updates will be sent."; } leaf jitter { type int32 { range "0..3600"; } units "seconds"; description "The jitter of the update interval. If not specified, the system will use 10% of the update interval value"; } } // container update-interval container include-radius-attribute { description "Enter the include-radius-attribute context"; leaf called-station-id { type boolean; default "false"; description "Include the Called-Station-Id attribute"; } leaf calling-station-id { type boolean; default "false"; description "Include the Calling-Station-Id attribute"; } leaf nas-identifier { type boolean; default "false"; description "Include the NAS-Identifier attribute"; } leaf nas-ip-addr { type boolean; default "false"; description "Include the NAS-IP-Address attribute"; } leaf nas-port-id { type boolean; default "false"; description "Include the NAS-Port-Id attribute"; } leaf acct-stats { type boolean; default "false"; description "Include accounting attributes in RADIUS packets"; } leaf framed-ip-addr { type boolean; default "false"; description "Include the Framed-IP-Address attribute"; } leaf framed-ipv6-prefix { type boolean; default "false"; description "Include the Framed-IPv6-Prefix attribute"; } } // container include-radius-attribute } // list accounting-policy list authentication-policy { key "name"; max-elements 100; description "Enter the authentication-policy list instance"; leaf name { type types-sros:named-item; description "RADIUS authentication policy name."; } leaf radius-server-policy { type leafref { path "../../../../aaa/radius/server-policy/name"; } description "Referenced RADIUS server policy"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "The default password to be used in access-request messages to the RADIUS server"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container include-radius-attribute { description "Enter the include-radius-attribute context"; leaf called-station-id { type boolean; default "false"; description "Include the Called-Station-Id attribute"; } leaf calling-station-id { type boolean; default "false"; description "Include the Calling-Station-Id attribute"; } leaf nas-identifier { type boolean; default "false"; description "Include the NAS-Identifier attribute"; } leaf nas-ip-addr { type boolean; default "false"; description "Include the NAS-IP-Address attribute"; } leaf nas-port-id { type boolean; default "false"; description "Include the NAS-Port-Id attribute"; } leaf client-cert-subject-key-id { type boolean; default "false"; description "Include the Subject-Key-Id attribute."; } } // container include-radius-attribute } // list authentication-policy } // container radius } // container ipsec container isa { description "Enter the isa context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list tunnel-group { key "id"; description "Enter the tunnel-group list instance"; leaf id { type types-redundancy:tunnel-group-id; description "The unique identifier of the tunnel group."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ISA tunnel group"; } leaf description { type types-sros:description; description "Text description"; } leaf isa-scale-mode { type enumeration { enum "tunnel-limit-2k" { value 1; } enum "tunnel-limit-32k" { value 2; } enum "tunnel-limit-64k" { value 3; } enum "tunnel-limit-8" { value 4; } enum "tunnel-limit-32" { value 5; } } sros-ext:immutable; mandatory true; description "The set of supported scaling modes for each ISA in this group."; } leaf ipsec-responder-only { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "The IPsec tunnel responds the requests only and does not initiate exchanges with the peer."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice redundancy { default "primary-backup"; description "Redundancy mode for ISAs in this tunnel group"; case primary-backup { leaf primary { type types-isa:slot-mda; description "The primary IPsec ISA to be used for this tunnel group."; } leaf backup { type types-isa:slot-mda; description "The backup IPsec ISA to be used for this tunnel group."; } } case multi-active { container multi-active { presence "Enter the 'multi-active' context"; description "Enable the multi-active context"; leaf active-isa-number { type uint32 { range "1..16"; } sros-ext:auto-restart-to-modify; default "1"; description "The number of active ISAs to be used by this tunnel group to load-balance IPsec traffic."; } choice group-members { default "isa"; description "MDA or ESA-VM members of this tunnel group"; case isa { list isa { key "isa-id"; description "Add a list entry for isa"; leaf isa-id { type types-isa:slot-mda; description "The ISA associated with this tunnel group."; } } // list isa } case esa { list esa { key "esa-id vm"; description "Add a list entry for esa"; leaf esa-id { type leafref { path "../../../../../esa/esa-id"; } description "ESA ID"; } leaf vm { type leafref { path "../../../../../esa[esa-id=current()/../esa-id]/vm/vm-id"; } description "VM ID"; } } // list esa } } } // container multi-active } } container reassembly { description "Enter the reassembly context"; leaf max-wait-time { type int32 { range "1..5000"; } units "milliseconds"; description "The maximum number of milliseconds to wait to receive all fragments of a particular IPsec or GRE packet for reassembly. The value of this leaf must be a multiple of 100 milliseconds."; } } // container reassembly container stats-collection { description "Enter the stats-collection context"; leaf isa-dp-cpu-usage { type boolean; default "false"; description "Collect the historical data-plane CPU usage statistics."; } } // container stats-collection } // list tunnel-group list nat-group { key "id"; max-elements 4; description "Enter the nat-group list instance"; leaf id { type uint32 { range "1..4"; } description "Nat-group identifier"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the NAT group"; } leaf radius-accounting-policy { type leafref { path "../../../aaa/radius/isa-policy/name"; } description "RADIUS accounting policy for ISA group"; } leaf scaling-profile { type types-sros:isa-scaling-profile; sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; default "profile1"; description "Scaling profile for the NAT group"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container redundancy { description "Enter the redundancy context"; leaf active-mda-limit { type uint32 { range "1..14"; } sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; description "Number of active MS-ISAs in the NAT group"; } choice redundancy-mode { default "intra-chassis"; case intra-chassis { container intra-chassis { description "Enter the intra-chassis context"; choice mode { default "active-standby"; case active-standby { leaf active-standby { type empty; sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; description "Active-standby intra-chassis NAT redundancy model"; } } case active-active { container active-active { description "Enter the active-active context"; leaf failed-mda-limit { type uint32 { range "1..2"; } sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; description "Maximum allowable number of failed MS-ISAs in the nat-group"; } } // container active-active } case l2aware-bypass { leaf l2aware-bypass { type empty; sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; description "L2-aware-bypass NAT redundancy model"; } } } } // container intra-chassis } case inter-chassis { container inter-chassis { presence "Enter the 'inter-chassis' context"; description "Enable the inter-chassis context"; leaf replication-threshold { type uint32 { range "0..300"; } units "seconds"; default "20"; description "Minimum time to wait before a NAT flow is synchronized"; } leaf flow-timeout-on-switchover { type types-sros:percent { range "1..50"; } default "50"; description "Flow timeout immediately following a switchover"; } leaf router-instance { type string; sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; description "Router instance for the ISA-to-ISA communication"; } leaf local-ip-range-start { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; description "Starting IP address for ISAs in the NAT group"; } leaf remote-ip-range-start { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; description "Starting IP address for ISAs on the remote node"; } leaf ip-mtu { type uint32 { range "512..9000"; } default "1500"; description "IP MTU for ISA-to-ISA communication"; } leaf preferred { type boolean; default "false"; description "Set the preferred activity status for the node"; } container keepalive { description "Enter the keepalive context"; leaf interval { type types-sros:time-duration { range "2..250"; } units "deciseconds"; default "30"; description "Interval between two consecutive keepalive messages"; } leaf dropcount { type uint32 { range "2..20"; } default "2"; description "Threshold for lost consecutive keepalive messages"; } } // container keepalive list monitor-port { key "port-id"; max-elements 16; description "Enter the monitor-port list instance"; leaf port-id { type types-sros:port-named; description "Port ID"; } leaf health-drop { type uint32 { range "1..255"; } default "1"; description "Overall health drop of the NAT group on a state change"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list monitor-port list monitor-oper-group { key "oper-group"; max-elements 4; description "Enter the monitor-oper-group list instance"; leaf oper-group { type leafref { path "../../../../../../service/oper-group/name"; } description "Operational group name"; } leaf health-drop { type uint32 { range "1..255"; } default "1"; description "Overall health drop of the NAT group on a state change"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list monitor-oper-group } // container inter-chassis } } } // container redundancy container log { description "Enter the log context"; leaf suppress-lsn-sub-blocks-free { type boolean; default "false"; description "Suppress the LSN Free blocks and NAT pool block allocation notifications"; } leaf suppress-lsn-events { type boolean; default "true"; description "Suppress the generation of Large Scale NAT (LSN) events when RADIUS accounting is enabled"; } } // container log container session-limits { description "Enter the session-limits context"; leaf reserved { type uint32 { range "1..6291456"; } description "Number of sessions reserved for prioritized sessions"; } leaf upnp-mappings { type uint32 { range "1..524288"; } sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; default "524288"; description "Maximum number of Universal Plug and Play mappings per member"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf low { type types-sros:percent; mandatory true; description "Low watermark of the number of sessions for each MDA in this NAT ISA group"; } leaf high { type types-sros:percent; mandatory true; description "High watermark of the number of sessions for each MDA in this NAT ISA group"; } } // container watermarks } // container session-limits list mda { key "mda-id"; description "Add a list entry for mda"; leaf mda-id { type types-isa:slot-mda; description "MDA ID for ISA NAT group"; } } // list mda list esa { key "esa-id vm"; description "Add a list entry for esa"; leaf esa-id { type leafref { path "../../../../esa/esa-id"; } description "Provisioned ESA ID"; } leaf vm { type leafref { path "../../../../esa[esa-id=current()/../esa-id]/vm/vm-id"; } description "VM ID for the provisioned BB ISA"; } } // list esa } // list nat-group list wlan-gw-group { key "id"; max-elements 1; description "Enter the wlan-gw-group list instance"; leaf id { type types-isa:wlan-gw-group-id; description "Unique value which to identify the WLAN-GW group within a chassis in system"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of a WLAN gateway group"; } leaf description { type types-sros:description; description "Text description"; } leaf redundancy { type enumeration { enum "iom" { value 1; } enum "mda" { value 2; } } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; default "iom"; description "Hardware unit subject to redundancy"; } leaf active-iom-limit { when "../redundancy = 'iom'"; type uint32 { range "1..7"; } sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; description "Number of WLAN-GW IOMs used as active IOMs"; } leaf active-mda-limit { when "../redundancy = 'mda'"; type uint32 { range "1..14"; } sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; description "ISAs that can be active to use by the WLAN-GW group at the same time"; } leaf port-policy { type leafref { path "../../../port-policy/name"; } sros-ext:auto-restart-to-modify; description "Base port configuration for WLAN-GW group ports that take part in per-UE QoS processing"; } leaf tunnel-port-policy { type leafref { path "../../../port-policy/name"; } sros-ext:auto-restart-to-modify; description "Base port configuration for WLAN-GW group ports that take part in per-tunnel QoS processing"; } leaf scaling-profile { type types-sros:isa-scaling-profile; sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; default "profile1"; description "The ISA scaling profile identifier."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list iom { when "../redundancy = 'iom'"; key "slot-number"; description "Add a list entry for iom"; leaf slot-number { type leafref { path "../../../../card/slot-number"; } description "IOM slot to use in the WLAN-GW group"; } } // list iom list mda { when "../redundancy = 'mda'"; key "mda-id"; description "Add a list entry for mda"; leaf mda-id { type types-isa:slot-mda; description "MDA slot value"; } } // list mda list esa { when "../redundancy = 'mda'"; key "esa-id vm"; description "Add a list entry for esa"; leaf esa-id { type leafref { path "../../../../esa/esa-id"; } description "ESA ID"; } leaf vm { type leafref { path "../../../../esa[esa-id=current()/../esa-id]/vm/vm-id"; } description "VM ID"; } } // list esa container nat { description "Enter the nat context"; leaf lsn { type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Use Large Scale NAT"; } leaf radius-accounting-policy { type leafref { path "../../../../aaa/radius/isa-policy/name"; } description "RADIUS accounting policy for ISA group"; } container log { description "Enter the log context"; leaf suppress-lsn-sub-blocks-free { type boolean; default "false"; description "Suppress the LSN Free blocks and NAT pool block allocation notifications"; } leaf suppress-lsn-events { type boolean; default "true"; description "Suppress the generation of Large Scale NAT (LSN) events when RADIUS accounting is enabled"; } } // container log container session-limits { description "Enter the session-limits context"; leaf reserved { type uint32 { range "1..6291456"; } description "Number of sessions reserved for prioritized sessions"; } leaf upnp-mappings { type uint32 { range "1..524288"; } sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; default "524288"; description "Maximum number of Universal Plug and Play mappings per member"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf low { type types-sros:percent; mandatory true; description "Low watermark of the number of sessions for each MDA in this NAT ISA group"; } leaf high { type types-sros:percent; mandatory true; description "High watermark of the number of sessions for each MDA in this NAT ISA group"; } } // container watermarks } // container session-limits } // container nat container watermarks { description "Enter the watermarks context"; list mark { key "entity"; description "Enter the mark list instance"; leaf entity { type types-isa:wlan-gw-watermark-entity; description "Entity to be monitored"; } leaf high { type types-sros:percent { range "1..100"; } mandatory true; description "High watermark for the WLAN-GW group"; } leaf low { type types-sros:percent { range "0..99"; } mandatory true; description "Low watermark for the WLAN-GW group"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mark } // container watermarks } // list wlan-gw-group list lns-group { key "id"; description "Enter the lns-group list instance"; leaf id { type types-l2tp:lns-group-id; description "Tunnel group ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ISA LNS group"; } leaf description { type types-sros:description; description "Text description"; } leaf port-policy { type leafref { path "../../../port-policy/name"; } sros-ext:auto-restart-to-modify; description "Port policy for the ISA LNS group"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list mda { key "mda-id"; max-elements 6; description "Enter the mda list instance"; leaf mda-id { type types-isa:slot-mda; description "MDA ID for the ISA LNS group"; } leaf drain { type boolean; default "false"; description "Specifies the draining state of the MDA"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mda list esa { key "esa-id vm"; max-elements 6; description "Enter the esa list instance"; leaf esa-id { type leafref { path "../../../../esa/esa-id"; } description "ESA ID"; } leaf vm { type leafref { path "../../../../esa[esa-id=current()/../esa-id]/vm/vm-id"; } description "VM ID"; } leaf drain { type boolean; default "false"; description "Redirect subscribers to other ESA VMs"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list esa } // list lns-group list video-group { key "video-group-id"; max-elements 4; description "Enter the video-group list instance"; leaf video-group-id { type uint32 { range "1..4"; } description "Video group identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of a video group"; } leaf ad-insert { type boolean; sros-ext:immutable; sros-ext:auto-restart-to-modify; default "false"; description "Enable the ad insert server for the group"; } leaf analyzer { type boolean; sros-ext:immutable; sros-ext:auto-restart-to-modify; default "false"; description "Enable video analyzer for all streams on video group"; } leaf description { type types-sros:description; description "Text description"; } leaf rt-client { type boolean; sros-ext:immutable; sros-ext:auto-restart-to-modify; default "true"; description "Allow client capability for retransmission"; } leaf fcc-server { type boolean; sros-ext:immutable; sros-ext:auto-restart-to-modify; default "false"; description "Allow FCC server capability for the group"; } leaf local-rt-server { type boolean; sros-ext:immutable; sros-ext:auto-restart-to-modify; default "false"; description "Enable the local RET server for the group"; } leaf resv-ret { type uint32 { range "0..10500"; } units "megabps"; description "Egress bandwidth reserved for retransmission for all ISAs within a video group"; } leaf stream-selection { type boolean; sros-ext:immutable; sros-ext:auto-restart-to-modify; default "false"; description "Allow stream selection for the group"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list mda { key "mda-id"; max-elements 6; description "Add a list entry for mda"; leaf mda-id { type types-isa:slot-mda; description "MDA identifier"; } } // list mda container watermark { description "Enter the watermark context"; container bandwidth { description "Enter the bandwidth context"; leaf fcc { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "FCC watermark parameters based on the bandwidth"; } leaf ret { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "RET watermark parameters based on the bandwidth"; } leaf total { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "Total watermark parameters based on the bandwidth"; } } // container bandwidth container session { description "Enter the session context"; leaf fcc { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "FCC watermark parameters based on the session"; } leaf ret { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "RET watermark parameters based on the session"; } leaf total { type types-mcast-mgmt:percent-without-zero-and-hundred; default "90"; description "Total watermark parameters based on the session"; } } // container session } // container watermark } // list video-group } // container isa list lag { key "lag-name"; description "Enter the lag list instance"; leaf lag-name { type types-sros:lag-interface; description "LAG name"; } leaf encap-type { type enumeration { enum "null" { value 1; } enum "dot1q" { value 2; } enum "qinq" { value 10; } } sros-ext:immutable; sros-ext:auto-restart-to-modify; description "Encapsulation type"; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Static MAC address for the LAG"; } leaf mode { type types-port:mode; sros-ext:immutable; sros-ext:auto-restart-to-modify; default "network"; description "Port mode of the LAG"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of LAG"; } leaf dynamic-cost { type boolean; default "false"; description "Allow OSPF or ISIS costing of a LAG based on available aggregated, operational bandwidth"; } leaf lacp-xmit-interval { type enumeration { enum "slow" { value 1; } enum "fast" { value 2; } } default "fast"; description "Time for periodic transmission"; } leaf lacp-xmit-stdby { type boolean; default "true"; description "Allow LACP message transmission on standby links"; } leaf standby-signaling { type enumeration { enum "lacp" { value 1; } enum "power-off" { value 2; } } default "lacp"; description "Way of signaling a member port to the remote side"; } leaf hold-time-down { type uint32 { range "1..2000"; } units "deciseconds"; description "Delay time between detecting that a LAG is down and reporting to higher levels"; } leaf port-type { type enumeration { enum "standard" { value 1; } enum "hsmda" { value 3; } enum "hs" { value 4; } } default "standard"; description "Port type of the LAG"; } leaf port-weight-speed { type uint32 { range "1|10"; } units "gigabps"; description "Speed corresponding to a port weight unit"; } leaf lacp-mux-control { type enumeration { enum "coupled" { value 1; } enum "independent" { value 2; } } sros-ext:auto-restart-to-modify; default "coupled"; description "Machine control to us in a LAG with LACP in active or passive modes"; } leaf monitor-oper-group { type leafref { path "../../service/oper-group/name"; } description "Operational group to monitor"; } leaf max-ports { type uint32 { range "32|64"; } sros-ext:immutable; default "32"; description "Indicates the number of lag-members allowed in the lag"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container port-threshold { description "Enter the port-threshold context"; leaf value { type int32 { range "0..63"; } description "Number of operational links for the LAG at or below which the configured action is invoked"; } leaf action { type enumeration { enum "down" { value 1; } enum "dynamic-cost" { value 2; } enum "static-cost" { value 3; } } default "down"; description "Action to take if the number of operational links is equal or below a threshold level"; } leaf cost { type uint32 { range "1..16777215"; } description "Cost of the LAG if the action is equal to static-cost. The cost can be used by IGP such as OSPF and ISIS."; } } // container port-threshold container lacp { presence "Enter the 'lacp' context"; description "Enable the lacp context"; leaf mode { type enumeration { enum "passive" { value 1; } enum "active" { value 2; } } default "passive"; description "Mode in which LACP operates"; } leaf system-id { type yang:mac-address; default "00:00:00:00:00:00"; description "System identifier for the system"; } leaf system-priority { type int32 { range "0..65535"; } description "System priority value"; } leaf administrative-key { type int32 { range "1..65535"; } mandatory true; description "LACP key"; } } // container lacp container adaptive-load-balancing { presence "Enter the 'adaptive-load-balancing' context"; description "Enable the adaptive-load-balancing context"; leaf tolerance { type types-sros:percent { range "1..100"; } default "20"; description "Threshold that triggers link utilization optimization"; } } // container adaptive-load-balancing container access { when "../mode = 'access' or ../mode = 'hybrid'" { description "access is only valid for access and hybrid lags."; } description "Enter the access context"; leaf bandwidth { type uint64 { range "1..6400000000"; } units "bps"; description "Administrative bandwidth applied to this LAG"; } leaf booking-factor { type uint32 { range "1..1000"; } default "100"; description "Booking factor against the administrative bandwidth"; } leaf per-fp-ing-queuing { type boolean; default "false"; description "Per-fp-ing-queuing to be set if no port members exists in the LAG"; } leaf per-fp-egr-queuing { type boolean; default "false"; description "Per FP egress queuing"; } leaf per-fp-sap-instance { type boolean; default "false"; description "SAP instance allocation on a LAG"; } container adapt-qos { description "Enter the adapt-qos context"; leaf mode { type enumeration { enum "link" { value 1; } enum "distribute" { value 2; } enum "port-fair" { value 3; } } description "QoS adaptation mode"; } leaf include-egr-hash-cfg { type boolean; default "false"; description "Factor explicitly configured hashing into the egress buffering and rate distribution"; } } // container adapt-qos } // container access container selection-criteria { description "Enter the selection-criteria context"; leaf mode { type enumeration { enum "highest-count" { value 1; } enum "highest-weight" { value 2; } enum "best-port" { value 3; } } default "highest-count"; description "Criteria to select the active subgroup"; } leaf slave-to-partner { type boolean; default "false"; description "Use slave-to-partner for selection criteria"; } leaf subgroup-hold-time { type union { type int32 { range "0..2000"; } type enumeration { enum "infinite" { value -1; } } } units "deciseconds"; default "0"; description "Time to delay when switching to a newly selected active sub-group from the existing active sub-group"; } } // container selection-criteria container per-link-hash { presence "Enter the 'per-link-hash' context"; description "Enable the per-link-hash context"; container weighted { presence "Enter the 'weighted' context"; description "Enable the weighted context"; leaf auto-rebalance { type boolean; default "false"; description "Automatically rebalance existing SAPs, subscribers, or interfaces when new links are added to a LAG"; } } // container weighted } // container per-link-hash container weight-threshold { description "Enter the weight-threshold context"; leaf value { type int32 { range "0..63"; } description "Integer threshold number of operational links for the LAG"; } leaf action { type enumeration { enum "down" { value 1; } enum "dynamic-cost" { value 2; } enum "static-cost" { value 3; } } default "down"; description "Action to take if the number of active links in the LAG is at or below the threshold value"; } leaf cost { type uint32 { range "1..16777215"; } description "Cost of the LAG if the action is equal to static-cost. The cost can be used by IGP such as OSPF and ISIS."; } } // container weight-threshold container hash-weight-threshold { description "Enter the hash-weight-threshold context"; leaf value { type int32 { range "1..6400000"; } description "Threshold value."; } leaf action { type enumeration { enum "down" { value 1; } enum "dynamic-cost" { value 2; } enum "static-cost" { value 3; } } default "down"; description "Action to take."; } leaf cost { type uint32 { range "1..16777215"; } description "Cost of the LAG if the action is equal to static-cost. The cost can be used by IGP such as OSPF and ISIS."; } } // container hash-weight-threshold container bfd-liveness { description "Enter the bfd-liveness context"; leaf soft-reset-extension { type boolean; default "true"; description "Extend BFD timers during soft reset"; } container ipv4 { description "Enter the ipv4 context"; leaf bfd-on-distributing-only { type boolean; default "false"; description "Restrict micro-BFD sessions to links in LACP state distributing"; } leaf max-admin-down-time { type union { type int32 { range "0..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "0"; description "Maximum time to behave as if the micro-BFD session was up while the remote end is down"; } leaf max-setup-time { type union { type int32 { range "0..60000"; } type enumeration { enum "infinite" { value -1; } } } units "milliseconds"; default "infinite"; description "Maximum time to behave as if the micro-BFD session was up while it is actually still being set up"; } leaf multiplier { type uint32 { range "3..20"; } default "3"; description "Number of BFD messages to miss before the micro-BFD session goes down"; } leaf receive-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Receive timer for micro-BFD session over the associated LAG links"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of micro-BFD sessions for this address family"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Transmit timer for micro-BFD session over the associated LAG links"; } leaf local-ip-address { type types-sros:ipv4-unicast-address; description "BFD source address"; } leaf remote-ip-address { type types-sros:ipv4-unicast-address; description "BFD destination address"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf bfd-on-distributing-only { type boolean; default "false"; description "Restrict micro-BFD sessions to links in LACP state distributing"; } leaf max-admin-down-time { type union { type int32 { range "0..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "0"; description "Maximum time to behave as if the micro-BFD session was up while the remote end is down"; } leaf max-setup-time { type union { type int32 { range "0..60000"; } type enumeration { enum "infinite" { value -1; } } } units "milliseconds"; default "infinite"; description "Maximum time to behave as if the micro-BFD session was up while it is actually still being set up"; } leaf multiplier { type uint32 { range "3..20"; } default "3"; description "Number of BFD messages to miss before the micro-BFD session goes down"; } leaf receive-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Receive timer for micro-BFD session over the associated LAG links"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of micro-BFD sessions for this address family"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "Transmit timer for micro-BFD session over the associated LAG links"; } leaf local-ip-address { type types-sros:ipv6-unicast-address; description "BFD source address"; } leaf remote-ip-address { type types-sros:ipv6-unicast-address; description "BFD destination address"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ipv6 } // container bfd-liveness container eth-cfm { description "Enter the eth-cfm context"; list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf vlan { type types-eth-cfm:vlan-id-or-none; sros-ext:immutable; default "none"; description "Unique VLAN ID for a specific VLAN"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf facility-fault { type boolean; default "false"; description "Allow the facility MEP to generate a network action"; } leaf-list ccm-tlv-ignore { type types-eth-cfm:ccm-tlv-ignore-type; max-elements 2; description "TLV to ignore on reception"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm list port { key "port-id"; description "Enter the port list instance"; leaf port-id { type leafref { path "../../../port/port-id"; } description "Identifier to uniquely identify the port in the LAG"; } leaf priority { type uint32 { range "1..65535"; } default "32768"; description "Priority of the port in the LAG"; } leaf sub-group { type union { type uint32 { range "1..8"; } type enumeration { enum "auto-iom" { value -2; } enum "auto-mda" { value -1; } } } sros-ext:immutable; default "1"; description "Subgroup of the port in the LAG"; } leaf hash-weight { type union { type uint32 { range "1..100000"; } type enumeration { enum "port-speed" { value -1; } } } description "Flow hashing distribution between LAG ports"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list port list link-map-profile { key "link-map-profile-id"; description "Enter the link-map-profile list instance"; leaf link-map-profile-id { type int32 { range "1..64"; } description "Link map profile to control LAG ports"; } leaf description { type types-sros:description; description "Text description"; } leaf failure-mode { type enumeration { enum "per-link-hash" { value 1; } enum "discard" { value 2; } } default "per-link-hash"; description "Failure mode of LAG link profile"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list link { key "port-id"; description "Enter the link list instance"; leaf port-id { type leafref { path "../../../port/port-id"; } description "Port associated with the link map profile"; } leaf port-type { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } sros-ext:immutable; mandatory true; description "Type of the associated port for this entry"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list link } // list link-map-profile } // list lag container log { description "Enter the log context"; leaf event-damping { type boolean; default "true"; description "Allow event damping algorithm to suppress QoS or filter change events"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list accounting-policy { key "policy-id"; description "Enter the accounting-policy list instance"; leaf policy-id { type types-log:log-policy-id; description "Accounting policy unique ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this policy"; } leaf description { type types-sros:description; description "Text description"; } leaf collection-interval { type int32 { range "1..120"; } units "minutes"; description "Accounting collection interval"; } leaf default { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Default accounting policy for all objects that do not have an accounting policy"; } leaf include-system-info { type boolean; default "false"; description "Include system information in accounting policy records"; } leaf record { type types-log:accounting-record-type; sros-ext:immutable; sros-ext:auto-restart-to-modify; description "Accounting record type that is forwarded to configured accounting file"; } leaf align { type boolean; default "false"; description "Align generation interval to absolute time"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container custom-record { description "Enter the custom-record context"; leaf significant-change { type uint32 { range "0..max"; } description "Significant change required to generate the record"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list override-counter { key "id"; description "Enter the override-counter list instance"; leaf id { type uint32 { range "1..8"; } description "Override counter ID"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container i-counters } // list override-counter list policer { key "id"; description "Enter the policer list instance"; leaf id { type uint32 { range "1..63"; } description "Specifies the identification of a custom-record policer."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in profile octets discarded count"; } leaf in-profile-octets-offered-count { type boolean; default "false"; description "Include the in profile octets offered count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in profile packets discarded count"; } leaf in-profile-packets-offered-count { type boolean; default "false"; description "Include the in profile packets offered count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out profile octets discarded count"; } leaf out-profile-octets-offered-count { type boolean; default "false"; description "Include the out profile octets offered count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out profile packets discarded count"; } leaf out-profile-packets-offered-count { type boolean; default "false"; description "Include the out profile packets offered count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out profile packets forwarded count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncoloured octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncoloured packets offered count"; } leaf exceed-profile-octets-discarded-count { type boolean; default "false"; description "Include the exceed profile octets discarded count"; } leaf exceed-profile-octets-forwarded-count { type boolean; default "false"; description "Include the exceed profile octets forwarded count"; } leaf exceed-profile-octets-offered-count { type boolean; default "false"; description "Include the exceed profile octets offered count"; } leaf exceed-profile-packets-discarded-count { type boolean; default "false"; description "Include the exceed profile packets discarded count"; } leaf exceed-profile-packets-forwarded-count { type boolean; default "false"; description "Include the exceed profile packets forwarded count"; } leaf exceed-profile-packets-offered-count { type boolean; default "false"; description "Include the exceed profile packets offered count"; } leaf in-plus-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-plus profile octets discarded count"; } leaf in-plus-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-plus profile octets forwarded count"; } leaf in-plus-profile-octets-offered-count { type boolean; default "false"; description "Include the in-plus profile octets offered count"; } leaf in-plus-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-plus profile packets discarded count"; } leaf in-plus-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-plus profile packets forwarded count"; } leaf in-plus-profile-packets-offered-count { type boolean; default "false"; description "Include the in-plus profile packets offered count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in profile octets discarded count"; } leaf in-profile-octets-offered-count { type boolean; default "false"; description "Include the in profile octets offered count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in profile packets discarded count"; } leaf in-profile-packets-offered-count { type boolean; default "false"; description "Include the in profile packets offered count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out profile octets discarded count"; } leaf out-profile-octets-offered-count { type boolean; default "false"; description "Include the out profile octets offered count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out profile packets discarded count"; } leaf out-profile-packets-offered-count { type boolean; default "false"; description "Include the out profile packets offered count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out profile packets forwarded count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncoloured octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncoloured packets offered count"; } } // container i-counters } // list policer list queue { key "id"; description "Enter the queue list instance"; leaf id { type uint32 { range "1..32"; } description "Custom record queue ID"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } leaf high-octets-offered-count { type boolean; default "false"; description "Include the high octets offered count"; } leaf high-packets-offered-count { type boolean; default "false"; description "Include the high packets offered count"; } leaf low-octets-offered-count { type boolean; default "false"; description "Include the low octets offered count"; } leaf low-packets-offered-count { type boolean; default "false"; description "Include the low packets offered count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncolored octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncolored packets offered count"; } } // container i-counters } // list queue container ref-override-counter { description "Enter the ref-override-counter context"; choice counter { case id { leaf id { type leafref { path "../../override-counter/id"; } description "Referenced override counter ID"; } } case all { leaf all { type empty; description "All referenced override counters"; } } } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container i-counters } // container ref-override-counter container ref-policer { description "Enter the ref-policer context"; choice policer { case id { leaf id { type leafref { path "../../policer/id"; } description "Referenced policer ID"; } } case all { leaf all { type empty; description "This specifies all policer are referenced."; } } } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in profile octets discarded count"; } leaf in-profile-octets-offered-count { type boolean; default "false"; description "Include the in profile octets offered count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in profile packets discarded count"; } leaf in-profile-packets-offered-count { type boolean; default "false"; description "Include the in profile packets offered count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out profile octets discarded count"; } leaf out-profile-octets-offered-count { type boolean; default "false"; description "Include the out profile octets offered count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out profile packets discarded count"; } leaf out-profile-packets-offered-count { type boolean; default "false"; description "Include the out profile packets offered count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out profile packets forwarded count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncoloured octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncoloured packets offered count"; } leaf exceed-profile-octets-discarded-count { type boolean; default "false"; description "Include the exceed profile octets discarded count"; } leaf exceed-profile-octets-forwarded-count { type boolean; default "false"; description "Include the exceed profile octets forwarded count"; } leaf exceed-profile-octets-offered-count { type boolean; default "false"; description "Include the exceed profile octets offered count"; } leaf exceed-profile-packets-discarded-count { type boolean; default "false"; description "Include the exceed profile packets discarded count"; } leaf exceed-profile-packets-forwarded-count { type boolean; default "false"; description "Include the exceed profile packets forwarded count"; } leaf exceed-profile-packets-offered-count { type boolean; default "false"; description "Include the exceed profile packets offered count"; } leaf in-plus-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-plus profile octets discarded count"; } leaf in-plus-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-plus profile octets forwarded count"; } leaf in-plus-profile-octets-offered-count { type boolean; default "false"; description "Include the in-plus profile octets offered count"; } leaf in-plus-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-plus profile packets discarded count"; } leaf in-plus-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-plus profile packets forwarded count"; } leaf in-plus-profile-packets-offered-count { type boolean; default "false"; description "Include the in-plus profile packets offered count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in profile octets discarded count"; } leaf in-profile-octets-offered-count { type boolean; default "false"; description "Include the in profile octets offered count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in profile packets discarded count"; } leaf in-profile-packets-offered-count { type boolean; default "false"; description "Include the in profile packets offered count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out profile octets discarded count"; } leaf out-profile-octets-offered-count { type boolean; default "false"; description "Include the out profile octets offered count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out profile packets discarded count"; } leaf out-profile-packets-offered-count { type boolean; default "false"; description "Include the out profile packets offered count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out profile packets forwarded count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncoloured octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncoloured packets offered count"; } } // container i-counters } // container ref-policer container ref-queue { description "Enter the ref-queue context"; choice queue { case id { leaf id { type leafref { path "../../queue/id"; } description "Referenced queue ID"; } } case all { leaf all { type empty; description "All referenced queues"; } } } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } leaf high-octets-offered-count { type boolean; default "false"; description "Include the high octets offered count"; } leaf high-packets-offered-count { type boolean; default "false"; description "Include the high packets offered count"; } leaf low-octets-offered-count { type boolean; default "false"; description "Include the low octets offered count"; } leaf low-packets-offered-count { type boolean; default "false"; description "Include the low packets offered count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncolored octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncolored packets offered count"; } } // container i-counters } // container ref-queue } // container custom-record container destination { description "Enter the destination context"; choice destination { case file { leaf file { type leafref { path "../../../file/file-id"; } sros-ext:immutable; sros-ext:auto-restart-to-modify; description "Unique file identifier when creating a log or accounting file"; } } case null { leaf null { type empty; sros-ext:immutable; sros-ext:auto-restart-to-modify; description "Destination not specified for records of an accounting policy."; } } } } // container destination } // list accounting-policy container app-route-notifications { description "Enter the app-route-notifications context"; leaf cold-start-wait { type uint32 { range "1..300"; } description "Time delay before notifying specific CPM applications for available route"; } leaf route-recovery-wait { type uint32 { range "1..100"; } description "Time delay before notifying specific CPM applications after route recovery or change"; } } // container app-route-notifications container log-events { description "Enter the log-events context"; list adp { key "event"; description "Enter the adp list instance"; leaf event { type types-log:adp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list adp list application-assurance { key "event"; description "Enter the application-assurance list instance"; leaf event { type types-log:application-assurance-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list application-assurance list aps { key "event"; description "Enter the aps list instance"; leaf event { type types-log:aps-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list aps list atm { key "event"; description "Enter the atm list instance"; leaf event { type types-log:atm-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list atm list auto-prov { key "event"; description "Enter the auto-prov list instance"; leaf event { type types-log:auto-prov-events; description "Events for auto-prov module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list auto-prov list bfd { key "event"; description "Enter the bfd list instance"; leaf event { type types-log:bfd-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list bfd list bgp { key "event"; description "Enter the bgp list instance"; leaf event { type types-log:bgp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list bgp list bier { key "event"; description "Enter the bier list instance"; leaf event { type types-log:bier-events; description "Events for bier module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list bier list calltrace { key "event"; description "Enter the calltrace list instance"; leaf event { type types-log:calltrace-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list calltrace list cflowd { key "event"; description "Enter the cflowd list instance"; leaf event { type types-log:cflowd-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cflowd list chassis { key "event"; description "Enter the chassis list instance"; leaf event { type types-log:chassis-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list chassis list debug { key "event"; description "Enter the debug list instance"; leaf event { type types-log:debug-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list debug list dhcp { key "event"; description "Enter the dhcp list instance"; leaf event { type types-log:dhcp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dhcp list dhcps { key "event"; description "Enter the dhcps list instance"; leaf event { type types-log:dhcps-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dhcps list diameter { key "event"; description "Enter the diameter list instance"; leaf event { type types-log:diameter-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list diameter list dot1x { key "event"; description "Enter the dot1x list instance"; leaf event { type types-log:dot1x-events; description "Events for dynsvc module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dot1x list dynsvc { key "event"; description "Enter the dynsvc list instance"; leaf event { type types-log:dynsvc-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dynsvc list efm-oam { key "event"; description "Enter the efm-oam list instance"; leaf event { type types-log:efm-oam-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list efm-oam list elmi { key "event"; description "Enter the elmi list instance"; leaf event { type types-log:elmi-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list elmi list ering { key "event"; description "Enter the ering list instance"; leaf event { type types-log:ethring-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ering list eth-cfm { key "event"; description "Enter the eth-cfm list instance"; leaf event { type types-log:ethcfm-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list eth-cfm list etun { key "event"; description "Enter the etun list instance"; leaf event { type types-log:etun-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list etun list filter { key "event"; description "Enter the filter list instance"; leaf event { type types-log:filter-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list filter list gmpls { key "event"; description "Enter the gmpls list instance"; leaf event { type types-log:gmpls-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list gmpls list gsmp { key "event"; description "Enter the gsmp list instance"; leaf event { type types-log:gsmp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list gsmp list igh { key "event"; description "Enter the igh list instance"; leaf event { type types-log:igh-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list igh list igmp { key "event"; description "Enter the igmp list instance"; leaf event { type types-log:igmp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list igmp list igmp-snooping { key "event"; description "Enter the igmp-snooping list instance"; leaf event { type types-log:igmp-snooping-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list igmp-snooping list ip { key "event"; description "Enter the ip list instance"; leaf event { type types-log:ip-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ip list ipsec { key "event"; description "Enter the ipsec list instance"; leaf event { type types-log:ipsec-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ipsec list isis { key "event"; description "Enter the isis list instance"; leaf event { type types-log:isis-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list isis list l2tp { key "event"; description "Enter the l2tp list instance"; leaf event { type types-log:l2tp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list l2tp list lag { key "event"; description "Enter the lag list instance"; leaf event { type types-log:lag-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list lag list ldap { key "event"; description "Enter the ldap list instance"; leaf event { type types-log:ldap-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ldap list ldp { key "event"; description "Enter the ldp list instance"; leaf event { type types-log:ldp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ldp list li { key "event"; description "Enter the li list instance"; leaf event { type types-log:li-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list li list lldp { key "event"; description "Enter the lldp list instance"; leaf event { type types-log:lldp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list lldp list lmp { key "event"; description "Enter the lmp list instance"; leaf event { type types-log:lmp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list lmp list logger { key "event"; description "Enter the logger list instance"; leaf event { type types-log:logger-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list logger list macsec { key "event"; description "Enter the macsec list instance"; leaf event { type types-log:macsec-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list macsec list mcpath { key "event"; description "Enter the mcpath list instance"; leaf event { type types-log:mcpath-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mcpath list mc-redundancy { key "event"; description "Enter the mc-redundancy list instance"; leaf event { type types-log:mc-redundancy-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mc-redundancy list mgmt-core { key "event"; description "Enter the mgmt-core list instance"; leaf event { type types-log:mgmt-core-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mgmt-core list mirror { key "event"; description "Enter the mirror list instance"; leaf event { type types-log:mirror-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mirror list mld { key "event"; description "Enter the mld list instance"; leaf event { type types-log:mld-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mld list mld-snooping { key "event"; description "Enter the mld-snooping list instance"; leaf event { type types-log:mld-snooping-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mld-snooping list mpls { key "event"; description "Enter the mpls list instance"; leaf event { type types-log:mpls-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mpls list mpls-tp { key "event"; description "Enter the mpls-tp list instance"; leaf event { type types-log:mpls-tp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mpls-tp list msdp { key "event"; description "Enter the msdp list instance"; leaf event { type types-log:msdp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list msdp list nat { key "event"; description "Enter the nat list instance"; leaf event { type types-log:nat-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list nat list ntp { key "event"; description "Enter the ntp list instance"; leaf event { type types-log:ntp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ntp list oam { key "event"; description "Enter the oam list instance"; leaf event { type types-log:oam-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list oam list openflow { key "event"; description "Enter the openflow list instance"; leaf event { type types-log:openflow-events; description "Events for openflow module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list openflow list ospf { key "event"; description "Enter the ospf list instance"; leaf event { type types-log:ospf-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ospf list pcap { key "event"; description "Enter the pcap list instance"; leaf event { type types-log:pcap-events; description "Events for PCAP module"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pcap list pim { key "event"; description "Enter the pim list instance"; leaf event { type types-log:pim-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pim list pim-snooping { key "event"; description "Enter the pim-snooping list instance"; leaf event { type types-log:pim-snooping-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pim-snooping list port { key "event"; description "Enter the port list instance"; leaf event { type types-log:port-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list port list ppp { key "event"; description "Enter the ppp list instance"; leaf event { type types-log:ppp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ppp list pppoe { key "event"; description "Enter the pppoe list instance"; leaf event { type types-log:pppoe-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pppoe list pppoe-clnt { key "event"; description "Enter the pppoe-clnt list instance"; leaf event { type types-log:pppoe-clnt-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pppoe-clnt list ptp { key "event"; description "Enter the ptp list instance"; leaf event { type types-log:ptp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ptp list python { key "event"; description "Enter the python list instance"; leaf event { type types-log:python-events; description "Events for the PYTHON module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list python list radius { key "event"; description "Enter the radius list instance"; leaf event { type types-log:radius-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list radius list rip { key "event"; description "Enter the rip list instance"; leaf event { type types-log:rip-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list rip list ripng { key "event"; description "Enter the ripng list instance"; leaf event { type types-log:ripng-events; description "Events for RIPng module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ripng list route-policy { key "event"; description "Enter the route-policy list instance"; leaf event { type types-log:route-policy-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list route-policy list rpki { key "event"; description "Enter the rpki list instance"; leaf event { type types-log:rpki-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list rpki list rsvp { key "event"; description "Enter the rsvp list instance"; leaf event { type types-log:rsvp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list rsvp list satellite { key "event"; description "Enter the satellite list instance"; leaf event { type types-log:satellite-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list satellite list security { key "event"; description "Enter the security list instance"; leaf event { type types-log:security-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list security list sflow { key "event"; description "Enter the sflow list instance"; leaf event { type types-log:sflow-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sflow list snmp { key "event"; description "Enter the snmp list instance"; leaf event { type types-log:snmp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list snmp list stp { key "event"; description "Enter the stp list instance"; leaf event { type types-log:stp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list stp list svcmgr { key "event"; description "Enter the svcmgr list instance"; leaf event { type types-log:svcmgr-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list svcmgr list system { key "event"; description "Enter the system list instance"; leaf event { type types-log:system-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list system list tls { key "event"; description "Enter the tls list instance"; leaf event { type types-log:tls-events; description "Events for tls module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list tls list tree-sid { key "event"; description "Enter the tree-sid list instance"; leaf event { type types-log:treesid-events; description "Events for tree_sid module."; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list tree-sid list user { key "event"; description "Enter the user list instance"; leaf event { type types-log:user-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list user list video { key "event"; description "Enter the video list instance"; leaf event { type types-log:video-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list video list vrrp { key "event"; description "Enter the vrrp list instance"; leaf event { type types-log:vrrp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list vrrp list vrtr { key "event"; description "Enter the vrtr list instance"; leaf event { type types-log:vrtr-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list vrtr list wlan-gw { key "event"; description "Enter the wlan-gw list instance"; leaf event { type types-log:wlan-gw-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list wlan-gw list wpp { key "event"; description "Enter the wpp list instance"; leaf event { type types-log:wpp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf severity { type enumeration { enum "cleared" { value 1; } enum "indeterminate" { value 2; } enum "critical" { value 3; } enum "major" { value 4; } enum "minor" { value 5; } enum "warning" { value 6; } } description "Severity level associated with event type"; } leaf generate { type boolean; description "Generate log events of this type and increment the event counter"; } leaf throttle { type boolean; description "Throttle log events of this type"; } leaf specific-throttle { type boolean; description "Use parameters that throttle this specific event"; } leaf specific-throttle-limit { type uint32 { range "1..20000"; } description "Times that this event can be logged within the specific throttle interval"; } leaf specific-throttle-interval { type uint32 { range "1..1200"; } description "Duration of the event specific throttling interval"; } leaf repeat { type boolean; default "false"; description "The value of repeat determines whether or not events of this type will be repeated. When it has a value of 'true', the event is repeated. When it has a value of 'false', repeating is stopped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list wpp } // container log-events container event-handling { description "Enter the event-handling context"; list handler { key "name"; max-elements 1500; description "Enter the handler list instance"; leaf name { type types-sros:named-item; description "File ID to use when creating a log, or accounting file"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; max-elements 1500; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "Index of an event entry in parent EHS Event Handler"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf min-delay { type uint32 { range "1..604800"; } units "seconds"; description "Minimum delay between subsequent executions of the script policy"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container script-policy { description "Enter the script-policy context"; leaf name { type leafref { path "../../../../../../system/script-control/script-policy[owner=current()/../owner]/policy-name"; } description "Name combined with value of owner to launch the script policy"; } leaf owner { type leafref { path "../../../../../../system/script-control/script-policy[policy-name=current()/../name]/owner"; } description "Script policy owner"; } } // container script-policy } // list entry } // list handler } // container event-handling container event-trigger { description "Enter the event-trigger context"; list adp { key "event"; description "Enter the adp list instance"; leaf event { type types-log:adp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list adp list application-assurance { key "event"; description "Enter the application-assurance list instance"; leaf event { type types-log:application-assurance-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list application-assurance list aps { key "event"; description "Enter the aps list instance"; leaf event { type types-log:aps-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list aps list atm { key "event"; description "Enter the atm list instance"; leaf event { type types-log:atm-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list atm list auto-prov { key "event"; description "Enter the auto-prov list instance"; leaf event { type types-log:auto-prov-events; description "Events for auto-prov module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list auto-prov list bfd { key "event"; description "Enter the bfd list instance"; leaf event { type types-log:bfd-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list bfd list bgp { key "event"; description "Enter the bgp list instance"; leaf event { type types-log:bgp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list bgp list bier { key "event"; description "Enter the bier list instance"; leaf event { type types-log:bier-events; description "Events for bier module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list bier list calltrace { key "event"; description "Enter the calltrace list instance"; leaf event { type types-log:calltrace-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list calltrace list cflowd { key "event"; description "Enter the cflowd list instance"; leaf event { type types-log:cflowd-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list cflowd list chassis { key "event"; description "Enter the chassis list instance"; leaf event { type types-log:chassis-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list chassis list debug { key "event"; description "Enter the debug list instance"; leaf event { type types-log:debug-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list debug list dhcp { key "event"; description "Enter the dhcp list instance"; leaf event { type types-log:dhcp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list dhcp list dhcps { key "event"; description "Enter the dhcps list instance"; leaf event { type types-log:dhcps-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list dhcps list diameter { key "event"; description "Enter the diameter list instance"; leaf event { type types-log:diameter-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list diameter list dynsvc { key "event"; description "Enter the dynsvc list instance"; leaf event { type types-log:dynsvc-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list dynsvc list efm-oam { key "event"; description "Enter the efm-oam list instance"; leaf event { type types-log:efm-oam-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list efm-oam list elmi { key "event"; description "Enter the elmi list instance"; leaf event { type types-log:elmi-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list elmi list ering { key "event"; description "Enter the ering list instance"; leaf event { type types-log:ethring-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ering list eth-cfm { key "event"; description "Enter the eth-cfm list instance"; leaf event { type types-log:ethcfm-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list eth-cfm list etun { key "event"; description "Enter the etun list instance"; leaf event { type types-log:etun-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list etun list filter { key "event"; description "Enter the filter list instance"; leaf event { type types-log:filter-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list filter list gmpls { key "event"; description "Enter the gmpls list instance"; leaf event { type types-log:gmpls-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list gmpls list gsmp { key "event"; description "Enter the gsmp list instance"; leaf event { type types-log:gsmp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list gsmp list igh { key "event"; description "Enter the igh list instance"; leaf event { type types-log:igh-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list igh list igmp { key "event"; description "Enter the igmp list instance"; leaf event { type types-log:igmp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list igmp list igmp-snooping { key "event"; description "Enter the igmp-snooping list instance"; leaf event { type types-log:igmp-snooping-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list igmp-snooping list ip { key "event"; description "Enter the ip list instance"; leaf event { type types-log:ip-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ip list ipsec { key "event"; description "Enter the ipsec list instance"; leaf event { type types-log:ipsec-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ipsec list isis { key "event"; description "Enter the isis list instance"; leaf event { type types-log:isis-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list isis list l2tp { key "event"; description "Enter the l2tp list instance"; leaf event { type types-log:l2tp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list l2tp list lag { key "event"; description "Enter the lag list instance"; leaf event { type types-log:lag-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list lag list ldap { key "event"; description "Enter the ldap list instance"; leaf event { type types-log:ldap-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ldap list ldp { key "event"; description "Enter the ldp list instance"; leaf event { type types-log:ldp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ldp list li { key "event"; description "Enter the li list instance"; leaf event { type types-log:li-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list li list lldp { key "event"; description "Enter the lldp list instance"; leaf event { type types-log:lldp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list lldp list lmp { key "event"; description "Enter the lmp list instance"; leaf event { type types-log:lmp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list lmp list logger { key "event"; description "Enter the logger list instance"; leaf event { type types-log:logger-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list logger list macsec { key "event"; description "Enter the macsec list instance"; leaf event { type types-log:macsec-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list macsec list mcpath { key "event"; description "Enter the mcpath list instance"; leaf event { type types-log:mcpath-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mcpath list mc-redundancy { key "event"; description "Enter the mc-redundancy list instance"; leaf event { type types-log:mc-redundancy-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mc-redundancy list mgmt-core { key "event"; description "Enter the mgmt-core list instance"; leaf event { type types-log:mgmt-core-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mgmt-core list mirror { key "event"; description "Enter the mirror list instance"; leaf event { type types-log:mirror-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mirror list mld { key "event"; description "Enter the mld list instance"; leaf event { type types-log:mld-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mld list mld-snooping { key "event"; description "Enter the mld-snooping list instance"; leaf event { type types-log:mld-snooping-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mld-snooping list mpls { key "event"; description "Enter the mpls list instance"; leaf event { type types-log:mpls-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mpls list mpls-tp { key "event"; description "Enter the mpls-tp list instance"; leaf event { type types-log:mpls-tp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list mpls-tp list msdp { key "event"; description "Enter the msdp list instance"; leaf event { type types-log:msdp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list msdp list nat { key "event"; description "Enter the nat list instance"; leaf event { type types-log:nat-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list nat list ntp { key "event"; description "Enter the ntp list instance"; leaf event { type types-log:ntp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ntp list oam { key "event"; description "Enter the oam list instance"; leaf event { type types-log:oam-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list oam list openflow { key "event"; description "Enter the openflow list instance"; leaf event { type types-log:openflow-events; description "Events for openflow module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list openflow list ospf { key "event"; description "Enter the ospf list instance"; leaf event { type types-log:ospf-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ospf list pcap { key "event"; description "Enter the pcap list instance"; leaf event { type types-log:pcap-events; description "Events for PCAP module"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list pcap list pim { key "event"; description "Enter the pim list instance"; leaf event { type types-log:pim-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list pim list pim-snooping { key "event"; description "Enter the pim-snooping list instance"; leaf event { type types-log:pim-snooping-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list pim-snooping list port { key "event"; description "Enter the port list instance"; leaf event { type types-log:port-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list port list ppp { key "event"; description "Enter the ppp list instance"; leaf event { type types-log:ppp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ppp list pppoe { key "event"; description "Enter the pppoe list instance"; leaf event { type types-log:pppoe-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list pppoe list pppoe-clnt { key "event"; description "Enter the pppoe-clnt list instance"; leaf event { type types-log:pppoe-clnt-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list pppoe-clnt list ptp { key "event"; description "Enter the ptp list instance"; leaf event { type types-log:ptp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ptp list radius { key "event"; description "Enter the radius list instance"; leaf event { type types-log:radius-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list radius list rip { key "event"; description "Enter the rip list instance"; leaf event { type types-log:rip-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list rip list ripng { key "event"; description "Enter the ripng list instance"; leaf event { type types-log:ripng-events; description "Events for RIPng module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list ripng list route-policy { key "event"; description "Enter the route-policy list instance"; leaf event { type types-log:route-policy-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list route-policy list rpki { key "event"; description "Enter the rpki list instance"; leaf event { type types-log:rpki-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list rpki list rsvp { key "event"; description "Enter the rsvp list instance"; leaf event { type types-log:rsvp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list rsvp list satellite { key "event"; description "Enter the satellite list instance"; leaf event { type types-log:satellite-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list satellite list security { key "event"; description "Enter the security list instance"; leaf event { type types-log:security-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list security list sflow { key "event"; description "Enter the sflow list instance"; leaf event { type types-log:sflow-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list sflow list snmp { key "event"; description "Enter the snmp list instance"; leaf event { type types-log:snmp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list snmp list stp { key "event"; description "Enter the stp list instance"; leaf event { type types-log:stp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list stp list svcmgr { key "event"; description "Enter the svcmgr list instance"; leaf event { type types-log:svcmgr-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list svcmgr list system { key "event"; description "Enter the system list instance"; leaf event { type types-log:system-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list system list tls { key "event"; description "Enter the tls list instance"; leaf event { type types-log:tls-events; description "Events for tls module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list tls list tree-sid { key "event"; description "Enter the tree-sid list instance"; leaf event { type types-log:treesid-events; description "Events for tree_sid module."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list tree-sid list user { key "event"; description "Enter the user list instance"; leaf event { type types-log:user-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list user list video { key "event"; description "Enter the video list instance"; leaf event { type types-log:video-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list video list vrrp { key "event"; description "Enter the vrrp list instance"; leaf event { type types-log:vrrp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list vrrp list vrtr { key "event"; description "Enter the vrtr list instance"; leaf event { type types-log:vrtr-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list vrtr list wlan-gw { key "event"; description "Enter the wlan-gw list instance"; leaf event { type types-log:wlan-gw-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list wlan-gw list wpp { key "event"; description "Enter the wpp list instance"; leaf event { type types-log:wpp-events; description "Specific log event as a trigger for one or more EHS handlers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EHS event"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1500"; } description "ID of the EHS event trigger entry"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the EHS event trigger entry"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../filter/filter-name"; } description "Log filter for EHS event trigger entry"; } leaf handler { type leafref { path "../../../../event-handling/handler/name"; } description "Event handler for EHS event trigger entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container debounce { description "Enter the debounce context"; leaf value { type uint32 { range "2..15"; } description "Number of event occurrences within specific time for EHS to trigger response"; } leaf time { type uint32 { range "1..604800"; } units "seconds"; description "Time within which specific event must occur for EHS to trigger response"; } } // container debounce } // list entry } // list wpp } // container event-trigger list file { key "file-id"; description "Enter the file list instance"; leaf file-id { type int32 { range "1..99"; } description "File ID when creating a log or accounting file"; } leaf description { type types-sros:description; description "Text description"; } leaf rollover { type int32 { range "5..10080"; } units "minutes"; default "1440"; description "Frequency at which a new log or accounting file is created"; } leaf retention { type int32 { range "1..500"; } units "hours"; default "12"; description "Minimum time that a file is retained on the media"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container compact-flash-location { description "Enter the compact-flash-location context"; leaf primary { type types-log:compact-flash-drive; sros-ext:immutable; default "cf-unspecified"; description "Log file location"; } leaf backup { type types-log:compact-flash-drive; sros-ext:immutable; default "cf-unspecified"; description "Log file location"; } } // container compact-flash-location } // list file list filter { key "filter-name"; max-elements 1500; description "Enter the filter list instance"; leaf filter-name { type types-log:log-filter-name; description "The value of name uniquely identifies an event log filter"; } leaf description { type types-sros:description; description "Text description"; } leaf default-action { type types-log:filter-action; description "Default action for the event filter"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { status obsolete; key "entry-id"; sros-ext:shared-model-management { sros-ext:openconfig false; } description "Enter the entry list instance"; leaf entry-id { status obsolete; type uint32 { range "1..999"; } description "Identification number for an event log filter parameter"; } leaf description { status obsolete; type types-sros:description; description "Text description"; } leaf action { status obsolete; type types-log:filter-action; description "Action for this event filter entry"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { status obsolete; description "Enter the match context"; container application { status obsolete; description "Enter the application context"; choice application-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-log:application-obsolete; description "Application to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-log:application-obsolete; description "Application to be filtered out"; } } } } // container application container event { status obsolete; description "Enter the event context"; choice event-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type uint32 { range "1..max"; } description "Log event message to match"; } } case neq { status obsolete; leaf neq { status obsolete; type uint32 { range "1..max"; } description "Log event message to filter out"; } } case lt { status obsolete; leaf lt { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case lte { status obsolete; leaf lte { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gt { status obsolete; leaf gt { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gte { status obsolete; leaf gte { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } } } // container event container message { status obsolete; description "Enter the message context"; leaf regexp { status obsolete; type boolean; default "false"; description "String comparison to determine if the log event matches the value of pattern"; } choice message-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type string { length "1..400"; } description "Log event message to match"; } } case neq { status obsolete; leaf neq { status obsolete; type string { length "1..400"; } description "Log event message to be filtered out"; } } } } // container message container vrtr-name { status obsolete; description "Enter the vrtr-name context"; leaf regexp { status obsolete; type boolean; default "false"; description "String comparison to determine if the log event matches the value of router instance"; } choice vrtr-name-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-sros:named-item; description "Specifies the log event router context name to be matched."; } } case neq { status obsolete; leaf neq { status obsolete; type types-sros:named-item; description "Specifies the log event router context name to be filtered out."; } } } } // container vrtr-name container severity { status obsolete; description "Enter the severity context"; choice severity-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-log:severity-level; description "Log event severity level to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-log:severity-level; description "Log event severity level to filter out"; } } case lt { status obsolete; leaf lt { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case lte { status obsolete; leaf lte { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case gt { status obsolete; leaf gt { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case gte { status obsolete; leaf gte { status obsolete; type types-log:severity-level; description "Log event severity level"; } } } } // container severity container subject { status obsolete; description "Enter the subject context"; leaf regexp { status obsolete; type boolean; default "false"; description "String comparison to determine if the log event matches the value of subject"; } choice subject-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-sros:named-item; description "Log event subject string to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-sros:named-item; description "Log event subject string to filter out"; } } } } // container subject } // container match } // list entry list named-entry { key "entry-name"; max-elements 999; ordered-by user; description "Enter the named-entry list instance"; leaf entry-name { type types-log:log-filter-entry-name; description "The value of name uniquely identifies an event log filter entry"; } leaf description { type types-sros:description; description "Text description"; } leaf action { type types-log:filter-action; description "Action for this event filter entry"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; container application { description "Enter the application context"; choice application-match { case eq { leaf eq { type types-log:application; description "Application to match"; } } case neq { leaf neq { type types-log:application; description "Application to be filtered out"; } } } } // container application container event { description "Enter the event context"; choice event-match { case eq { leaf eq { type uint32 { range "1..max"; } description "Log event message to match"; } } case neq { leaf neq { type uint32 { range "1..max"; } description "Log event message to filter out"; } } case lt { leaf lt { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case lte { leaf lte { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gt { leaf gt { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gte { leaf gte { type uint32 { range "1..max"; } description "Number of the log event to match"; } } } } // container event container message { description "Enter the message context"; leaf regexp { type boolean; default "false"; description "String comparison to determine if the log event matches the value of pattern"; } choice message-match { case eq { leaf eq { type string { length "1..400"; } description "Log event message to match"; } } case neq { leaf neq { type string { length "1..400"; } description "Log event message to be filtered out"; } } } } // container message container vrtr-name { description "Enter the vrtr-name context"; leaf regexp { type boolean; default "false"; description "String comparison to determine if the log event matches the value of router instance"; } choice vrtr-name-match { case eq { leaf eq { type types-sros:named-item; description "Specifies the log event router context name to be matched."; } } case neq { leaf neq { type types-sros:named-item; description "Specifies the log event router context name to be filtered out."; } } } } // container vrtr-name container severity { description "Enter the severity context"; choice severity-match { case eq { leaf eq { type types-log:severity-level; description "Log event severity level to match"; } } case neq { leaf neq { type types-log:severity-level; description "Log event severity level to filter out"; } } case lt { leaf lt { type types-log:severity-level; description "Log event severity level"; } } case lte { leaf lte { type types-log:severity-level; description "Log event severity level"; } } case gt { leaf gt { type types-log:severity-level; description "Log event severity level"; } } case gte { leaf gte { type types-log:severity-level; description "Log event severity level"; } } } } // container severity container subject { description "Enter the subject context"; leaf regexp { type boolean; default "false"; description "String comparison to determine if the log event matches the value of subject"; } choice subject-match { case eq { leaf eq { type types-sros:named-item; description "Log event subject string to match"; } } case neq { leaf neq { type types-sros:named-item; description "Log event subject string to filter out"; } } } } // container subject } // container match } // list named-entry } // list filter list log-id { key "name"; max-elements 30; description "Enter the log-id list instance"; leaf name { type types-log:log-name; description "The value of name uniquely identifies an event stream log."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the log"; } leaf description { type types-sros:description; description "Text description"; } leaf netconf-stream { type types-sros:named-item; description "Destination NETCONF stream name"; } leaf time-format { type enumeration { enum "utc" { value 1; } enum "local" { value 2; } } default "utc"; description "Time zone displayed for log events"; } leaf python-policy { type leafref { path "../../../python/python-policy/name"; } description "Python policy name"; } leaf filter { type leafref { path "../../filter/filter-name"; } description "Filter for this log's source event stream to limit the event output in this log destination"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container source { description "Enter the source context"; leaf main { type boolean; description "Collect log events from the main event stream"; } leaf security { type boolean; description "Collect log events from the security event stream"; } leaf change { type boolean; description "Collect log events from change event stream"; } leaf debug { type boolean; default "false"; description "Collect log events from the debug event stream"; } } // container source container destination { description "Enter the destination context"; choice log-id-destination { case file { leaf file { type leafref { path "../../../file/file-id"; } sros-ext:immutable; description "Log events to send to the specified file ID"; } } case syslog { leaf syslog { type leafref { path "../../../syslog/syslog-name"; } sros-ext:immutable; description "Log events to send to the specified syslog ID"; } } case memory { container memory { presence "Enter the 'memory' context"; description "Enable the memory context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this memory log"; } } // container memory } case snmp { container snmp { presence "Enter the 'snmp' context"; description "Enable the snmp context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this SNMP log"; } } // container snmp } case console { leaf console { type empty; sros-ext:immutable; description "Log events to send to the system console port"; } } case netconf { container netconf { presence "Enter the 'netconf' context"; description "Enable the netconf context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this NETCONF log"; } } // container netconf } case cli { container cli { presence "Enter the 'cli' context"; description "Enable the cli context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this CLI log"; } } // container cli } } } // container destination } // list log-id container route-preference { description "Enter the route-preference context"; leaf primary { type enumeration { enum "inband" { value 1; } enum "outband" { value 2; } } default "outband"; description "Primary routing preference for traffic that is generated for SNMP notifications and syslog messages"; } leaf secondary { type enumeration { enum "inband" { value 1; } enum "outband" { value 2; } enum "none" { value 3; } } default "inband"; description "Secondary routing preference for traffic that is generated for SNMP notifications and syslog messages"; } } // container route-preference container services-all-events { description "Enter the services-all-events context"; list service { key "service-name"; description "Add a list entry for service"; leaf service-name { type leafref { path "../../../../service/vprn/service-name"; } description "Administrative service name"; } } // list service } // container services-all-events list snmp-trap-group { key "log-name"; max-elements 15; description "Enter the snmp-trap-group list instance"; leaf log-name { type types-log:snmp-trap-group-name; description "SNMP notification group to be associated with the event log."; } leaf description { type types-sros:description; description "Text description"; } leaf log-id { type int32 { range "1..100"; } sros-ext:immutable; description "SNMP notification group associated with the event log"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list trap-target { key "name"; max-elements 25; description "Enter the trap-target list instance"; leaf name { type string { length "1..28"; } description "Name for an SNMP notification destination within the SNMP notification group"; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; mandatory true; description "IP address of the trap receiver"; } leaf port { type types-qos:tcp-udp-match-port; default "162"; description "UDP port number to send messages to this remote SNMP notification collector"; } leaf version { type enumeration { enum "snmpv1" { value 0; } enum "snmpv2c" { value 1; } enum "snmpv3" { value 3; } } default "snmpv3"; description "SNMP version to format notification messages sent to this SNMP notification collector"; } leaf notify-community { type string { length "1..31"; } mandatory true; description "SNMPv1 or SNMPv2c community name string, or SNMPv3 security name, for sending a notification"; } leaf security-level { type enumeration { enum "no-auth-no-privacy" { value 1; } enum "auth-no-privacy" { value 2; } enum "privacy" { value 3; } } default "no-auth-no-privacy"; description "Security level at which SNMP notification messages are sent to SNMP notification collector"; } leaf replay { type boolean; default "false"; description "Retransmit missed notifications"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list trap-target } // list snmp-trap-group list syslog { key "syslog-name"; max-elements 10; description "Enter the syslog list instance"; leaf syslog-name { type types-log:log-syslog-name; description "Unique arbitrary identifier for this syslog collector target."; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; description "Target syslog host address"; } leaf facility { type enumeration { enum "kernel" { value 0; } enum "user" { value 1; } enum "mail" { value 2; } enum "systemd" { value 3; } enum "auth" { value 4; } enum "syslogd" { value 5; } enum "printer" { value 6; } enum "netnews" { value 7; } enum "uucp" { value 8; } enum "cron" { value 9; } enum "authpriv" { value 10; } enum "ftp" { value 11; } enum "ntp" { value 12; } enum "logaudit" { value 13; } enum "logalert" { value 14; } enum "cron2" { value 15; } enum "local0" { value 16; } enum "local1" { value 17; } enum "local2" { value 18; } enum "local3" { value 19; } enum "local4" { value 20; } enum "local5" { value 21; } enum "local6" { value 22; } enum "local7" { value 23; } } default "local7"; description "Facility code for messages"; } leaf severity { type enumeration { enum "emergency" { value 0; } enum "alert" { value 1; } enum "critical" { value 2; } enum "error" { value 3; } enum "warning" { value 4; } enum "notice" { value 5; } enum "info" { value 6; } enum "debug" { value 7; } } default "info"; description "Severity level threshold for the syslog message"; } leaf log-prefix { type union { type enumeration { enum "no-prefix" { value -1; } } type string { length "1..32"; pattern "([!-9;<>-~])+" { error-message "String must contain only printable characters between 33 - 126 ASCII except ':' and '='"; } } } default "TMNX"; description "String that is prepended to every log message sent to this target syslog host"; } leaf port { type types-qos:tcp-udp-match-port; default "514"; description "UDP port to generate syslog messages"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list syslog container throttle-rate { description "Enter the throttle-rate context"; leaf limit { type uint32 { range "1..20000"; } default "2000"; description "Number of log events within the throttle interval"; } leaf interval { type uint32 { range "1..1200"; } default "1"; description "Duration of an event throttling interval"; } } // container throttle-rate } // container log container macsec { description "Enter the macsec context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list connectivity-association { key "ca-name"; description "Enter the connectivity-association list instance"; leaf ca-name { type string { length "1..32"; } description "Connectivity association name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this CA"; } leaf description { type string { length "1..80"; } description "Text description"; } leaf replay-window-size { type uint32 { range "0..4294967294"; } default "0"; description "Size of the replay protection window"; } leaf replay-protection { type boolean; default "false"; description "Discard packet that is not within the replay window size"; } leaf macsec-encrypt { type boolean; default "true"; description "Encrypt all PDUs and authenticate (ICV payload)"; } leaf clear-tag-mode { type enumeration { enum "none" { value 0; } enum "single-tag" { value 1; } enum "dual-tag" { value 2; } } sros-ext:auto-restart-to-modify; default "none"; description "Clear tag mode"; } leaf encryption-offset { type uint32 { range "0|30|50"; } default "0"; description "Offset of the encryption in MACsec packet"; } leaf cipher-suite { type enumeration { enum "gcm-aes-128" { value 1; } enum "gcm-aes-256" { value 2; } enum "gcm-aes-xpn-128" { value 3; } enum "gcm-aes-xpn-256" { value 4; } } default "gcm-aes-128"; description "Datapath encryption protocol"; } leaf delay-protection { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable delay protection."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container static-cak { description "Enter the static-cak context"; leaf active-psk { type uint32 { range "1..2"; } default "1"; description "Value of the pre-shared-key (PSK)"; } leaf mka-hello-interval { type enumeration { enum "1" { value 1; } enum "2" { value 2; } enum "3" { value 3; } enum "4" { value 4; } enum "5" { value 5; } enum "6" { value 6; } enum "500ms" { value 500; } } default "2"; description "MKA hello interval"; } leaf mka-key-server-priority { type uint32 { range "0..255"; } default "16"; description "Key server priority used by the MKA protocol"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list pre-shared-key { key "psk-id"; max-elements 2; description "Enter the pre-shared-key list instance"; leaf psk-id { type uint32 { range "1..2"; } description "Value of the pre-shared-key (PSK)"; } leaf encryption-type { type enumeration { enum "aes-128-cmac" { value 1; } enum "aes-256-cmac" { value 2; } } mandatory true; description "Encryption for authentication of the MKA packet"; } leaf cak { type types-sros:encrypted-leaf-hex-without-prefix { length "1..71"; } description "Connectivity association key (CAK) for a pre-shared key"; } leaf cak-name { type string { length "1..64"; pattern "(([0-9a-fA-F])([0-9a-fA-F])){1,32}" { error-message "cak-name must be an even length hex string up to 64 characters."; } } description "Connectivity Association Key (CAK) name for the PSK"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pre-shared-key } // container static-cak } // list connectivity-association list mac-policy { key "mac-policy-id"; description "Enter the mac-policy list instance"; leaf mac-policy-id { type uint32; description "The ID of the mac policy."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list destination-mac-address { key "dest-mac-addr"; max-elements 5; description "Add a list entry for destination-mac-address"; leaf dest-mac-addr { type yang:mac-address; description "The destination mac address to be added to the policy."; } } // list destination-mac-address } // list mac-policy } // container macsec container mcac { description "Enter the mcac context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list interface-policy { key "policy-name"; description "Enter the interface-policy list instance"; leaf policy-name { type string { length "1..32"; } description "Policy name for multicast CAC interface"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the multicast CAC interface policy"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // list interface-policy list policy { key "policy-name"; description "Enter the policy list instance"; leaf policy-name { type string { length "1..32"; } description "Multicast CAC policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf default-action { type types-mcast-cac:policy-action; default "discard"; description "Default action for this MCAC policy"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list bundle { key "bundle-name"; max-elements 64; description "Enter the bundle list instance"; leaf bundle-name { type string { length "1..32"; } description "Name for the Multicast CAC policy bundle"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the bundle"; } leaf description { type types-sros:description; description "Text description"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "1..4294967295"; } default "100"; description "Maximum bandwidth for this bundle"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list channel { key "start end source"; description "Enter the channel list instance"; leaf start { type types-sros:ip-address; description "Beginning multicast IP address"; } leaf end { type types-sros:ip-address; description "Ending multicast IP address"; } leaf source { type types-sros:ip-prefix; description "Source prefix"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "10..10000000"; } default "10"; description "Bandwidth required by this channel"; } leaf priority-class { type enumeration { enum "low" { value 1; } enum "high" { value 2; } } default "low"; description "Classification of channels used in the algorithm when LAG ports change state"; } leaf type { type types-mcast-cac:channel-type; default "optional"; description "Channel type to be either mandatory or optional"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list channel container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type types-mcast-cac:constraints-level; description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } mandatory true; description "Bandwidth available for this level"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level list lag-port-down { key "lag-name number-down"; description "Enter the lag-port-down list instance"; leaf lag-name { type types-sros:lag-interface; description "LAG name"; } leaf number-down { type uint32 { range "1..64"; } description "Number of lag ports that are down."; } leaf level { type types-mcast-cac:constraints-level; mandatory true; description "Level ID to associate with number of down LAG ports"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list lag-port-down } // container mc-constraints } // list bundle } // list policy } // container mcac container mirror { description "Enter the mirror context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list mirror-dest { key "service-name"; max-elements 255; description "Enter the mirror-dest list instance"; leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf type { type types-services:mirror-type; sros-ext:immutable; default "ether"; description "Mirror type information"; } leaf fc { type types-sros:fc-name; default "be"; description "Forwarding class for destination traffic"; } leaf slice-size { type uint32 { range "0|128..9216"; } default "0"; description "Maximum size of a mirrored frame that can be transmitted to the mirror destination"; } leaf include-port-id { type boolean; default "false"; description "Include port ID of the system in the packet"; } leaf sampling-rate { type uint32 { range "256..10000"; } description "Sampling rate"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list endpoint { key "name"; max-elements 2; description "Enter the endpoint list instance"; leaf name { type types-sros:named-item; description "Service endpoint name"; } leaf description { type types-sros:description; description "Text description"; } leaf revert-time { type types-services:revert-time; default "immediate"; description "Time before reverting back to primary spoke SDP defined after failing in backup spoke SDP"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list endpoint list sap { key "sap-id"; max-elements 1; description "Enter the sap list instance"; leaf sap-id { type types-sros:sap; description "SAP identifier"; } leaf endpoint { type leafref { path "../../endpoint/name"; } description "Configure name of the service endpoint."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Port redirect queue-group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Port queue-group instance"; } } // container port-redirect-group } // container sap-egress } // container qos container ip-mirror { description "Enter the ip-mirror context"; container mac { description "Enter the mac context"; leaf source { type types-sros:mac-unicast-address; description "Source MAC address."; } leaf destination { type yang:mac-address; description "Destination MAC address."; } } // container mac } // container ip-mirror } // container egress } // list sap container remote-source { presence "Enter the 'remote-source' context"; description "Enable the remote-source context"; list far-end { key "far-end-addr"; description "Enter the far-end list instance"; leaf far-end-addr { type types-sros:ipv4-address; description "Far end IP address"; } leaf vc-id { type uint32 { range "1..max"; } mandatory true; description "Virtual circuit identifier associated with the remote source"; } leaf icb { type boolean; default "false"; description "Remote source as an inter-chassis backup"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice ingress-label { default "label-signaling"; case label-signaling { leaf label-signaling { type enumeration { enum "tldp" { value 2; } } default "tldp"; description "Protocol to obtain the ingress labels"; } } case ing-vc-label { leaf ing-vc-label { type uint32 { range "32..18431"; } description "Ingress virtual circuit label"; } } } } // list far-end list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this Service SDP binding"; } leaf control-word { type boolean; default "false"; description "Enable the PW control word on spoke SDPs"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf vc-label { type uint32 { range "32..18431"; } description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container l2tpv3 { description "Enter the l2tpv3 context"; container cookie { description "Enter the cookie context"; leaf cookie1 { type types-services:cookie-value; description "Value of cookie-1 for the tunnel"; } leaf cookie2 { type types-services:cookie-value; description "Value of cookie-1 for the tunnel"; } } // container cookie } // container l2tpv3 } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } } // container egress container endpoint { description "Enter the endpoint context"; leaf name { type leafref { path "../../../../endpoint/name"; } description "Name of endpoint where this SDP bind is attached"; } leaf icb { type boolean; default "false"; description "Bind SDP as type Inter-Chassis Backup (ICB)"; } } // container endpoint } // list spoke-sdp } // container remote-source list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this Service SDP binding"; } leaf control-word { type boolean; default "false"; description "Enable the PW control word on spoke SDPs"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf vc-label { type uint32 { range "32..18431"; } sros-ext:auto-restart-to-modify; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container l2tpv3 { description "Enter the l2tpv3 context"; leaf cookie { type types-services:cookie-value; description "Cookie parameters"; } } // container l2tpv3 } // container egress container endpoint { description "Enter the endpoint context"; leaf name { type leafref { path "../../../endpoint/name"; } description "Name of endpoint where this SDP bind is attached"; } leaf precedence { type types-services:sdp-precedence; default "4"; description "Precedence of this SDP bind when there are multiple SDP binds attached to one service endpoint"; } leaf icb { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Bind SDP as type Inter-Chassis Backup (ICB)"; } } // container endpoint } // list spoke-sdp container encap { description "Enter the encap context"; container layer-3-encap { presence "Enter the 'layer-3-encap' context"; description "Enable the layer-3-encap context"; leaf header-type { type enumeration { enum "ip-udp-shim" { value 1; } enum "ip-gre" { value 2; } enum "ip-udp-shim-sampled" { value 4; } } sros-ext:immutable; mandatory true; description "Header for the Layer 3 encapsulation"; } leaf direction-bit { type boolean; default "false"; description "Highest bit in Interception ID of shim header to show direction of mirrored traffic flow"; } leaf router-instance { type string; default "Base"; description "Router instance to use with routed encapsulation"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container gateway { presence "Enter the 'gateway' context"; description "Enable the gateway context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ip-address { description "Enter the ip-address context"; leaf source { type types-sros:ipv4-unicast-address; description "IPv4 source address for the gateway"; } leaf destination { type types-sros:ipv4-unicast-address; description "IPv4 destination address for the gateway"; } } // container ip-address container udp-port { description "Enter the udp-port context"; leaf source { type types-sros:tcp-udp-port; default "0"; description "UDP source port with this gateway"; } leaf destination { type types-sros:tcp-udp-port; default "0"; description "UDP destination port to use with this gateway"; } } // container udp-port } // container gateway } // container layer-3-encap } // container encap list pcap { key "session-name"; max-elements 1; description "Enter the pcap list instance"; leaf session-name { type types-sros:named-item; description "Packet Capture (PCAP) session name"; } leaf file-url { type types-sros:ts-url; description "URL and file name for packet capture transfer"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pcap } // list mirror-dest list mirror-source { key "service-name"; description "Enter the mirror-source list instance"; leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Enable/disable mirror service."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list port { key "port-id"; description "Enter the port list instance"; leaf port-id { type types-services:mirror-source-port-lag-key; description "Port identifier."; } leaf ingress { type boolean; default "false"; description "Whether ingress packets will be mirrored or not."; } leaf egress { type boolean; default "false"; description "Whether egress packets will be mirrored or not."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list port list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type types-sros:sap; description "SAP identifier."; } leaf ingress { type boolean; default "false"; description "Whether ingress packets will be mirrored or not."; } leaf egress { type boolean; default "false"; description "Whether egress packets will be mirrored or not."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sap list ip-filter { key "filter-name"; description "Enter the ip-filter list instance"; leaf filter-name { type leafref { path "../../../../filter/ip-filter/filter-name"; } description "IP Filter name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; min-elements 1; description "Add a list entry for entry"; leaf entry-id { type uint32 { range "1..2097151"; } description "IP Filter entry identifier"; } } // list entry } // list ip-filter list ipv6-filter { key "filter-name"; description "Enter the ipv6-filter list instance"; leaf filter-name { type leafref { path "../../../../filter/ipv6-filter/filter-name"; } description "IPv6 Filter name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; min-elements 1; description "Add a list entry for entry"; leaf entry-id { type uint32 { range "1..2097151"; } description "IPv6 Filter entry identifier"; } } // list entry } // list ipv6-filter list mac-filter { key "filter-name"; description "Enter the mac-filter list instance"; leaf filter-name { type leafref { path "../../../../filter/mac-filter/filter-name"; } description "MAC Filter name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; min-elements 1; description "Add a list entry for entry"; leaf entry-id { type uint32 { range "1..2097151"; } description "MAC Filter entry identifier"; } } // list entry } // list mac-filter list subscriber { key "subscriber-id"; description "Enter the subscriber list instance"; leaf subscriber-id { type types-submgt:subscriber-id; description "Subscriber Identifier"; } leaf-list fc { type enumeration { enum "be" { value 0; } enum "l2" { value 1; } enum "af" { value 2; } enum "l1" { value 3; } enum "h2" { value 4; } enum "ef" { value 5; } enum "h1" { value 6; } enum "nc" { value 7; } } max-elements 8; description "The forwarding classes traffic which should be mirrored"; } leaf ingress { type boolean; default "false"; description "Whether ingress packets will be mirrored or not."; } leaf egress { type boolean; default "false"; description "Whether egress packets will be mirrored or not."; } leaf host-type { type enumeration { enum "ipoe" { value 2; } enum "ppp" { value 3; } } description "The host type to be mirrored."; } leaf ip-family { type enumeration { enum "ipv4" { value 2; } enum "ipv6" { value 3; } } description "The family of IP flows to be monitored for an IPoE type of host."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice host-identification { case sap-id { leaf sap-id { type types-sros:sap; description "Subscriber SAP identifier"; } leaf mac-address { type yang:mac-address; description "The MAC address to be used to match the packets for the subscriber on the mirror source."; } leaf ip-address { type types-sros:ipv4-address; description "The IP address of the remote source or the far-end ESR which is allowed to be a source of packets."; } } case sla-profile { leaf sla-profile { type types-sros:named-item; description "The SLA profile Name"; } } } } // list subscriber } // list mirror-source } // container mirror container multicast-management { description "Enter the multicast-management context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list multicast-info-policy { key "policy-name"; max-elements 32; description "Enter the multicast-info-policy list instance"; leaf policy-name { type types-sros:named-item; description "Multicast CAC policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list bundle { key "bundle-name"; max-elements 32; description "Enter the bundle list instance"; leaf bundle-name { type types-sros:named-item; description "Bundle name for the multicast info policy"; } leaf admin-bw { type uint32 { range "1..40000000"; } units "kilobps"; description "Administrative bandwidth"; } leaf cong-priority-threshold { type uint32 { range "0..7"; } default "4"; description "Preference level threshold where records change from low to high congestion priority"; } leaf description { type types-sros:description; description "Text description"; } leaf ecmp-opt-threshold { type uint32 { range "0..7"; } default "7"; description "ECMP threshold"; } leaf explicit-sf-path { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } description "Explicit ingress switch fabric multicast path that is assigned to a multicast channel"; } leaf keepalive-override { type uint32 { range "10..86000"; } units "seconds"; description "Keepalive timer override"; } leaf preference { type uint32 { range "1..7"; } description "Relative preference level for multicast channels"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bw-activity { description "Enter the bw-activity context"; leaf bw-activity-type { type enumeration { enum "use-admin-bw" { value 1; } enum "dynamic" { value 2; } } default "dynamic"; description "Bandwidth required by a multicast channel"; } leaf black-hole-rate { type uint32 { range "1..40000000"; } units "kilobps"; description "Rate at which a channel is placed in the black-hole state"; } leaf falling-delay { type uint32 { range "10..3600"; } units "seconds"; default "30"; description "Falling delay threshold to hold on to the previous highest bandwidth until the delay time expires"; } } // container bw-activity container primary-tunnel-interface { description "Enter the primary-tunnel-interface context"; leaf sender { type types-sros:ipv4-address; description "Bundle to assign in multicast info policy and channels to receive from primary tunnel interface"; } choice p2mp { case rsvp-p2mp { leaf rsvp-p2mp { type types-sros:named-item; description "Name of P2MP for LDP P2MP"; } } case ldp-p2mp { leaf ldp-p2mp { type uint32 { range "1..4294967295"; } description "Identifier for signaling mLDP P2MP LSP"; } } } } // container primary-tunnel-interface container video { description "Enter the video context"; leaf fcc-channel-type { type types-mcast-mgmt:channel-type; description "Channel type for the bundle or channel"; } leaf fcc-min-duration { type uint32 { range "300..8000"; } units "milliseconds"; default "300"; description "Minimum duration of the FCC burst"; } leaf fcc-server { type boolean; default "false"; description "Enable FCC server for a multicast bundle"; } leaf local-fcc-port { type uint32 { range "1024..5999|6251..65535"; } default "4098"; description "Local port for FCC requests"; } leaf local-rt-port { type uint32 { range "1024..5999|6251..65535"; } default "4096"; description "Local port for RT requests"; } leaf local-rt-server { type boolean; default "false"; description "Enable local retransmission server capability"; } leaf reorder-audio { type uint32 { range "100..1000"; } units "milliseconds"; description "Time by which the audio packets are reordered in the ad stream"; } leaf rt-buffer-size { type uint32 { range "300..8000"; } units "milliseconds"; default "300"; description "Buffer size to store channel packets"; } leaf video-group { type uint32 { range "1..4"; } description "Video group for this bundle"; } container rt-server { presence "Enter the 'rt-server' context"; description "Enable the rt-server context"; leaf ip-address { type types-sros:ipv4-unicast-address; mandatory true; description "RT server IP address"; } leaf port { type uint32 { range "1024..5999|6251..65535"; } mandatory true; description "RT server port number"; } } // container rt-server container stream-selection { description "Enter the stream-selection context"; leaf source1 { type types-sros:ipv4-address; description "Primary source IP address"; } leaf intf1 { type types-sros:named-item; description "Primary interface"; } leaf source2 { type types-sros:ipv4-address; description "Secondary source IP address"; } leaf intf2 { type types-sros:named-item; description "Secondary interface"; } } // container stream-selection container analyzer { presence "Enter the 'analyzer' context"; description "Enable the analyzer context"; leaf description { type types-sros:description; description "Text description"; } container alarms { description "Enter the alarms context"; leaf cc-error { type boolean; default "false"; description "Check the continuity counter (Cc)"; } leaf non-vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "PID that is checked within the specified interval"; } leaf pat-syntax { type boolean; default "false"; description "Check for PAT syntax errors"; } leaf pid-pmt-unref { type boolean; default "false"; description "Check for unreferenced PIDs in the PMT"; } leaf pmt-syntax { type boolean; default "false"; description "Check for PMT syntax errors"; } leaf tei-set { type boolean; default "false"; description "Check for TEI set errors"; } leaf ts-sync-loss { type boolean; default "false"; description "Check for synchronization loss errors"; } leaf vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "VID PID that is checked within the specified time interval"; } container pat-repetition { presence "Enter the 'pat-repetition' context"; description "Enable the pat-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PATs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PATs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PATs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pat-repetition container pcr-repetition { presence "Enter the 'pcr-repetition' context"; description "Enable the pcr-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PCRs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PCRs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PCRs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pcr-repetition container pmt-repetition { presence "Enter the 'pmt-repetition' context"; description "Enable the pmt-repetition context"; leaf tnc { type uint32 { range "100..4800"; } units "milliseconds"; default "400"; description "Time between two consecutive PMTs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..4900"; } units "milliseconds"; default "800"; description "Time between two consecutive PMTs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..5000"; } units "milliseconds"; default "2000"; description "Time between two consecutive PMTs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pmt-repetition container report-alarm { description "Enter the report-alarm context"; leaf severity { type enumeration { enum "tnc" { value 1; } enum "qos" { value 2; } enum "poa" { value 3; } } description "Keyword for the type of alarm"; } } // container report-alarm } // container alarms } // container analyzer } // container video list channel { key "start end"; description "Enter the channel list instance"; leaf start { type types-sros:ip-multicast-address; description "Start IP address for a channel"; } leaf end { type types-sros:ip-multicast-address; description "Ending IP address for a channel"; } leaf admin-bw { type uint32 { range "1..40000000"; } units "kilobps"; description "Administrative bandwidth"; } leaf explicit-sf-path { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } description "Explicit ingress switch fabric multicast path that is assigned to a multicast channel"; } leaf keepalive-override { type uint32 { range "10..86000"; } units "seconds"; description "Keepalive timer override"; } leaf preference { type uint32 { range "1..7"; } description "Relative preference level for multicast channels"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bw-activity { description "Enter the bw-activity context"; leaf bw-activity-type { type enumeration { enum "use-admin-bw" { value 1; } enum "dynamic" { value 2; } } description "Bandwidth required by a multicast channel"; } leaf black-hole-rate { type uint32 { range "0..40000000"; } units "kilobps"; default "0"; description "Rate at which a channel is placed in the black-hole state"; } leaf falling-delay { type uint32 { range "10..3600"; } units "seconds"; description "Falling delay threshold to hold on to the previous highest bandwidth until the delay time expires"; } } // container bw-activity container primary-tunnel-interface { description "Enter the primary-tunnel-interface context"; leaf sender { type types-sros:ipv4-address; description "Bundle to assign in multicast info policy and channels to receive from primary tunnel interface"; } choice p2mp { case rsvp-p2mp { leaf rsvp-p2mp { type types-sros:named-item; description "Name of P2MP for LDP P2MP"; } } case ldp-p2mp { leaf ldp-p2mp { type uint32 { range "1..4294967295"; } description "Identifier for signaling mLDP P2MP LSP"; } } } } // container primary-tunnel-interface container video { description "Enter the video context"; leaf fcc-channel-type { type types-mcast-mgmt:channel-type-with-inherit; description "Channel type for the bundle or channel"; } leaf fcc-min-duration { type uint32 { range "300..8000"; } units "milliseconds"; description "Minimum duration of the FCC burst"; } leaf fcc-server { type types-sros:bool-with-inherit; description "Value to override parent value of FCC server"; } leaf local-rt-server { type types-sros:bool-with-inherit; description "Value to override parent value of local RT server"; } leaf reorder-audio { type uint32 { range "100..1000"; } units "milliseconds"; description "Time by which the audio packets are reordered in the ad stream"; } leaf rt-buffer-size { type uint32 { range "300..8000"; } units "milliseconds"; default "300"; description "Buffer size to store channel packets"; } leaf video-group { type union { type uint32 { range "1..4"; } type enumeration { enum "none" { value 0; } } } description "Identifier for this video group"; } container rt-server { description "Enter the rt-server context"; leaf rt-state { type types-sros:bool-with-inherit; description "Specifies the value which will override parent value of RT server state."; } leaf ip-address { type types-sros:ipv4-unicast-address; description "RT server IP address."; } leaf port { type uint32 { range "1024..5999|6251..65535"; } description "RT server port number."; } } // container rt-server container stream-selection { description "Enter the stream-selection context"; leaf source1 { type types-sros:ipv4-address; description "Primary source IP address"; } leaf intf1 { type types-sros:named-item; description "Primary interface"; } leaf source2 { type types-sros:ipv4-address; description "Secondary source IP address"; } leaf intf2 { type types-sros:named-item; description "Secondary interface"; } } // container stream-selection container analyzer { presence "Enter the 'analyzer' context"; description "Enable the analyzer context"; leaf description { type types-sros:description; description "Text description"; } container alarms { description "Enter the alarms context"; leaf cc-error { type boolean; default "false"; description "Check the continuity counter (Cc)"; } leaf non-vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "PID that is checked within the specified interval"; } leaf pat-syntax { type boolean; default "false"; description "Check for PAT syntax errors"; } leaf pid-pmt-unref { type boolean; default "false"; description "Check for unreferenced PIDs in the PMT"; } leaf pmt-syntax { type boolean; default "false"; description "Check for PMT syntax errors"; } leaf tei-set { type boolean; default "false"; description "Check for TEI set errors"; } leaf ts-sync-loss { type boolean; default "false"; description "Check for synchronization loss errors"; } leaf vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "VID PID that is checked within the specified time interval"; } container pat-repetition { presence "Enter the 'pat-repetition' context"; description "Enable the pat-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PATs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PATs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PATs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pat-repetition container pcr-repetition { presence "Enter the 'pcr-repetition' context"; description "Enable the pcr-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PCRs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PCRs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PCRs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pcr-repetition container pmt-repetition { presence "Enter the 'pmt-repetition' context"; description "Enable the pmt-repetition context"; leaf tnc { type uint32 { range "100..4800"; } units "milliseconds"; default "400"; description "Time between two consecutive PMTs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..4900"; } units "milliseconds"; default "800"; description "Time between two consecutive PMTs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..5000"; } units "milliseconds"; default "2000"; description "Time between two consecutive PMTs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pmt-repetition container report-alarm { description "Enter the report-alarm context"; leaf severity { type enumeration { enum "tnc" { value 1; } enum "qos" { value 2; } enum "poa" { value 3; } } description "Keyword for the type of alarm"; } } // container report-alarm } // container alarms } // container analyzer } // container video list source-override { key "ip-address"; description "Enter the source-override list instance"; leaf ip-address { type types-sros:ip-unicast-address; description "IP address for source override"; } leaf admin-bw { type uint32 { range "1..40000000"; } units "kilobps"; description "Administrative bandwidth"; } leaf explicit-sf-path { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } description "Explicit ingress switch fabric multicast path that is assigned to a multicast channel"; } leaf keepalive-override { type uint32 { range "10..86000"; } units "seconds"; description "Keepalive timer override"; } leaf preference { type uint32 { range "1..7"; } description "Relative preference level for multicast channels"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bw-activity { description "Enter the bw-activity context"; leaf bw-activity-type { type enumeration { enum "use-admin-bw" { value 1; } enum "dynamic" { value 2; } } description "Bandwidth required by a multicast channel"; } leaf black-hole-rate { type uint32 { range "0..40000000"; } units "kilobps"; default "0"; description "Rate at which a channel is placed in the black-hole state"; } leaf falling-delay { type uint32 { range "10..3600"; } units "seconds"; description "Falling delay threshold to hold on to the previous highest bandwidth until the delay time expires"; } } // container bw-activity container primary-tunnel-interface { description "Enter the primary-tunnel-interface context"; leaf sender { type types-sros:ipv4-address; description "Bundle to assign in multicast info policy and channels to receive from primary tunnel interface"; } choice p2mp { case rsvp-p2mp { leaf rsvp-p2mp { type types-sros:named-item; description "Name of P2MP for LDP P2MP"; } } case ldp-p2mp { leaf ldp-p2mp { type uint32 { range "1..4294967295"; } description "Identifier for signaling mLDP P2MP LSP"; } } } } // container primary-tunnel-interface container video { description "Enter the video context"; leaf fcc-channel-type { type types-mcast-mgmt:channel-type-with-inherit; description "Channel type for the bundle or channel"; } leaf fcc-min-duration { type uint32 { range "300..8000"; } units "milliseconds"; description "Minimum duration of the FCC burst"; } leaf fcc-server { type types-sros:bool-with-inherit; description "Value to override parent value of FCC server"; } leaf local-rt-server { type types-sros:bool-with-inherit; description "Value to override parent value of local RT server"; } leaf reorder-audio { type uint32 { range "100..1000"; } units "milliseconds"; description "Time by which the audio packets are reordered in the ad stream"; } leaf rt-buffer-size { type uint32 { range "300..8000"; } units "milliseconds"; default "300"; description "Buffer size to store channel packets"; } leaf video-group { type union { type uint32 { range "1..4"; } type enumeration { enum "none" { value 0; } } } description "Identifier for this video group"; } container rt-server { description "Enter the rt-server context"; leaf rt-state { type types-sros:bool-with-inherit; description "Specifies the value which will override parent value of RT server state."; } leaf ip-address { type types-sros:ipv4-unicast-address; description "RT server IP address."; } leaf port { type uint32 { range "1024..5999|6251..65535"; } description "RT server port number."; } } // container rt-server container stream-selection { description "Enter the stream-selection context"; leaf source1 { type types-sros:ipv4-address; description "Primary source IP address"; } leaf intf1 { type types-sros:named-item; description "Primary interface"; } leaf source2 { type types-sros:ipv4-address; description "Secondary source IP address"; } leaf intf2 { type types-sros:named-item; description "Secondary interface"; } } // container stream-selection container analyzer { presence "Enter the 'analyzer' context"; description "Enable the analyzer context"; leaf description { type types-sros:description; description "Text description"; } container alarms { description "Enter the alarms context"; leaf cc-error { type boolean; default "false"; description "Check the continuity counter (Cc)"; } leaf non-vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "PID that is checked within the specified interval"; } leaf pat-syntax { type boolean; default "false"; description "Check for PAT syntax errors"; } leaf pid-pmt-unref { type boolean; default "false"; description "Check for unreferenced PIDs in the PMT"; } leaf pmt-syntax { type boolean; default "false"; description "Check for PMT syntax errors"; } leaf tei-set { type boolean; default "false"; description "Check for TEI set errors"; } leaf ts-sync-loss { type boolean; default "false"; description "Check for synchronization loss errors"; } leaf vid-pid-absent { type uint32 { range "100..5000"; } units "milliseconds"; description "VID PID that is checked within the specified time interval"; } container pat-repetition { presence "Enter the 'pat-repetition' context"; description "Enable the pat-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PATs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PATs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PATs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pat-repetition container pcr-repetition { presence "Enter the 'pcr-repetition' context"; description "Enable the pcr-repetition context"; leaf tnc { type uint32 { range "100..800"; } units "milliseconds"; default "100"; description "Time between two consecutive PCRs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..900"; } units "milliseconds"; default "200"; description "Time between two consecutive PCRs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..1000"; } units "milliseconds"; default "500"; description "Time between two consecutive PCRs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pcr-repetition container pmt-repetition { presence "Enter the 'pmt-repetition' context"; description "Enable the pmt-repetition context"; leaf tnc { type uint32 { range "100..4800"; } units "milliseconds"; default "400"; description "Time between two consecutive PMTs for which a TNC alarm is raised if interval is equaled or exceeded"; } leaf qos { type uint32 { range "200..4900"; } units "milliseconds"; default "800"; description "Time between two consecutive PMTs for which a QoS alarm is raised if interval is equaled or exceeded"; } leaf poa { type uint32 { range "300..5000"; } units "milliseconds"; default "2000"; description "Time between two consecutive PMTs for which a POA alarm is raised if interval is equaled or exceeded"; } } // container pmt-repetition container report-alarm { description "Enter the report-alarm context"; leaf severity { type enumeration { enum "tnc" { value 1; } enum "qos" { value 2; } enum "poa" { value 3; } } description "Keyword for the type of alarm"; } } // container report-alarm } // container alarms } // container analyzer } // container video } // list source-override } // list channel } // list bundle container video-policy { description "Enter the video-policy context"; list video-interface { key "ip-address"; description "Enter the video-interface list instance"; leaf ip-address { type types-sros:ipv4-unicast-address; description "IP address of the video interface"; } leaf subscriber-bw-limit { type uint32 { range "1..4294967295"; } units "kilobps"; default "4294967295"; description "Egress bandwidth limit per subscriber for retransmission"; } leaf rt-payload-type { type uint32 { range "33|96..127"; } default "99"; description "Format expected for received retransmission packets"; } leaf max-sessions { type uint32 { range "1..65536"; } default "256"; description "Maximum number of sessions per client"; } leaf max-igmp-latency { type uint32 { range "10..1000"; } units "milliseconds"; default "100"; description "Maximum IGMP latency per client"; } leaf fcc-session-timeout { type uint32 { range "5..300"; } units "seconds"; default "300"; description "FCC session timeout"; } leaf ret-session-timeout { type uint32 { range "5..300"; } units "seconds"; default "300"; description "RET session timeout"; } leaf rt-rate { type types-mcast-mgmt:percent-without-zero; default "5"; description "Rate at which RT packets are sent to client"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hd { description "Enter the hd context"; leaf dent-threshold { type uint32 { range "1..31"; } default "16"; description "Threshold below which the FCC server dents unicast data sent to FCC client"; } leaf fcc-burst { type uint32 { range "0..600"; } units "percent"; default "25"; description "Burst rate at which the Fast Channel Change (FCC) server sends unicast data to FCC client"; } leaf local-rt-server { type boolean; default "false"; description "Enable local retransmission server capability"; } leaf rt-rate { type types-mcast-mgmt:percent-without-zero; default "5"; description "Rate at which RT packets are sent to client"; } leaf mc-handover { type types-sros:percent; default "25"; description "FCC server rate during handover."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container fcc-server { description "Enter the fcc-server context"; leaf mode { type types-mcast-mgmt:mode; description "Mode by which FCC server sends information to the client"; } } // container fcc-server } // container hd container pip { description "Enter the pip context"; leaf dent-threshold { type uint32 { range "1..31"; } default "16"; description "Threshold below which the FCC server dents unicast data sent to FCC client"; } leaf fcc-burst { type uint32 { range "0..600"; } units "percent"; default "25"; description "Burst rate at which the Fast Channel Change (FCC) server sends unicast data to FCC client"; } leaf local-rt-server { type boolean; default "false"; description "Enable local retransmission server capability"; } leaf rt-rate { type types-mcast-mgmt:percent-without-zero; default "5"; description "Rate at which RT packets are sent to client"; } leaf mc-handover { type uint32 { range "0..600"; } units "percent"; default "25"; description "Rate at which FCC server sends unicast data to FCC client during handover to multicast stream"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container fcc-server { description "Enter the fcc-server context"; leaf mode { type types-mcast-mgmt:mode; description "Mode by which FCC server sends information to the client"; } } // container fcc-server } // container pip container sd { description "Enter the sd context"; leaf dent-threshold { type uint32 { range "1..31"; } default "16"; description "Threshold below which the FCC server dents unicast data sent to FCC client"; } leaf fcc-burst { type uint32 { range "0..600"; } units "percent"; default "25"; description "Burst rate at which the Fast Channel Change (FCC) server sends unicast data to FCC client"; } leaf local-rt-server { type boolean; default "false"; description "Enable local retransmission server capability"; } leaf rt-rate { type types-mcast-mgmt:percent-without-zero; default "5"; description "Rate at which RT packets are sent to client"; } leaf mc-handover { type uint32 { range "0..600"; } units "percent"; default "25"; description "Rate at which FCC server sends unicast data to FCC client during handover to multicast stream"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container fcc-server { description "Enter the fcc-server context"; leaf mode { type types-mcast-mgmt:mode; description "Mode by which FCC server sends information to the client"; } } // container fcc-server } // container sd } // list video-interface } // container video-policy } // list multicast-info-policy list multicast-reporting-destination { key "name"; description "Enter the multicast-reporting-destination list instance"; leaf name { type types-sros:named-item; description "Destination name for multicast reporting"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the multicast reporting destination"; } leaf address { type types-sros:ipv4-address; default "0.0.0.0"; description "IP address of the multicast reporting destination"; } leaf udp-port { type types-sros:tcp-udp-port { range "1..65535"; } default "1037"; description "UDP port to which multicast reports are sent"; } leaf maximum-transmission-delay { type uint32 { range "0..100"; } units "deciseconds"; default "1"; description "Maximum delay after which any cached reports are flushed to the reporting destination"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list multicast-reporting-destination list bandwidth-policy { key "policy-name"; max-elements 32; description "Enter the bandwidth-policy list instance"; leaf policy-name { type types-sros:named-item; description "Multicast bandwidth policy name"; } leaf admin-bw-threshold { type uint32 { range "1..40000000"; } units "kilobps"; default "10"; description "Administrative bandwidth threshold"; } leaf description { type types-sros:description; description "Text description"; } leaf falling-percent-reset { type types-mcast-mgmt:percent-without-zero; default "50"; description "Percentage of bandwidth decrease that occurs before resetting"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcast-pool { description "Enter the mcast-pool context"; leaf percent-of-total { type uint32 { range "1..50"; } units "percent"; default "10"; description "Percentage of the total ingress buffer pool assigned for the bandwidth policy"; } leaf resv-cbs { type types-mcast-mgmt:percent-without-zero; default "50"; description "Percentage of the pool reserved for multicast path queues within their Committed Buffer Size (CBS) threshold."; } leaf slope-policy { type leafref { path "../../../../qos/slope-policy/slope-policy-name"; } description "Slope policy name"; } } // container mcast-pool container impm-paths { description "Enter the impm-paths context"; container primary-path { description "Enter the primary-path context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container queue-parameters { description "Enter the queue-parameters context"; leaf cbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } units "percent"; default "5.00"; description "Committed buffer size (CBS)"; } leaf mbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } units "percent"; default "7.00"; description "Maximum buffer size (MBS)"; } container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-sros:percent; default "10"; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail } // container queue-parameters } // container primary-path container secondary-path { description "Enter the secondary-path context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container number-paths { description "Enter the number-paths context"; leaf number-of-paths { type uint32 { range "1..15"; } default "1"; description "Number of paths for the secondary path"; } leaf redundant-sfm { type uint32 { range "1..15"; } default "1"; description "Number of paths for the secondary path in dual-sfm mode."; } } // container number-paths container queue-parameters { description "Enter the queue-parameters context"; leaf cbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } units "percent"; default "30.00"; description "Committed buffer size (CBS)"; } leaf mbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } units "percent"; default "40.00"; description "Maximum buffer size (MBS)"; } container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-sros:percent; default "10"; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail } // container queue-parameters } // container secondary-path } // container impm-paths } // list bandwidth-policy container chassis-level { description "Enter the chassis-level context"; leaf mmrp-impm-override { type boolean; default "false"; description "Manage MMRP traffic by IMPM"; } leaf round-robin-inactive-records { type boolean; default "false"; description "Redistribute initially inactive records among all available IOM multicast paths and switch fabric planes"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container per-mcast-plane-capacity { description "Enter the per-mcast-plane-capacity context"; leaf total-capacity { type enumeration { enum "dynamic" { value 0; } enum "2000" { value 2000; } enum "4000" { value 4000; } enum "5250" { value 5250; } enum "8250" { value 8250; } enum "15000" { value 15000; } enum "17000" { value 17000; } enum "19000" { value 19000; } enum "16500" { status obsolete; } } units "megabps"; description "Total multicast plane bandwidth"; } container mcast-capacity { description "Enter the mcast-capacity context"; leaf primary-percentage { type decimal64 { range "0.01..100.00"; fraction-digits 2; } units "percent"; description "Percentage of the total multicast plane capacity to use for primary multicast planes"; } leaf secondary-percentage { type decimal64 { range "0.01..100.00"; fraction-digits 2; } units "percent"; description "Percentage of the total multicast plane capacity to use for secondary multicast planes"; } } // container mcast-capacity container redundant-mcast-capacity { description "Enter the redundant-mcast-capacity context"; leaf primary-percentage { type decimal64 { range "0.01..100.00"; fraction-digits 2; } units "percent"; description "Percentage of the total multicast plane capacity to use for primary multicast planes"; } leaf secondary-percentage { type decimal64 { range "0.01..100.00"; fraction-digits 2; } units "percent"; description "Percentage of the total multicast plane capacity to use for secondary multicast planes"; } } // container redundant-mcast-capacity } // container per-mcast-plane-capacity } // container chassis-level } // container multicast-management list multilink-bundle { key "bundle-id"; description "Enter the multilink-bundle list instance"; leaf bundle-id { type types-sros:port; description "The identifier which uniquely identifies the multilink bundle."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the desired administrative state of this bundle."; } leaf description { type types-sros:long-description; description "Text description"; } leaf fragment-threshold { type union { type uint32 { range "128..512"; } type enumeration { enum "unlimited" { value 0; } } } units "bytes"; sros-ext:auto-restart-to-modify; default "128"; description "Configure the maximum bytes of a fragment transmitted across the multilink bundle."; } leaf interleave-fragment { type boolean; default "false"; description "Enable/disable the LFI function on the given multilink bundle."; } leaf minimum-links { type uint32 { range "1..8"; } default "1"; description "Configure the minimum links that must be active for the bundle to be active."; } leaf mrru { type uint32 { range "1500..9206"; } units "bytes"; sros-ext:auto-restart-to-modify; description "Configure the Maximum Received Reconstructed Unit."; } leaf protect-bundle { type leafref { path "../../multilink-bundle/bundle-id"; } sros-ext:immutable; description "Configure the protection bundle that is part of this BPG."; } leaf short-sequence { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable/disable the use of short sequence by MLPPP bundles."; } leaf working-bundle { type leafref { path "../../multilink-bundle/bundle-id"; } sros-ext:immutable; description "Configure the working bundle that is part of this BPG."; } leaf yellow-differential-delay { type uint32 { range "1..25"; } units "milliseconds"; description "Configure the yellow warning threshold (in milliseconds) of differential delay for members."; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container red-differential { description "Enter the red-differential context"; leaf delay { type uint32 { range "1..50"; } units "milliseconds"; description "Configure the maximum acceptable differential delay for members."; } leaf action { type enumeration { enum "down" { value 1; } } description "Configure the action to be taken when the differential delay exceeds the threshold configured in red-differential/delay."; } } // container red-differential list member { key "channel-id"; description "Add a list entry for member"; leaf channel-id { type types-sros:port; description "Uniquely identifies the multilink bundle member."; } } // list member container mlppp { description "Enter the mlppp context"; leaf magic-number { type boolean; default "false"; description "Enable/disable magic-number loopback detection."; } leaf multiclass { type uint32 { range "2..4"; } description "Configure MLPPP Multiclass attributes."; } leaf stateless-aps-switchover { type boolean; default "false"; description "Enable/disable stateless APS switchover."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container endpoint-discriminator { description "Enter the endpoint-discriminator context"; leaf class { type enumeration { enum "null" { value 0; } enum "ip-address" { value 2; } enum "global-mac-address" { value 3; } } description "Configure the endpoint discriminator class type."; } leaf discriminator-id { type types-sros:ipv4-address; description "Configure the endpoint descriminator identifier."; } } // container endpoint-discriminator container egress { description "Enter the egress context"; leaf qos-profile { type leafref { path "../../../../qos/mlppp-profile-egress/mc-mlppp-egress-prof-index"; } description "Configure egress mlppp qos-profile."; } } // container egress container ingress { description "Enter the ingress context"; leaf qos-profile { type leafref { path "../../../../qos/mlppp-profile-ingress/mc-mlppp-ingress-prof-index"; } description "Configure ingress mlppp qos-profile."; } } // container ingress } // container mlppp } // list multilink-bundle container oam-pm { description "Enter the oam-pm context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list bin-group { key "bin-group-id"; description "Enter the bin-group list instance"; leaf bin-group-id { type uint32 { range "1..255"; } description "Bin group identifier"; } leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; description "Administrative state of the bin group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } list bin-type { key "bin-metric"; sros-ext:auto-restart-to-modify; description "Enter the bin-type list instance"; leaf bin-metric { type enumeration { enum "fd" { value 1; } enum "fdr" { value 2; } enum "ifdv" { value 3; } } description "Frame Delay, Frame Delay Range, Inter-Frame Delay Variation"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } list delay-event { key "direction"; sros-ext:auto-restart-to-modify; description "Enter the delay-event list instance"; leaf direction { type types-oam:direction; description "Traffic flow direction of the OAM-PM test or metric"; } leaf lowest-bin { type uint32 { range "0..9"; } sros-ext:auto-restart-to-modify; mandatory true; description "The lowest OAM-PM delay bin to be used when applying a configured Raise or Clear delay threshold"; } leaf raise-threshold { type int32 { range "1..864000"; } sros-ext:auto-restart-to-modify; mandatory true; description "The OAM-PM raise threshold for excessive delay"; } leaf clear-threshold { type int32 { range "0..863999"; } sros-ext:auto-restart-to-modify; description "The OAM-PM clear threshold for excessive delay"; } leaf exclude-lowest-bin { type int32 { range "1..9"; } sros-ext:auto-restart-to-modify; description "The lowest bin number of the set of bins to be excluded from Threshold Crossing Alert (TCA) calculations"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // list delay-event list exclude-from-avg { key "direction"; sros-ext:auto-restart-to-modify; description "Enter the exclude-from-avg list instance"; leaf direction { type types-oam:direction; description "Traffic flow direction of the OAM-PM test or metric"; } leaf bins { type string { length "1..39"; pattern "(all|(([0-9]|([0-9]-[0-9]))(,([0-9]|([0-9]-[0-9])))*))"; } sros-ext:auto-restart-to-modify; mandatory true; description "A set of bin numbers, each in the range 0..9 Three example values: 0 0,8,9 0,7-9"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // list exclude-from-avg list bin { key "bin-number"; sros-ext:auto-restart-to-modify; description "Enter the bin list instance"; leaf bin-number { type uint32 { range "0..9"; } description "The number of the bin"; } leaf lower-bound { type int64 { range "0|1..4294967295"; } units "microseconds"; sros-ext:auto-restart-to-modify; description "The lower bound for the bin"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // list bin } // list bin-type } // list bin-group list session { key "session-name"; description "Enter the session list instance"; leaf session-name { type types-sros:named-item; description "OAM-PM session name"; } leaf session-type { type enumeration { enum "proactive" { value 1; } enum "on-demand" { value 2; } } sros-ext:immutable; default "proactive"; description "The type of the specified session"; } leaf bin-group { type leafref { path "../../bin-group/bin-group-id"; } description "The bin group for the session"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice test-family-choice { mandatory true; case ethernet-case { container ethernet { presence "Enter the 'ethernet' context"; description "Enable the ethernet context"; leaf dest-mac { type types-sros:mac-unicast-address; description "The destination MAC address for the session"; } leaf remote-mep { type uint32 { range "1..8191"; } description "The remote Maintenance association End Point (MEP) for the session"; } leaf priority { type uint32 { range "0..7"; } default "0"; description "The priority and forwarding class for the session"; } container source { presence "Enter the 'source' context"; description "Enable the source context"; leaf mep { type uint32 { range "1..8191"; } mandatory true; description "The source Ethernet Maintenance association End Point (MEP) identifier"; } leaf md-admin-name { type types-eth-cfm:admin-name; mandatory true; description "The source Ethernet Maintenance Domain (MD) name"; } leaf ma-admin-name { type types-eth-cfm:admin-name; mandatory true; description "The source Ethernet Maintenance Association (MA) name"; } } // container source container dmm { presence "Enter the 'dmm' context"; description "Enable the dmm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the test"; } leaf test-id { type uint32 { range "0..2147483647"; } mandatory true; description "The test identifier"; } leaf test-duration { type uint32 { range "1..86400"; } units "seconds"; description "The duration of an on-demand test"; } leaf interval { type uint32 { range "100|1000|10000"; } units "milliseconds"; default "1000"; description "The elapsed time between transmission PDUs for the specified session's test"; } leaf data-tlv-size { type uint32 { range "0|3..2000"; } units "octets"; default "0"; description "The size of the pad TLV in the frames sent for the test"; } leaf delay-template { type types-sros:named-item-64; description "Reference to a streaming delay template for the test"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dmm container lmm { presence "Enter the 'lmm' context"; description "Enable the lmm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the test"; } leaf test-id { type uint32 { range "0..2147483647"; } mandatory true; description "The test identifier"; } leaf test-duration { type uint32 { range "1..86400"; } units "seconds"; description "The duration of an on-demand test"; } leaf interval { type uint32 { range "100|1000|10000"; } units "milliseconds"; default "1000"; description "The elapsed time between transmission PDUs for the specified session's test"; } leaf fc-collection { type boolean; default "false"; description "Enable or disable the collection of per forwarding class statistics for the LMM test"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container availability { description "Enter the availability context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of availability statistics"; } leaf flr-threshold { type types-sros:percent; default "50"; description "The Frame Loss Ratio threshold for the test"; } leaf hli-force-count { type boolean; default "false"; description "Force High Loss Intervals (HLIs) and Consecutive High Loss Intervals (CHLIs) to be counted, regardless of the Availability state"; } container timing { description "Enter the timing context"; leaf frames-per-delta-t { type uint32 { range "1..50"; } default "10"; description "The number of frames to send in one MEF-35 'delta_t' also known as 'Small Time Interval'"; } leaf consec-delta-t { type uint32 { range "2..10"; } default "10"; description "The number of consecutive MEF-35 'delta_t's which constitute a MEF-35 'Availability Window'"; } leaf chli-threshold { type uint32 { range "1..9"; } default "5"; description "The MEF-35 Consecutive High Loss Interval (CHLI) threshold"; } } // container timing } // container availability container loss-events { description "Enter the loss-events context"; list avg-flr-event { key "direction"; description "Enter the avg-flr-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } } description "Traffic flow direction"; } leaf raise-threshold { type decimal64 { range "0.000..100.000"; fraction-digits 3; } units "percent"; mandatory true; description "The raise threshold for the average Frame Loss Ratio (FLR)"; } leaf clear-threshold { type decimal64 { range "0.000..99.999"; fraction-digits 3; } units "percent"; description "The clear threshold for the average Frame Loss Ratio (FLR)"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list avg-flr-event list chli-event { key "direction"; description "Enter the chli-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list chli-event list hli-event { key "direction"; description "Enter the hli-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list hli-event list unavailability-event { key "direction"; description "Enter the unavailability-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list unavailability-event list undet-availability-event { key "direction"; description "Enter the undet-availability-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list undet-availability-event list undet-unavailability-event { key "direction"; description "Enter the undet-unavailability-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list undet-unavailability-event } // container loss-events } // container lmm container slm { presence "Enter the 'slm' context"; description "Enable the slm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the test"; } leaf test-id { type uint32 { range "0..2147483647"; } mandatory true; description "The test identifier"; } leaf test-duration { type uint32 { range "1..86400"; } units "seconds"; description "The duration of an on-demand test"; } leaf interval { type uint32 { range "100|1000"; } units "milliseconds"; default "100"; description "The elapsed time between transmission PDUs for the specified session's test"; } leaf data-tlv-size { type uint32 { range "0|3..2000"; } units "octets"; default "0"; description "The size of the pad TLV in the frames sent for the test"; } leaf flr-threshold { type types-sros:percent; default "50"; description "The Frame Loss Ratio threshold for the test"; } leaf hli-force-count { type boolean; default "false"; description "Force High Loss Intervals (HLIs) and Consecutive High Loss Intervals (CHLIs) to be counted, regardless of the Availability state"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container timing { description "Enter the timing context"; leaf frames-per-delta-t { type uint32 { range "1..50"; } default "10"; description "The number of frames to send in one MEF-35 'delta_t' also known as 'Small Time Interval'"; } leaf consec-delta-t { type uint32 { range "2..10"; } default "10"; description "The number of consecutive MEF-35 'delta_t's which constitute a MEF-35 'Availability Window'"; } leaf chli-threshold { type uint32 { range "1..9"; } default "5"; description "The MEF-35 Consecutive High Loss Interval (CHLI) threshold"; } } // container timing container loss-events { description "Enter the loss-events context"; list avg-flr-event { key "direction"; description "Enter the avg-flr-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } } description "Traffic flow direction"; } leaf raise-threshold { type decimal64 { range "0.000..100.000"; fraction-digits 3; } units "percent"; mandatory true; description "The raise threshold for the average Frame Loss Ratio (FLR)"; } leaf clear-threshold { type decimal64 { range "0.000..99.999"; fraction-digits 3; } units "percent"; description "The clear threshold for the average Frame Loss Ratio (FLR)"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list avg-flr-event list chli-event { key "direction"; description "Enter the chli-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list chli-event list hli-event { key "direction"; description "Enter the hli-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list hli-event list unavailability-event { key "direction"; description "Enter the unavailability-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list unavailability-event list undet-availability-event { key "direction"; description "Enter the undet-availability-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list undet-availability-event list undet-unavailability-event { key "direction"; description "Enter the undet-unavailability-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list undet-unavailability-event } // container loss-events } // container slm } // container ethernet } case ip-case { container ip { presence "Enter the 'ip' context"; description "Enable the ip context"; leaf allow-egress-remark-dscp { type boolean; default "false"; description "Whether or not to allow the session's configured DSCP value to be overwritten by the applicable egress Quality of Service (QoS) policy"; } leaf destination { type types-sros:ip-unicast-address; description "The destination IP address for the session"; } leaf destination-udp-port { type types-sros:tcp-udp-port-non-zero; description "The destination UDP port for the session"; } leaf do-not-fragment { type boolean; default "false"; description "The IPv4 packet header Don't Fragment (DF) field for the session"; } leaf dscp { type union { type types-qos:dscp-name; type types-oam:dscp-resolve; } default "resolve"; description "The Differentiated Services Code Point (DSCP) for the session. resolve = use the fc and profile configuration values to derive the DSCP"; } leaf fc { type types-oam:forwarding-class; default "be"; description "The forwarding class for the session"; } leaf pattern { type types-oam:padding-pattern; default "0"; description "The pattern used to fill the packet padding field for the session"; } leaf profile { type enumeration { enum "in" { value 1; } enum "out" { value 2; } } default "out"; description "The profile for the session"; } leaf router-instance { type string; default "Base"; description "The router for the session"; } leaf source { type types-sros:ip-unicast-address; description "The source IP address for the session"; } leaf source-udp-port { type types-sros:tcp-udp-port-non-zero { range "64374..64383"; } description "The source UDP port for the session"; } leaf ttl { type uint32 { range "1..255"; } default "255"; description "The Time-To-Live value for the session"; } container forwarding { presence "Enter the 'forwarding' context"; description "Enable the forwarding context"; choice forwarding-choice { mandatory true; case next-hop-case { leaf next-hop { type types-sros:ip-unicast-address; description "IP-address for forwarding"; } } case interface-case { leaf interface { type types-sros:interface-name; description "The name of the interface to be used"; } } case bypass-routing-case { leaf bypass-routing { type empty; description "Bypass the routing table when sending test packets"; } } } } // container forwarding container twamp-light { presence "Enter the 'twamp-light' context"; description "Enable the twamp-light context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the test"; } leaf test-id { type uint32 { range "0..2147483647"; } mandatory true; description "The test identifier"; } leaf test-duration { type uint32 { range "1..86400"; } units "seconds"; description "The duration of an on-demand test"; } leaf interval { type uint32 { range "100|1000|10000"; } units "milliseconds"; default "1000"; description "The elapsed time between transmission PDUs for the specified session's test"; } leaf pad-size { type uint32 { range "0..2000"; } units "octets"; default "0"; description "The amount of padding in each packet sent for the TWAMP-Light test"; } leaf record-stats { type enumeration { enum "delay" { value 1; } enum "loss" { value 2; } enum "delay-and-loss" { value 3; } } default "delay"; description "The type of statistics recorded for the TWAMP-Light test"; } leaf delay-template { type types-sros:named-item-64; description "Reference to a streaming delay template for the test"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container loss { description "Enter the loss context"; leaf flr-threshold { type types-sros:percent; default "50"; description "The Frame Loss Ratio threshold for the test"; } leaf hli-force-count { type boolean; default "false"; description "Force High Loss Intervals (HLIs) and Consecutive High Loss Intervals (CHLIs) to be counted, regardless of the Availability state"; } container timing { description "Enter the timing context"; leaf frames-per-delta-t { type uint32 { range "1..50"; } default "1"; description "The number of frames to send in one MEF-35 'delta_t' also known as 'Small Time Interval'"; } leaf consec-delta-t { type uint32 { range "2..10"; } default "10"; description "The number of consecutive MEF-35 'delta_t's which constitute a MEF-35 'Availability Window'"; } leaf chli-threshold { type uint32 { range "1..9"; } default "5"; description "The MEF-35 Consecutive High Loss Interval (CHLI) threshold"; } } // container timing } // container loss container loss-events { description "Enter the loss-events context"; list avg-flr-event { key "direction"; description "Enter the avg-flr-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } } description "Traffic flow direction"; } leaf raise-threshold { type decimal64 { range "0.000..100.000"; fraction-digits 3; } units "percent"; mandatory true; description "The raise threshold for the average Frame Loss Ratio (FLR)"; } leaf clear-threshold { type decimal64 { range "0.000..99.999"; fraction-digits 3; } units "percent"; description "The clear threshold for the average Frame Loss Ratio (FLR)"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list avg-flr-event list chli-event { key "direction"; description "Enter the chli-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list chli-event list hli-event { key "direction"; description "Enter the hli-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list hli-event list unavailability-event { key "direction"; description "Enter the unavailability-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list unavailability-event list undet-availability-event { key "direction"; description "Enter the undet-availability-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list undet-availability-event list undet-unavailability-event { key "direction"; description "Enter the undet-unavailability-event list instance"; leaf direction { type enumeration { enum "forward" { value 1; } enum "backward" { value 2; } enum "aggregate" { value 3; } } description "Traffic flow direction"; } leaf raise-threshold { type int32 { range "1..864000"; } mandatory true; description "Raise threshold"; } leaf clear-threshold { type int32 { range "0..863999"; } description "Clear threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list undet-unavailability-event } // container loss-events } // container twamp-light } // container ip } case mpls-case { container mpls { presence "Enter the 'mpls' context"; description "Enable the mpls context"; leaf dscp { type types-qos:dscp-name; default "be"; description "The Differentiated Services Code Point (DSCP) for the session"; } leaf fc { type types-oam:forwarding-class; default "be"; description "The forwarding class for the session"; } leaf pattern { type types-oam:padding-pattern; default "0"; description "The pattern used to fill the query message's pad TLV for the session ('sequential' specifies 00, 01, 02, 03, .. (hexadecimal))"; } leaf profile { type enumeration { enum "in" { value 1; } enum "out" { value 2; } } default "out"; description "The Quality of Service profile for the session"; } leaf ttl { type uint32 { range "1..255"; } default "255"; description "The MPLS Time-To-Live value for the session"; } container lsp { description "Enter the lsp context"; choice lsp-choice { case mpls-tp-static-case { container mpls-tp-static { presence "Enter the 'mpls-tp-static' context"; description "Enable the mpls-tp-static context"; leaf lsp { type types-sros:named-item-64; description "The LSP to be tested"; } } // container mpls-tp-static } case rsvp-case { container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf lsp { type types-sros:named-item-64; description "The LSP to be tested"; } leaf udp-return-object { type types-sros:ip-unicast-address; description "The destination IP address used by the far end of the test to send a response"; } } // container rsvp } case rsvp-auto-case { container rsvp-auto { presence "Enter the 'rsvp-auto' context"; description "Enable the rsvp-auto context"; leaf lsp-template { type types-sros:named-item; description "The LSP template used to identify the LSP to be tested"; } leaf from { type types-sros:ipv4-unicast-address; description "An IPv4 address used (with the LSP template) to identify the LSP to be tested"; } leaf to { type types-sros:ipv4-unicast-address; description "An IPv4 address used (with the LSP template) to identify the LSP to be tested"; } leaf udp-return-object { type types-sros:ip-unicast-address; description "The destination IP address used by the far end of the test to send a response"; } } // container rsvp-auto } } } // container lsp container dm { presence "Enter the 'dm' context"; description "Enable the dm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MPLS DM test"; } leaf test-id { type uint32 { range "0..67108863"; } mandatory true; description "Used to identify query and response messages belonging to the test"; } leaf interval { type uint32 { range "1000|2000|3000|4000|5000|6000|7000|8000|9000|10000"; } units "milliseconds"; default "1000"; description "The elapsed time between query messages sent for the test"; } leaf pad-tlv-size { type uint32 { range "0|2..257"; } units "octets"; default "0"; description "The size of the pad TLV in the query messages sent for the test"; } leaf reflect-pad { type boolean; default "false"; description "Whether or not to copy the pad TLV in each query to the response"; } leaf test-duration { type uint32 { range "1..86400"; } units "seconds"; description "The duration of an on-demand test"; } leaf delay-template { type types-sros:named-item-64; description "Reference to a streaming delay template for the test"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dm } // container mpls } } list measurement-interval { key "duration"; description "Enter the measurement-interval list instance"; leaf duration { type types-oam:measurement-interval-duration; description "The duration of the measurement interval"; } leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "The accounting policy for the measurement interval"; } leaf boundary-type { type enumeration { enum "clock-aligned" { value 1; } enum "test-relative" { value 2; } } default "clock-aligned"; description "The start condition for the measurement interval (start when the test starts, or wall clock aligned)"; } leaf clock-offset { type uint32 { range "0..86399"; } units "seconds"; default "0"; description "The offset for a clock-aligned measurement interval (must be less than the selected duration)"; } leaf intervals-stored { type uint32 { range "1..96"; } description "The maximum number of intervals stored for the measurement interval"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container threshold-cross-alerts { description "Enter the threshold-cross-alerts context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of TCAs for measurement interval"; } leaf delay-events { type boolean; default "false"; description "Enable or disable delay TCAs for the measurement interval"; } leaf loss-events { type boolean; default "false"; description "Enable or disable loss TCAs for the measurement interval"; } } // container threshold-cross-alerts } // list measurement-interval } // list session container streaming { description "Enter the streaming context"; list delay-template { key "delay-template-name"; description "Enter the delay-template list instance"; leaf delay-template-name { type types-sros:named-item-64; description "Streaming delay template name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the delay template"; } leaf description { type types-sros:description; description "Text description"; } leaf sample-window { type uint32 { range "10..60"; } units "seconds"; default "60"; description "Sample window duration for the template"; } leaf window-integrity { type uint32 { range "1..100"; } units "percent"; default "50"; description "Measurements for the sample window validity"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list fd-avg { key "direction"; description "Add a list entry for fd-avg"; leaf direction { type types-oam:direction; description "Traffic flow direction of the OAM-PM test or metric"; } } // list fd-avg list ifdv-avg { key "direction"; description "Add a list entry for ifdv-avg"; leaf direction { type types-oam:direction; description "Traffic flow direction of the OAM-PM test or metric"; } } // list ifdv-avg } // list delay-template } // container streaming } // container oam-pm container openflow { description "Enter the openflow context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list of-controller { key "controller-id"; max-elements 1; description "Enter the of-controller list instance"; leaf controller-id { type uint32; default "1"; description "OpenFlow controller id. Currently is supported only value of 1."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of an OpenFlow controller instance."; } leaf description { type types-sros:description; description "Text description"; } leaf version { type enumeration { enum "version-1-3-1" { value 4; } } default "version-1-3-1"; description "OpenFlow version negotiated between an OpenFlow controller and the switch."; } leaf address { type types-sros:ipv4-address; sros-ext:auto-restart-to-modify; description "Local IPv4 address for OpenFlow controller to be used for packets on both main and aux channels. By default, this is the management IP address of the system. It may also correspond to the system IP address or another loopback address configured on the system. The OpenFlow controller must be shutdown to change its address."; } leaf echo-interval { type uint32 { range "10..3600"; } units "seconds"; default "10"; description "Time interval between two consecutive OpenFlow echo request transmissions for a given OpenFlow session."; } leaf echo-multiple { type uint32 { range "3..100"; } default "3"; description "Multiplier for OpenFlow control channel echo packets. The OpenFlow control channel is considered operationally down if no reply is heard from the switch after the specified multiplier."; } leaf tls-server-profile { type leafref { path "../../../system/security/tls/server-tls-profile/server-profile-name"; } sros-ext:auto-restart-to-modify; description "Specifies the profile name used by the controller."; } leaf role { type enumeration { enum "equal" { value 0; } } default "equal"; description "The role that the controller will request to OpenFlow switches when multiple controllers are connected to a switch."; } leaf ipv6-address { type types-sros:ipv6-unicast-address; description "Local IPv6 address for OpenFlow controller to be used for packets on both main and aux channels. The OpenFlow controller must be shutdown to change its address."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list of-controller list of-switch { key "name"; max-elements 8; description "Enter the of-switch list instance"; leaf name { type types-sros:named-item; description "The name of this OpenFlow switch."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of an OpenFlow switch instance."; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf ofs-id { type uint32 { range "1..8"; } sros-ext:immutable; description "Unique identifier of an OpenFlow switch instance."; } leaf echo-interval { type uint32 { range "1..3600"; } units "seconds"; default "10"; description "Time interval between two consecutive OpenFlow echo request transmissions for a given OpenFlow session."; } leaf echo-multiple { type uint32 { range "3..100"; } default "3"; description "Multiplier for OpenFlow control channel echo packets. The OpenFlow control channel is considered operationally down if no reply is heard from the switch after the specified multiplier."; } leaf aux-channel { type boolean; default "false"; description "The operational status of the auxiliary channel established between an OpenFlow controller and switch."; } leaf-list logical-port-status { type enumeration { enum "rsvp-te" { value 1; } enum "mpls-tp" { value 2; } enum "sr-te" { value 3; } } max-elements 3; description "Logical port type for status change reporting"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list flowtable { key "table-id"; max-elements 1; description "Enter the flowtable list instance"; leaf table-id { type uint32; description "OpenFlow table ID."; } leaf max-size { type uint32 { range "1..524288"; } default "1000"; description "Maximum number of entries that the flowtable can have. The maximum size cannot be changed if any entries are present in the flowtable."; } leaf mismatch-action { type enumeration { enum "drop" { value 1; } enum "fall-through" { value 2; } enum "packet-in" { value 3; } } default "fall-through"; description "Action to be performed when no match is found in the flowtable. When the value is set to 'drop', packets are dropped if no match is found in flowtable. When the value is set to 'fall-through, evaluating is continued based on filter policy."; } leaf switch-defined-cookie { type boolean; default "false"; description "Enable switch-defined cookie encoding"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list flowtable list controller { key "address port"; max-elements 2; description "Enter the controller list instance"; leaf address { type types-sros:ip-unicast-address; description "IP address of the OpenFlow channel to the controller"; } leaf port { type uint32 { range "1..65535"; } description "Controller port."; } leaf tls-client-profile { type leafref { path "../../../../system/security/tls/client-tls-profile/client-profile-name"; } description "Specifies the profile name used by the controller."; } leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf ofc-loopback { type types-sros:ip-unicast-address; description "The controller loop back IPv4 address."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list controller } // list of-switch } // container openflow container policy-options { description "Enter the policy-options context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list as-path { key "name"; description "Enter the as-path list instance"; leaf name { type types-sros:named-item; description "AS Path name"; } leaf expression { type types-sros:policy-as-path-regexp; description "Regular expression string"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list as-path list as-path-group { key "name"; sros-ext:shared-model-management { sros-ext:openconfig false; } description "Enter the as-path-group list instance"; leaf name { type types-sros:named-item; description "AS Path Group name"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry"; description "Enter the entry list instance"; leaf entry { type uint32 { range "1..128"; } description "ID to uniquely identify this AS Path entry"; } leaf expression { type types-sros:policy-as-path-regexp; mandatory true; description "Regular expression string"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list entry } // list as-path-group list damping { key "name"; description "Enter the damping list instance"; leaf name { type types-sros:named-item; description "Damping profile name"; } leaf half-life { type uint32 { range "1..45"; } units "minutes"; description "Time after which the Figure of Merit value is halved"; } leaf max-suppress { type uint32 { range "1..720"; } units "minutes"; description "Maximum time for a route to remain suppressed"; } leaf reuse { type uint32 { range "1..20000"; } description "Value below which a suppressed route can be used again"; } leaf suppress { type uint32 { range "1..20000"; } description "Value above which a route is suppressed"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list damping container global-variables { description "Enter the global-variables context"; list name { key "variable-name"; max-elements 1000; description "Enter the name list instance"; leaf variable-name { type types-policy:policy-var-name; description "Map a variable name to a value, a number, or address"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice variable-type { mandatory true; case value { leaf value { type types-sros:named-item; description "Variable name that is resolved to assigned value"; } } case number { leaf number { type uint64 { range "0..4294967295"; } description "Variable name that is resolved to assigned value"; } } case address { leaf address { type types-sros:ip-address; description "Variable name that is resolved to IP address"; } } case decimal { leaf decimal { type decimal64 { range "0.000..4294967295.000"; fraction-digits 3; } description "Attribute decimal to which variable-name is resolved"; } } } } // list name } // container global-variables list community { key "name"; description "Enter the community list instance"; leaf name { type types-sros:policy-community-name; description "Name of a community"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list member { key "member"; description "Add a list entry for member"; leaf member { type types-sros:member-community; description "Community member value"; } } // list member container expression { presence "Enter the 'expression' context"; description "Enable the expression context"; leaf expr { type types-sros:expression-community; mandatory true; description "Community expression value"; } leaf exact { type boolean; default "false"; description "Match exactly for the specified expression"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container expression } // list community list prefix-list { key "name"; description "Enter the prefix-list list instance"; leaf name { type types-sros:named-item; description "Prefix list name"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list prefix { key "ip-prefix type"; description "Enter the prefix list instance"; leaf ip-prefix { type types-sros:ip-prefix; description "IP prefix associated with prefix length"; } leaf type { type enumeration { enum "exact" { value 1; } enum "longer" { value 2; } enum "through" { value 3; } enum "range" { value 4; } enum "to" { value 5; } enum "address-mask" { value 6; } } description "Prefix list match type"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice length { case range { leaf start-length { type uint32 { range "0..128"; } description "Start in the prefix range length"; } leaf end-length { type uint32 { range "0..128"; } description "End in the prefix range length"; } } case through { leaf through-length { type uint32 { range "0..128"; } description "Prefix through length"; } } case to { list to-prefix { when "../type = 'to'"; key "ip-prefix"; description "Add a list entry for to-prefix"; leaf ip-prefix { type types-sros:ip-prefix; description "IP prefix for \"to\" match type"; } } // list to-prefix } case address-mask { list mask-pattern { when "../type = 'address-mask'"; key "address"; description "Add a list entry for mask-pattern"; leaf address { type types-sros:ip-address; description "Address mask for matching routes to the prefix entry"; } } // list mask-pattern } } } // list prefix } // list prefix-list list policy-statement { key "name"; max-elements 65535; sros-ext:shared-model-management { sros-ext:openconfig false; } description "Enter the policy-statement list instance"; leaf name { type types-sros:named-item-64; description "Name of a policy statement"; } leaf description { type types-sros:description; description "Text description"; } leaf entry-type { type enumeration { enum "numbered" { value 1; } enum "named" { value 2; } } default "numbered"; description "The entry-type of a route policy entry"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { when "../entry-type = 'numbered'"; key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..4294967295"; } description "Entry ID of a route policy entry"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container conditional-expression { presence "Enter the 'conditional-expression' context"; description "Enable the conditional-expression context"; leaf route-exists { type string { length "1..255"; pattern "\\s*\\[.+\\]\\s*(all|none)?" { error-message " enter valid prefix between [ ] and optionally add all or none"; } } description "Conditional expression to test route existence"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container conditional-expression container from { presence "Enter the 'from' context"; description "Enable the from context"; leaf level { type int32 { range "1..2"; } description "ISIS route level as match criterion"; } leaf-list prefix-list { type union { type types-policy:param-midstring; type string; } max-elements 28; ordered-by user; description "Prefix list as match criterion"; } leaf area { type types-sros:ipv4-address; description "OSPF area as match criterion"; } leaf aggregate-contributor { type boolean; default "false"; description "Configure an aggregate contributor route as a match criterion for the entry."; } leaf evpn-type { type enumeration { enum "ethernet-auto-discovery" { value 1; } enum "mac-ip-advertisement" { value 2; } enum "inclusive-multicast" { value 3; } enum "ethernet-segment" { value 4; } enum "ip-prefix" { value 5; } enum "selective-multicast" { value 6; } enum "multicast-join-sync" { value 7; } enum "multicast-leave-sync" { value 8; } } description "EVPN type as a match criterion for the entry"; } leaf external { type boolean; default "false"; description "Specify external ISIS route as match criterion"; } leaf-list family { type types-bgp:ip-family-identifier; max-elements 20; description "Address family as the match condition"; } leaf group-address { type union { type types-policy:param-midstring; type string; } description "Prefix list of multicast group addresses to use as match criterion"; } leaf host-ip { type union { type types-policy:param-midstring; type string; } description "Prefix list of IGMP host IP addresses for matching"; } leaf-list interface { type union { type types-sros:named-item; type types-sros:interface-name; type types-sros:interface-name; type types-sros:interface-name; } max-elements 1; ordered-by user; description "Interface name as match criterion"; } leaf mvpn-type { type enumeration { enum "intra-as-ipmsi-auto-discovery" { value 1; } enum "inter-as-ipmsi-auto-discovery" { value 2; } enum "s-pmsi-auto-discovery" { value 3; } enum "intra-as-segment-leaf-auto-discovery" { value 4; } enum "source-active-auto-discovery" { value 5; } enum "shared-tree-join" { value 6; } enum "source-tree-join" { value 7; } } description "MVPN type as match criterion for the entry"; } leaf origin { type enumeration { enum "igp" { value 2; } enum "egp" { value 3; } enum "incomplete" { value 4; } enum "any" { value 5; } enum "aaa" { value 6; } enum "dynamic" { value 7; } enum "static" { value 8; } enum "bonding" { value 9; } } description "Origin attribute as a match criterion"; } leaf origin-validation-state { type enumeration { enum "valid" { value 1; } enum "not-found" { value 2; } enum "invalid" { value 3; } } description "Origin attribute as a match criterion"; } leaf ospf-type { type int32 { range "1..2"; } description "OSPF type metric applied to un-matching route entries"; } leaf path-type { type enumeration { enum "ibgp" { value 2; } enum "ebgp" { value 3; } } description "Path type as a match criterion"; } leaf policy { type union { type string { length "1..255"; pattern ".*[\\[].*" { error-message "expression not valid."; } } type string; } description "Policy statement as a match criterion"; } leaf state { type enumeration { enum "srrp-master" { value 2; } enum "srrp-non-master" { value 3; } enum "ipsec-master-with-peer" { value 6; } enum "ipsec-master-without-peer" { value 7; } enum "ipsec-non-master" { value 8; } } description "State that is used as match criterion"; } leaf tag { type union { type int64 { range "1..4294967295"; } type enumeration { enum "no-tag" { value 0; } } } description "Route tag as match criterion"; } leaf color { type int64 { range "0..4294967295"; } description "Color ID as a match criterion"; } leaf distinguisher { type int64 { range "0..4294967295"; } description "SR policy distinguisher as a match criterion"; } leaf endpoint { type types-sros:ip-address; description "SR policy endpoint address as a match criterion"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container neighbor { description "Enter the neighbor context"; choice neighbor { case ip-address { leaf ip-address { type union { type types-sros:ip-address; type types-sros:ip-address-with-zone; } description "IP address to match the neighbor"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name to match the neighbor prefix list"; } } } } // container neighbor container interface-subnets { description "Enter the interface-subnets context"; leaf service { type string; default "Base"; description "Service-id of the interface subnets"; } leaf-list ip-int-name { type types-sros:interface-name; max-elements 10; ordered-by user; description "Interface name as match criterion"; } } // container interface-subnets container as-path { description "Enter the as-path context"; choice as-path { case name { leaf name { type union { type types-policy:param-midstring; type string; } description "AS Path regular expression statement as match criterion"; } } case group { leaf group { type union { type types-policy:param-midstring; type string; } description "AS Path Group as match criterion"; } } } container length { description "Enter the length context"; leaf value { type types-policy:value-255-param-name; description "AS numbers in the AS Path that match on the BGP route"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } leaf unique { type boolean; default "false"; description "Use unique AS numbers as matching criteria"; } } // container length } // container as-path container cluster-id { description "Enter the cluster-id context"; choice cluster-id { case ip-address { leaf-list ip-address { type types-sros:ipv4-prefix-with-host-bits; max-elements 5; ordered-by user; description "Cluster list attribute IP addresses for route matching"; } } case none-cluster-list { leaf none-cluster-list { type boolean; default "false"; description "Specify matching BGP routes without a cluster ID"; } } } } // container cluster-id container community { description "Enter the community context"; choice community { case name { leaf name { type union { type types-policy:param-midstring-64 { pattern "[^\\]\\[]+" { error-message "String must not contain square brackets ([])."; } } type string; } description "Community name to match"; } } case expression { leaf expression { type string { length "1..900"; } description "Community expression name as match criterion"; } } } container count { description "Enter the count context"; leaf value { type types-policy:value-param-1024-name; description "Number of BGP communities to match the BGP route"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } leaf type { type enumeration { enum "standard" { value 2; } enum "extended" { value 3; } enum "large" { value 4; } } description "Communities count to match the community count criteria"; } } // container count } // container community container flowspec { description "Enter the flowspec context"; leaf dest { type union { type types-policy:param-midstring; type string; } description "Match BGP flowspec routes per the destination IP prefix"; } leaf source { type union { type types-policy:param-midstring; type string; } description "Match BGP flowspec routes per the source IP prefix"; } } // container flowspec container local-preference { description "Enter the local-preference context"; leaf value { type types-policy:value-param-name-metric; description "BGP routes per local preference value or variable name"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } } // container local-preference container metric { description "Enter the metric context"; leaf value { type types-policy:value-param-name-metric; description "Local preference value, or variable name"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } } // container metric container next-hop { description "Enter the next-hop context"; choice next-hop { case ip-address { leaf ip-address { type types-sros:ip-unicast-address; description "IP address of next hop to match"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name of a next hop prefix list to match"; } } } } // container next-hop container protocol { description "Enter the protocol context"; leaf-list name { type enumeration { enum "direct" { value 2; } enum "static" { value 3; } enum "bgp" { value 4; } enum "isis" { value 5; } enum "ospf" { value 6; } enum "rip" { value 7; } enum "aggregate" { value 8; } enum "bgp-vpn" { value 9; } enum "igmp" { value 10; } enum "pim" { value 11; } enum "ospf3" { value 12; } enum "ldp" { value 13; } enum "sub-mgmt" { value 14; } enum "mld" { value 15; } enum "managed" { value 16; } enum "vpn-leak" { value 18; } enum "nat" { value 21; } enum "periodic" { value 22; } enum "ipsec" { value 23; } enum "dhcpv6-pd" { value 25; } enum "dhcpv6-na" { value 26; } enum "dhcpv6-ta" { value 27; } enum "dhcpv6-pd-excl" { value 28; } enum "ripng" { value 29; } enum "bgp-label" { value 31; } enum "direct-interface" { value 32; } enum "arp-nd" { value 33; } enum "rib-api" { value 34; } enum "evpn-ifl" { value 37; } } max-elements 5; description "List of protocol names as the match criterion"; } leaf instance { type union { type enumeration { enum "all" { value -1; } } type uint32 { range "0..31|64..95"; } } default "0"; description "Instance for protocol IS-IS, OSPF, or OSPFv3 to match"; } } // container protocol container source-address { description "Enter the source-address context"; choice source-address { case ip-address { leaf ip-address { type types-sros:ip-address; description "Source IP address to match"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name of a source address prefix list to match"; } } } } // container source-address container policy-variables { description "Enter the policy-variables context"; list name { key "variable-name"; max-elements 10; description "Enter the name list instance"; leaf variable-name { type types-policy:policy-var-name; description "Map a variable name to a value, a number, or address"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice variable-type { mandatory true; case value { leaf value { type types-sros:named-item; description "Variable name that is resolved to assigned value"; } } case number { leaf number { type uint64 { range "0..4294967295"; } description "Variable name that is resolved to assigned value"; } } case address { leaf address { type types-sros:ip-address; description "Variable name that is resolved to IP address"; } } case decimal { leaf decimal { type decimal64 { range "0.000..4294967295.000"; fraction-digits 3; } description "Attribute decimal to which variable-name is resolved"; } } } } // list name } // container policy-variables } // container from container to { presence "Enter the 'to' context"; description "Enable the to context"; leaf level { type int32 { range "1..2"; } description "ISIS route level as match criterion"; } leaf-list prefix-list { type union { type types-policy:param-midstring; type string; } max-elements 28; ordered-by user; description "Prefix list as match criterion"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container neighbor { description "Enter the neighbor context"; choice neighbor { case ip-address { leaf ip-address { type union { type types-sros:ip-address; type types-sros:ip-address-with-zone; } description "IP address to match the neighbor"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name to match the neighbor prefix list"; } } } } // container neighbor container protocol { description "Enter the protocol context"; leaf-list name { type enumeration { enum "bgp" { value 4; } enum "isis" { value 5; } enum "ospf" { value 6; } enum "rip" { value 7; } enum "bgp-vpn" { value 9; } enum "ospf3" { value 12; } enum "ldp" { value 13; } enum "vpn-leak" { value 18; } enum "ripng" { value 29; } enum "bgp-label" { value 31; } enum "evpn-ifl" { value 37; } } max-elements 2; description "Protocol name to match"; } leaf instance { type union { type enumeration { enum "all" { value -1; } } type uint32 { range "0..31|64..95"; } } default "0"; description "Instance for protocol ISIS, OSPF, or OSPF3"; } } // container protocol } // container to container action { presence "Enter the 'action' context"; description "Enable the action context"; leaf action-type { type enumeration { enum "accept" { value 1; } enum "reject" { value 2; } enum "next-entry" { value 3; } enum "next-policy" { value 4; } } mandatory true; description "Type of action for routes matching route policy entry"; } leaf add-paths-send-limit { type union { type int32 { range "1..16"; } type enumeration { enum "multipaths" { value -1; } } } description "BGP Add-Paths send limit that is applied for routes"; } leaf admin-tag-policy { type union { type types-policy:param-midstring-64; type string; } description "Administrative tag policy name"; } leaf advertise-label { type enumeration { enum "per-prefix" { value 1; } enum "pop" { value 2; } } description "Label allocation for matched BGP routes"; } leaf bgp-high-priority { type boolean; default "false"; description "Tag routes as high priority for faster table updates"; } leaf bgp-leak { type boolean; default "false"; description "Allow leaking for BGP routes"; } leaf create-udp-tunnel { type boolean; default "false"; description "Create an MPLS-over-UDP tunnel"; } leaf damping { type union { type enumeration { enum "none" { value 0; } } type types-policy:param-midstring; type string; } description "Damping profile for routes"; } leaf dest-class { type types-sros:class-index; description "Default destination class for the policy statement"; } leaf egress-statistics { type boolean; default "false"; description "Enable egress statistics for BGP-LU routes"; } leaf ingress-statistics { type boolean; default "false"; description "Enable ingress statistics for BGP-LU routes"; } leaf flex-algo { type types-policy:value-param-name-flex-algo; description "Flexible algorithm for BGP next-hop autobind operation"; } leaf install-backup-path { type boolean; default "false"; description "Install a preprogrammed backup path for the prefix"; } leaf local-preference { type types-policy:value-param-name-metric; description "BGP local preference for routes not matching any entry"; } leaf next-hop { type union { type enumeration { enum "peer-address" { value -2; } enum "self" { value -1; } } type types-sros:ip-address; type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Next-hop IP address applied to routes"; } leaf origin { type union { type enumeration { enum "igp" { value 2; } enum "egp" { value 3; } enum "incomplete" { value 4; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "BGP origin for routes that are exported into BGP"; } leaf origin-validation-state { type union { type enumeration { enum "valid" { value 1; } enum "not-found" { value 2; } enum "invalid" { value 3; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Origin validation state for routes"; } leaf preference { type union { type uint32 { range "1..255"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Route preference applied to routes"; } leaf resolve-static { type boolean; default "false"; description "Resolve next hop of static route for BGP next hop"; } leaf source-class { type types-sros:class-index; description "Default source class for the policy statement"; } leaf sticky-ecmp { type boolean; default "false"; description "Specify sticky ECMP flag for BGP ECMP routes"; } leaf tag { type union { type uint32 { range "1..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF RIP or ISIS tag applied to routes"; } leaf type { type union { type int32 { range "1..2"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF type metric applied to routes"; } leaf route-table-install { type boolean; default "true"; description "Allow installation in route table"; } leaf sr-maintenance-policy { type union { type types-policy:param-midstring; type string; } description "SR maintenance policy as an action"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container aigp-metric { description "Enter the aigp-metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "AIGP metric to add"; } } case set { leaf set { type types-policy:value-param-name-metric-igp; description "AIGP metric"; } } } } // container aigp-metric container as-path { description "Enter the as-path context"; choice action { case add { leaf add { type union { type types-policy:param-midstring; type string; } description "AS path to add"; } } case replace { leaf replace { type union { type types-policy:param-midstring; type string; } description "AS path to replace"; } } } } // container as-path container as-path-prepend { description "Enter the as-path-prepend context"; leaf as-path { type types-policy:value-param-name-range; description "AS number to prepend to AS path attribute"; } leaf repeat { type types-policy:repeat-value-param-name; default "1"; description "Number of times to prepend the specified AS number"; } } // container as-path-prepend container bgp-tunnel-metric { description "Enter the bgp-tunnel-metric context"; leaf value { type types-policy:value-param-name; description "BGP tunnel table metric value"; } leaf prefer-aigp { type boolean; default "false"; description "Use the AIGP attribute as tunnel metric when present"; } } // container bgp-tunnel-metric container metric { description "Enter the metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "Metric to add"; } } case subtract { leaf subtract { type types-policy:value-param-name-metric; description "Metric to subtract"; } } case set { leaf set { type union { type enumeration { enum "igp" { status obsolete; } } type int64 { range "0..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Metric to assign"; } } } } // container metric container multicast-redirection { description "Enter the multicast-redirection context"; leaf fwd-service { type string; default "Base"; description "Service ID for multicast redirection"; } leaf ip-int-name { type types-sros:interface-name; description "Interface index to redirect IGMP multicast traffic"; } } // container multicast-redirection container sr-label-index { description "Enter the sr-label-index context"; leaf value { type types-policy:value-524287-param-name; description "BGP SR label index associated with routes"; } leaf prefer-igp { type boolean; default "false"; description "Use the SR label index from the IGP route when present"; } } // container sr-label-index container bgp-med { description "Enter the bgp-med context"; choice action { case set { leaf set { type types-policy:value-param-name-bgp-med-igp; description "Assign BGP-MED"; } } case adjust { leaf adjust { type string { length "1..64"; pattern "(.*@.+@.*)|(.*_med_.*)|(.*_igp_.*)" { error-message "Expression must contain variable _igp_ or _med_ or @parameter@"; } pattern ".*[+\\-*].*" { error-message "Expression must contain one valid operator. Supported operators are +, - and *"; } } description "Adjust BGP-MED"; } } } } // container bgp-med container forwarding-class { description "Enter the forwarding-class context"; leaf fc { type enumeration { enum "be" { value 0; } enum "l2" { value 1; } enum "af" { value 2; } enum "l1" { value 3; } enum "h2" { value 4; } enum "ef" { value 5; } enum "h1" { value 6; } enum "nc" { value 7; } } description "Forwarding class associated with the route"; } leaf priority { type enumeration { enum "low" { value 1; } enum "high" { value 2; } } description "Route priority"; } } // container forwarding-class container community { description "Enter the community context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice action { case action1 { leaf-list add { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to add"; } leaf-list remove { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to remove"; } } case action2 { leaf-list replace { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to replace"; } } } } // container community } // container action } // list entry list named-entry { when "../entry-type = 'named'"; key "entry-name"; max-elements 16384; ordered-by user; description "Enter the named-entry list instance"; leaf entry-name { type types-sros:named-item-255; description "The name of a route policy entry"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container conditional-expression { presence "Enter the 'conditional-expression' context"; description "Enable the conditional-expression context"; leaf route-exists { type string { length "1..255"; pattern "\\s*\\[.+\\]\\s*(all|none)?" { error-message " enter valid prefix between [ ] and optionally add all or none"; } } description "Conditional expression to test route existence"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container conditional-expression container from { presence "Enter the 'from' context"; description "Enable the from context"; leaf level { type int32 { range "1..2"; } description "ISIS route level as match criterion"; } leaf-list prefix-list { type union { type types-policy:param-midstring; type string; } max-elements 28; ordered-by user; description "Prefix list as match criterion"; } leaf area { type types-sros:ipv4-address; description "OSPF area as match criterion"; } leaf aggregate-contributor { type boolean; default "false"; description "Configure an aggregate contributor route as a match criterion for the entry."; } leaf evpn-type { type enumeration { enum "ethernet-auto-discovery" { value 1; } enum "mac-ip-advertisement" { value 2; } enum "inclusive-multicast" { value 3; } enum "ethernet-segment" { value 4; } enum "ip-prefix" { value 5; } enum "selective-multicast" { value 6; } enum "multicast-join-sync" { value 7; } enum "multicast-leave-sync" { value 8; } } description "EVPN type as a match criterion for the entry"; } leaf external { type boolean; default "false"; description "Specify external ISIS route as match criterion"; } leaf-list family { type types-bgp:ip-family-identifier; max-elements 20; description "Address family as the match condition"; } leaf group-address { type union { type types-policy:param-midstring; type string; } description "Prefix list of multicast group addresses to use as match criterion"; } leaf host-ip { type union { type types-policy:param-midstring; type string; } description "Prefix list of IGMP host IP addresses for matching"; } leaf-list interface { type union { type types-sros:named-item; type types-sros:interface-name; type types-sros:interface-name; type types-sros:interface-name; } max-elements 1; ordered-by user; description "Interface name as match criterion"; } leaf mvpn-type { type enumeration { enum "intra-as-ipmsi-auto-discovery" { value 1; } enum "inter-as-ipmsi-auto-discovery" { value 2; } enum "s-pmsi-auto-discovery" { value 3; } enum "intra-as-segment-leaf-auto-discovery" { value 4; } enum "source-active-auto-discovery" { value 5; } enum "shared-tree-join" { value 6; } enum "source-tree-join" { value 7; } } description "MVPN type as match criterion for the entry"; } leaf origin { type enumeration { enum "igp" { value 2; } enum "egp" { value 3; } enum "incomplete" { value 4; } enum "any" { value 5; } enum "aaa" { value 6; } enum "dynamic" { value 7; } enum "static" { value 8; } enum "bonding" { value 9; } } description "Origin attribute as a match criterion"; } leaf origin-validation-state { type enumeration { enum "valid" { value 1; } enum "not-found" { value 2; } enum "invalid" { value 3; } } description "Origin attribute as a match criterion"; } leaf ospf-type { type int32 { range "1..2"; } description "OSPF type metric applied to un-matching route entries"; } leaf path-type { type enumeration { enum "ibgp" { value 2; } enum "ebgp" { value 3; } } description "Path type as a match criterion"; } leaf policy { type union { type string { length "1..255"; pattern ".*[\\[].*" { error-message "expression not valid."; } } type string; } description "Policy statement as a match criterion"; } leaf state { type enumeration { enum "srrp-master" { value 2; } enum "srrp-non-master" { value 3; } enum "ipsec-master-with-peer" { value 6; } enum "ipsec-master-without-peer" { value 7; } enum "ipsec-non-master" { value 8; } } description "State that is used as match criterion"; } leaf tag { type union { type int64 { range "1..4294967295"; } type enumeration { enum "no-tag" { value 0; } } } description "Route tag as match criterion"; } leaf color { type int64 { range "0..4294967295"; } description "Color ID as a match criterion"; } leaf distinguisher { type int64 { range "0..4294967295"; } description "SR policy distinguisher as a match criterion"; } leaf endpoint { type types-sros:ip-address; description "SR policy endpoint address as a match criterion"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container neighbor { description "Enter the neighbor context"; choice neighbor { case ip-address { leaf ip-address { type union { type types-sros:ip-address; type types-sros:ip-address-with-zone; } description "IP address to match the neighbor"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name to match the neighbor prefix list"; } } } } // container neighbor container interface-subnets { description "Enter the interface-subnets context"; leaf service { type string; default "Base"; description "Service-id of the interface subnets"; } leaf-list ip-int-name { type types-sros:interface-name; max-elements 10; ordered-by user; description "Interface name as match criterion"; } } // container interface-subnets container as-path { description "Enter the as-path context"; choice as-path { case name { leaf name { type union { type types-policy:param-midstring; type string; } description "AS Path regular expression statement as match criterion"; } } case group { leaf group { type union { type types-policy:param-midstring; type string; } description "AS Path Group as match criterion"; } } } container length { description "Enter the length context"; leaf value { type types-policy:value-255-param-name; description "AS numbers in the AS Path that match on the BGP route"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } leaf unique { type boolean; default "false"; description "Use unique AS numbers as matching criteria"; } } // container length } // container as-path container cluster-id { description "Enter the cluster-id context"; choice cluster-id { case ip-address { leaf-list ip-address { type types-sros:ipv4-prefix-with-host-bits; max-elements 5; ordered-by user; description "Cluster list attribute IP addresses for route matching"; } } case none-cluster-list { leaf none-cluster-list { type boolean; default "false"; description "Specify matching BGP routes without a cluster ID"; } } } } // container cluster-id container community { description "Enter the community context"; choice community { case name { leaf name { type union { type types-policy:param-midstring-64 { pattern "[^\\]\\[]+" { error-message "String must not contain square brackets ([])."; } } type string; } description "Community name to match"; } } case expression { leaf expression { type string { length "1..900"; } description "Community expression name as match criterion"; } } } container count { description "Enter the count context"; leaf value { type types-policy:value-param-1024-name; description "Number of BGP communities to match the BGP route"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } leaf type { type enumeration { enum "standard" { value 2; } enum "extended" { value 3; } enum "large" { value 4; } } description "Communities count to match the community count criteria"; } } // container count } // container community container flowspec { description "Enter the flowspec context"; leaf dest { type union { type types-policy:param-midstring; type string; } description "Match BGP flowspec routes per the destination IP prefix"; } leaf source { type union { type types-policy:param-midstring; type string; } description "Match BGP flowspec routes per the source IP prefix"; } } // container flowspec container local-preference { description "Enter the local-preference context"; leaf value { type types-policy:value-param-name-metric; description "BGP routes per local preference value or variable name"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } } // container local-preference container metric { description "Enter the metric context"; leaf value { type types-policy:value-param-name-metric; description "Local preference value, or variable name"; } leaf qualifier { type types-policy:policy-qualifier; default "equal"; description "Higher or lower values to be accepted as match criteria"; } } // container metric container next-hop { description "Enter the next-hop context"; choice next-hop { case ip-address { leaf ip-address { type types-sros:ip-unicast-address; description "IP address of next hop to match"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name of a next hop prefix list to match"; } } } } // container next-hop container protocol { description "Enter the protocol context"; leaf-list name { type enumeration { enum "direct" { value 2; } enum "static" { value 3; } enum "bgp" { value 4; } enum "isis" { value 5; } enum "ospf" { value 6; } enum "rip" { value 7; } enum "aggregate" { value 8; } enum "bgp-vpn" { value 9; } enum "igmp" { value 10; } enum "pim" { value 11; } enum "ospf3" { value 12; } enum "ldp" { value 13; } enum "sub-mgmt" { value 14; } enum "mld" { value 15; } enum "managed" { value 16; } enum "vpn-leak" { value 18; } enum "nat" { value 21; } enum "periodic" { value 22; } enum "ipsec" { value 23; } enum "dhcpv6-pd" { value 25; } enum "dhcpv6-na" { value 26; } enum "dhcpv6-ta" { value 27; } enum "dhcpv6-pd-excl" { value 28; } enum "ripng" { value 29; } enum "bgp-label" { value 31; } enum "direct-interface" { value 32; } enum "arp-nd" { value 33; } enum "rib-api" { value 34; } enum "evpn-ifl" { value 37; } } max-elements 5; description "List of protocol names as the match criterion"; } leaf instance { type union { type enumeration { enum "all" { value -1; } } type uint32 { range "0..31|64..95"; } } default "0"; description "Instance for protocol IS-IS, OSPF, or OSPFv3 to match"; } } // container protocol container source-address { description "Enter the source-address context"; choice source-address { case ip-address { leaf ip-address { type types-sros:ip-address; description "Source IP address to match"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name of a source address prefix list to match"; } } } } // container source-address container policy-variables { description "Enter the policy-variables context"; list name { key "variable-name"; max-elements 10; description "Enter the name list instance"; leaf variable-name { type types-policy:policy-var-name; description "Map a variable name to a value, a number, or address"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice variable-type { mandatory true; case value { leaf value { type types-sros:named-item; description "Variable name that is resolved to assigned value"; } } case number { leaf number { type uint64 { range "0..4294967295"; } description "Variable name that is resolved to assigned value"; } } case address { leaf address { type types-sros:ip-address; description "Variable name that is resolved to IP address"; } } case decimal { leaf decimal { type decimal64 { range "0.000..4294967295.000"; fraction-digits 3; } description "Attribute decimal to which variable-name is resolved"; } } } } // list name } // container policy-variables } // container from container to { presence "Enter the 'to' context"; description "Enable the to context"; leaf level { type int32 { range "1..2"; } description "ISIS route level as match criterion"; } leaf-list prefix-list { type union { type types-policy:param-midstring; type string; } max-elements 28; ordered-by user; description "Prefix list as match criterion"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container neighbor { description "Enter the neighbor context"; choice neighbor { case ip-address { leaf ip-address { type union { type types-sros:ip-address; type types-sros:ip-address-with-zone; } description "IP address to match the neighbor"; } } case prefix-list { leaf prefix-list { type union { type types-policy:param-midstring; type string; } description "Name to match the neighbor prefix list"; } } } } // container neighbor container protocol { description "Enter the protocol context"; leaf-list name { type enumeration { enum "bgp" { value 4; } enum "isis" { value 5; } enum "ospf" { value 6; } enum "rip" { value 7; } enum "bgp-vpn" { value 9; } enum "ospf3" { value 12; } enum "ldp" { value 13; } enum "vpn-leak" { value 18; } enum "ripng" { value 29; } enum "bgp-label" { value 31; } enum "evpn-ifl" { value 37; } } max-elements 2; description "Protocol name to match"; } leaf instance { type union { type enumeration { enum "all" { value -1; } } type uint32 { range "0..31|64..95"; } } default "0"; description "Instance for protocol ISIS, OSPF, or OSPF3"; } } // container protocol } // container to container action { presence "Enter the 'action' context"; description "Enable the action context"; leaf action-type { type enumeration { enum "accept" { value 1; } enum "reject" { value 2; } enum "next-entry" { value 3; } enum "next-policy" { value 4; } } mandatory true; description "Type of action for routes matching route policy entry"; } leaf add-paths-send-limit { type union { type int32 { range "1..16"; } type enumeration { enum "multipaths" { value -1; } } } description "BGP Add-Paths send limit that is applied for routes"; } leaf admin-tag-policy { type union { type types-policy:param-midstring-64; type string; } description "Administrative tag policy name"; } leaf advertise-label { type enumeration { enum "per-prefix" { value 1; } enum "pop" { value 2; } } description "Label allocation for matched BGP routes"; } leaf bgp-high-priority { type boolean; default "false"; description "Tag routes as high priority for faster table updates"; } leaf bgp-leak { type boolean; default "false"; description "Allow leaking for BGP routes"; } leaf create-udp-tunnel { type boolean; default "false"; description "Create an MPLS-over-UDP tunnel"; } leaf damping { type union { type enumeration { enum "none" { value 0; } } type types-policy:param-midstring; type string; } description "Damping profile for routes"; } leaf dest-class { type types-sros:class-index; description "Default destination class for the policy statement"; } leaf egress-statistics { type boolean; default "false"; description "Enable egress statistics for BGP-LU routes"; } leaf ingress-statistics { type boolean; default "false"; description "Enable ingress statistics for BGP-LU routes"; } leaf flex-algo { type types-policy:value-param-name-flex-algo; description "Flexible algorithm for BGP next-hop autobind operation"; } leaf install-backup-path { type boolean; default "false"; description "Install a preprogrammed backup path for the prefix"; } leaf local-preference { type types-policy:value-param-name-metric; description "BGP local preference for routes not matching any entry"; } leaf next-hop { type union { type enumeration { enum "peer-address" { value -2; } enum "self" { value -1; } } type types-sros:ip-address; type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Next-hop IP address applied to routes"; } leaf origin { type union { type enumeration { enum "igp" { value 2; } enum "egp" { value 3; } enum "incomplete" { value 4; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "BGP origin for routes that are exported into BGP"; } leaf origin-validation-state { type union { type enumeration { enum "valid" { value 1; } enum "not-found" { value 2; } enum "invalid" { value 3; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Origin validation state for routes"; } leaf preference { type union { type uint32 { range "1..255"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Route preference applied to routes"; } leaf resolve-static { type boolean; default "false"; description "Resolve next hop of static route for BGP next hop"; } leaf source-class { type types-sros:class-index; description "Default source class for the policy statement"; } leaf sticky-ecmp { type boolean; default "false"; description "Specify sticky ECMP flag for BGP ECMP routes"; } leaf tag { type union { type uint32 { range "1..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF RIP or ISIS tag applied to routes"; } leaf type { type union { type int32 { range "1..2"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF type metric applied to routes"; } leaf route-table-install { type boolean; default "true"; description "Allow installation in route table"; } leaf sr-maintenance-policy { type union { type types-policy:param-midstring; type string; } description "SR maintenance policy as an action"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container aigp-metric { description "Enter the aigp-metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "AIGP metric to add"; } } case set { leaf set { type types-policy:value-param-name-metric-igp; description "AIGP metric"; } } } } // container aigp-metric container as-path { description "Enter the as-path context"; choice action { case add { leaf add { type union { type types-policy:param-midstring; type string; } description "AS path to add"; } } case replace { leaf replace { type union { type types-policy:param-midstring; type string; } description "AS path to replace"; } } } } // container as-path container as-path-prepend { description "Enter the as-path-prepend context"; leaf as-path { type types-policy:value-param-name-range; description "AS number to prepend to AS path attribute"; } leaf repeat { type types-policy:repeat-value-param-name; default "1"; description "Number of times to prepend the specified AS number"; } } // container as-path-prepend container bgp-tunnel-metric { description "Enter the bgp-tunnel-metric context"; leaf value { type types-policy:value-param-name; description "BGP tunnel table metric value"; } leaf prefer-aigp { type boolean; default "false"; description "Use the AIGP attribute as tunnel metric when present"; } } // container bgp-tunnel-metric container metric { description "Enter the metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "Metric to add"; } } case subtract { leaf subtract { type types-policy:value-param-name-metric; description "Metric to subtract"; } } case set { leaf set { type union { type enumeration { enum "igp" { status obsolete; } } type int64 { range "0..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Metric to assign"; } } } } // container metric container multicast-redirection { description "Enter the multicast-redirection context"; leaf fwd-service { type string; default "Base"; description "Service ID for multicast redirection"; } leaf ip-int-name { type types-sros:interface-name; description "Interface index to redirect IGMP multicast traffic"; } } // container multicast-redirection container sr-label-index { description "Enter the sr-label-index context"; leaf value { type types-policy:value-524287-param-name; description "BGP SR label index associated with routes"; } leaf prefer-igp { type boolean; default "false"; description "Use the SR label index from the IGP route when present"; } } // container sr-label-index container bgp-med { description "Enter the bgp-med context"; choice action { case set { leaf set { type types-policy:value-param-name-bgp-med-igp; description "Assign BGP-MED"; } } case adjust { leaf adjust { type string { length "1..64"; pattern "(.*@.+@.*)|(.*_med_.*)|(.*_igp_.*)" { error-message "Expression must contain variable _igp_ or _med_ or @parameter@"; } pattern ".*[+\\-*].*" { error-message "Expression must contain one valid operator. Supported operators are +, - and *"; } } description "Adjust BGP-MED"; } } } } // container bgp-med container forwarding-class { description "Enter the forwarding-class context"; leaf fc { type enumeration { enum "be" { value 0; } enum "l2" { value 1; } enum "af" { value 2; } enum "l1" { value 3; } enum "h2" { value 4; } enum "ef" { value 5; } enum "h1" { value 6; } enum "nc" { value 7; } } description "Forwarding class associated with the route"; } leaf priority { type enumeration { enum "low" { value 1; } enum "high" { value 2; } } description "Route priority"; } } // container forwarding-class container community { description "Enter the community context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice action { case action1 { leaf-list add { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to add"; } leaf-list remove { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to remove"; } } case action2 { leaf-list replace { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to replace"; } } } } // container community } // container action } // list named-entry container default-action { presence "Enter the 'default-action' context"; description "Enable the default-action context"; leaf action-type { type enumeration { enum "accept" { value 1; } enum "reject" { value 2; } enum "next-entry" { value 3; } enum "next-policy" { value 4; } } mandatory true; description "Type of action for routes matching route policy entry"; } leaf add-paths-send-limit { type union { type int32 { range "1..16"; } type enumeration { enum "multipaths" { value -1; } } } description "BGP Add-Paths send limit that is applied for routes"; } leaf admin-tag-policy { type union { type types-policy:param-midstring-64; type string; } description "Administrative tag policy name"; } leaf advertise-label { type enumeration { enum "per-prefix" { value 1; } enum "pop" { value 2; } } description "Label allocation for matched BGP routes"; } leaf bgp-high-priority { type boolean; default "false"; description "Tag routes as high priority for faster table updates"; } leaf bgp-leak { type boolean; default "false"; description "Allow leaking for BGP routes"; } leaf create-udp-tunnel { type boolean; default "false"; description "Create an MPLS-over-UDP tunnel"; } leaf damping { type union { type enumeration { enum "none" { value 0; } } type types-policy:param-midstring; type string; } description "Damping profile for routes"; } leaf dest-class { type types-sros:class-index; description "Default destination class for the policy statement"; } leaf egress-statistics { type boolean; default "false"; description "Enable egress statistics for BGP-LU routes"; } leaf ingress-statistics { type boolean; default "false"; description "Enable ingress statistics for BGP-LU routes"; } leaf flex-algo { type types-policy:value-param-name-flex-algo; description "Flexible algorithm for BGP next-hop autobind operation"; } leaf install-backup-path { type boolean; default "false"; description "Install a preprogrammed backup path for the prefix"; } leaf local-preference { type types-policy:value-param-name-metric; description "BGP local preference for routes not matching any entry"; } leaf next-hop { type union { type enumeration { enum "peer-address" { value -2; } enum "self" { value -1; } } type types-sros:ip-address; type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Next-hop IP address applied to routes"; } leaf origin { type union { type enumeration { enum "igp" { value 2; } enum "egp" { value 3; } enum "incomplete" { value 4; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "BGP origin for routes that are exported into BGP"; } leaf origin-validation-state { type union { type enumeration { enum "valid" { value 1; } enum "not-found" { value 2; } enum "invalid" { value 3; } } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Origin validation state for routes"; } leaf preference { type union { type uint32 { range "1..255"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Route preference applied to routes"; } leaf resolve-static { type boolean; default "false"; description "Resolve next hop of static route for BGP next hop"; } leaf source-class { type types-sros:class-index; description "Default source class for the policy statement"; } leaf sticky-ecmp { type boolean; default "false"; description "Specify sticky ECMP flag for BGP ECMP routes"; } leaf tag { type union { type uint32 { range "1..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF RIP or ISIS tag applied to routes"; } leaf type { type union { type int32 { range "1..2"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "OSPF type metric applied to routes"; } leaf route-table-install { type boolean; default "true"; description "Allow installation in route table"; } leaf sr-maintenance-policy { type union { type types-policy:param-midstring; type string; } description "SR maintenance policy as an action"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container aigp-metric { description "Enter the aigp-metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "AIGP metric to add"; } } case set { leaf set { type types-policy:value-param-name-metric-igp; description "AIGP metric"; } } } } // container aigp-metric container as-path { description "Enter the as-path context"; choice action { case add { leaf add { type union { type types-policy:param-midstring; type string; } description "AS path to add"; } } case replace { leaf replace { type union { type types-policy:param-midstring; type string; } description "AS path to replace"; } } } } // container as-path container as-path-prepend { description "Enter the as-path-prepend context"; leaf as-path { type types-policy:value-param-name-range; description "AS number to prepend to AS path attribute"; } leaf repeat { type types-policy:repeat-value-param-name; default "1"; description "Number of times to prepend the specified AS number"; } } // container as-path-prepend container bgp-tunnel-metric { description "Enter the bgp-tunnel-metric context"; leaf value { type types-policy:value-param-name; description "BGP tunnel table metric value"; } leaf prefer-aigp { type boolean; default "false"; description "Use the AIGP attribute as tunnel metric when present"; } } // container bgp-tunnel-metric container metric { description "Enter the metric context"; choice action { case add { leaf add { type types-policy:value-param-name-metric; description "Metric to add"; } } case subtract { leaf subtract { type types-policy:value-param-name-metric; description "Metric to subtract"; } } case set { leaf set { type union { type enumeration { enum "igp" { status obsolete; } } type int64 { range "0..4294967295"; } type string { length "1..32"; pattern "@.+@" { error-message "String must start and end with an at-sign (@)"; } } } description "Metric to assign"; } } } } // container metric container multicast-redirection { description "Enter the multicast-redirection context"; leaf fwd-service { type string; default "Base"; description "Service ID for multicast redirection"; } leaf ip-int-name { type types-sros:interface-name; description "Interface index to redirect IGMP multicast traffic"; } } // container multicast-redirection container sr-label-index { description "Enter the sr-label-index context"; leaf value { type types-policy:value-524287-param-name; description "BGP SR label index associated with routes"; } leaf prefer-igp { type boolean; default "false"; description "Use the SR label index from the IGP route when present"; } } // container sr-label-index container bgp-med { description "Enter the bgp-med context"; choice action { case set { leaf set { type types-policy:value-param-name-bgp-med-igp; description "Assign BGP-MED"; } } case adjust { leaf adjust { type string { length "1..64"; pattern "(.*@.+@.*)|(.*_med_.*)|(.*_igp_.*)" { error-message "Expression must contain variable _igp_ or _med_ or @parameter@"; } pattern ".*[+\\-*].*" { error-message "Expression must contain one valid operator. Supported operators are +, - and *"; } } description "Adjust BGP-MED"; } } } } // container bgp-med container community { description "Enter the community context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice action { case action1 { leaf-list add { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to add"; } leaf-list remove { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to remove"; } } case action2 { leaf-list replace { type union { type types-policy:param-midstring-64; type string; } max-elements 28; ordered-by user; description "List of community names to replace"; } } } } // container community } // container default-action } // list policy-statement } // container policy-options list port { key "port-id"; description "Enter the port list instance"; leaf port-id { type types-sros:port; description "Unique port ID"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of this port"; } leaf description { type types-sros:long-description; description "Text description"; } leaf ddm-events { type boolean; default "true"; description "Enable Digital Diagnostic Monitoring (DDM) events"; } leaf monitor-agg-egress-queue-stats { type boolean; default "false"; description "Monitor aggregate queue statistics"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hybrid-buffer-allocation { description "Enter the hybrid-buffer-allocation context"; container egress-weight { description "Enter the egress-weight context"; leaf access { type uint32 { range "0..100"; } default "50"; description "Access weight for hybrid port"; } leaf network { type uint32 { range "0..100"; } default "50"; description "Access weight for hybrid port"; } } // container egress-weight container ingress-weight { description "Enter the ingress-weight context"; leaf access { type uint32 { range "0..100"; } default "50"; description "Access weight for hybrid port"; } leaf network { type uint32 { range "0..100"; } default "50"; description "Access weight for hybrid port"; } } // container ingress-weight } // container hybrid-buffer-allocation container modify-buffer-allocation { description "Enter the modify-buffer-allocation context"; container percentage-of-rate { description "Enter the percentage-of-rate context"; leaf egress { type uint32 { range "1..1000"; } description "Egress rate percentage"; } leaf ingress { type uint32 { range "1..1000"; } default "100"; description "Ingress rate percentage"; } } // container percentage-of-rate } // container modify-buffer-allocation container transceiver { description "Enter the transceiver context"; leaf digital-coherent-optics { type boolean; default "false"; description "Enable/disable digital coherent optics on the transceiver."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container transceiver container access { description "Enter the access context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; list pool { key "name"; description "Enter the pool list instance"; leaf name { type types-sros:named-item; description "Pool name for access port"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for amber alarm on oversubscription"; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for red alarm on oversubscription"; } leaf slope-policy { type leafref { path "../../../../../qos/slope-policy/slope-policy-name"; } description "Slope policy for high and low priority RED slope parameters and time average factor"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type union { type int32 { range "0..100"; } type enumeration { enum "auto" { value -1; } } } units "percent"; default "auto"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container egress container ingress { description "Enter the ingress context"; list pool { key "name"; description "Enter the pool list instance"; leaf name { type types-sros:named-item; description "Pool name for access port"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for amber alarm on oversubscription"; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for red alarm on oversubscription"; } leaf slope-policy { type leafref { path "../../../../../qos/slope-policy/slope-policy-name"; } description "Slope policy for high and low priority RED slope parameters and time average factor"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type union { type int32 { range "0..100"; } type enumeration { enum "auto" { value -1; } } } units "percent"; default "auto"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container ingress } // container access container connector { description "Enter the connector context"; leaf breakout { type enumeration { enum "c1-40g" { value 2; } enum "c4-10g" { value 3; } enum "c1-100g" { value 4; } enum "c4-25g" { value 5; } enum "c10-10g" { value 6; } enum "c1-400g" { value 8; } enum "c2-100g" { value 9; } enum "c4-100g" { value 10; } enum "c1-10g" { value 11; } enum "c1-25g" { value 13; } enum "c1-50g" { value 14; } } sros-ext:immutable; description "Breakout for this connector port"; } leaf rs-fec-mode { type enumeration { enum "cl91-514-528" { value 1; } enum "cl91-514-544" { value 2; } } description "Configure the RS FEC mode for this connector."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container connector container dwdm { description "Enter the dwdm context"; leaf channel { type types-port:optical-dwdm-channel; description "DWDM channel number"; } leaf rxdtv-adjust { type boolean; description "Adjust feedback for received decision threshold voltage"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container wavetracker { description "Enter the wavetracker context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container encode { presence "Enter the 'encode' context"; description "Enable the encode context"; leaf key1 { type uint32 { range "1..4095"; } mandatory true; description "Configure the first wavetracker key."; } leaf key2 { type uint32 { range "1..4095"; } mandatory true; description "Configure the second wavetracker key."; } } // container encode container power-control { presence "Enter the 'power-control' context"; description "Enable the power-control context"; leaf target-power { type decimal64 { range "-22..3"; fraction-digits 2; } units "decibel-milliwatts"; default "-20"; description "Configure desired average output power."; } } // container power-control container report-alarm { description "Enter the report-alarm context"; leaf encoder-failure { type boolean; default "true"; description "Enable/disable encoder-failure alarm."; } leaf encoder-degrade { type boolean; default "true"; description "Enable/disable encoder-degrade alarm."; } leaf power-control-failure { type boolean; default "true"; description "Enable/disable power-control-failure alarm."; } leaf power-control-degrade { type boolean; default "true"; description "Enable/disable power-control-degrade alarm."; } leaf power-control-high-limit { type boolean; default "true"; description "Enable/disable power-control-high-limit alarm."; } leaf power-control-low-limit { type boolean; default "true"; description "Enable/disable power-control-low-limit alarm."; } leaf missing-pluggable-voa { type boolean; default "true"; description "Enable/disable missing-pluggable-voa alarm."; } } // container report-alarm } // container wavetracker container coherent { description "Enter the coherent context"; leaf channel { type types-port:optical-dwdm-channel; description "Received channel number"; } leaf compatibility { type types-port:optical-compatibility-mode; default "long-haul"; description "Optical mode and rate of operation"; } leaf cpr-window-size { type uint32 { range "2|4|8|16|32|64"; } units "symbols"; default "32"; description "Window size for the carrier phase recovery"; } leaf dispersion { type int32 { range "-50000..50000"; } units "picoseconds per nanometer"; description "Dispersion compensation"; } leaf mode { type types-port:optical-dispersion-control-mode; default "automatic"; description "Dispersion algorithm mode"; } leaf rx-los-reaction { type types-port:los-reaction; default "squelch"; description "Reaction to RX LOS"; } leaf rx-los-thresh { type decimal64 { range "-30..-13"; fraction-digits 2; } units "decibel-milliwatts"; default "-23"; description "LOS threshold of the average input power"; } leaf target-power { type decimal64 { range "-20..3"; fraction-digits 2; } units "decibel-milliwatts"; default "1"; description "Target for average of the output power"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container report-alarm { description "Enter the report-alarm context"; leaf modflt { type boolean; default "true"; description "Report module fault alarm"; } leaf mod { type boolean; default "true"; description "Report module alarm"; } leaf netrx { type boolean; default "true"; description "Report network (optical side) receive alarm"; } leaf nettx { type boolean; default "true"; description "Report network (optical side) transmit alarm"; } leaf hosttx { type boolean; default "true"; description "Report host (electrical side) transmit alarm"; } } // container report-alarm container sweep { description "Enter the sweep context"; leaf start { type int32 { range "-50000..50000"; } units "picoseconds per nanometer"; default "-25500"; description "Start value of dispersion sweeping"; } leaf end { type int32 { range "-50000..50000"; } units "picoseconds per nanometer"; default "2000"; description "End value of dispersion sweeping"; } } // container sweep } // container coherent } // container dwdm container ethernet { description "Enter the ethernet context"; leaf accounting-policy { type leafref { path "../../../log/accounting-policy/policy-id"; } description "Accounting policy that applies to the Ethernet port"; } leaf autonegotiate { type enumeration { enum "true" { value 1; } enum "false" { value 2; } enum "limited" { value 3; } } description "Speed and duplex autonegotiation on the Ethernet port"; } leaf collect-stats { type boolean; default "false"; description "Collect statistical data on the Ethernet port"; } leaf dot1q-etype { type types-port:etype; default "33024"; description "Dot1q Ethertype on the Ethernet port"; } leaf duplex { type types-port:duplex-mode; description "Duplex type for the Ethernet port"; } leaf lacp-tunnel { type boolean; default "false"; description "Allow LACP packet tunneling for the Ethernet port"; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Load balancing algorithm for the Ethernet port"; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "MAC address for the Ethernet port"; } leaf min-frame-length { type uint32 { range "64|68"; } units "bytes"; default "64"; description "Minimum transmitted frame length for the Ethernet port"; } leaf mode { type types-port:mode; description "Mode for the Ethernet port"; } leaf encap-type { type types-port:ethernet-encap-type; description "Encapsulation method for the Ethernet port"; } leaf mtu { type uint32 { range "512..9800"; } units "bytes"; description "Maximum payload MTU size for the Ethernet port"; } leaf pbb-etype { type types-port:etype; default "35047"; description "Ethertype for PBB encapsulation on the Ethernet port"; } leaf ptp-asymmetry { type int32; units "nanoseconds"; description "PTP asymmetry delay delta of the Ethernet port"; } leaf qinq-etype { type types-port:etype; default "33024"; description "Ethertype for QinQ encapsulation on the Ethernet port"; } leaf rs-fec-mode { type enumeration { enum "cl91-514-528" { value 1; } enum "cl74" { value 2; } enum "cl108" { value 3; } } description "RS-FEC mode on the Ethernet port"; } leaf single-fiber { type boolean; default "false"; description "Allow packet redirection of IP packets from single fiber on the Ethernet port"; } leaf speed { type uint32 { range "10|100|1000|10000|25000|40000|50000|100000"; } units "megabps"; description "Speed of the Ethernet port"; } leaf util-stats-interval { type uint32 { range "30..600"; } units "seconds"; default "300"; description "Interval to calculate the utilization statistics of the Ethernet port"; } leaf xgig { type enumeration { enum "lan" { value 1; } enum "wan" { value 2; if-feature nokia-features:sros-xgig-wan; } } description "LAN or WAN mode for the Ethernet port"; } leaf discard-rx-pause-frames { type boolean; default "false"; description "Discard received pause frames"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container down-on-internal-error { presence "Enter the 'down-on-internal-error' context"; description "Enable the down-on-internal-error context"; leaf tx-laser { type enumeration { enum "off" { value 1; } enum "on" { value 2; } } default "on"; description "Remote laser on internal errors"; } } // container down-on-internal-error container hold-time { description "Enter the hold-time context"; leaf units { type enumeration { enum "seconds" { value 0; } enum "centiseconds" { value 1; } } default "seconds"; description "Units of hold timers"; } leaf up { type uint32 { range "1..3600000"; } description "Hold time for link-down event dampening"; } leaf down { type uint32 { range "1..3600000"; } description "Hold time for link-down event dampening"; } } // container hold-time container loopback { description "Enter the loopback context"; leaf direction { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } } description "Direction of loopback."; } leaf swap-src-dst-mac { type boolean; default "false"; description "Enable/disable swapping of source and destination MAC addresses."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container loopback container report-alarm { description "Enter the report-alarm context"; leaf signal-fail { type boolean; description "Report an Ethernet signal lost alarm"; } leaf remote { type boolean; description "Report remote faults"; } leaf local { type boolean; description "Report local faults"; } leaf frame-not-locked { type boolean; description "Enable/disable frame-not-locked alarm."; } leaf high-ber { type boolean; description "Report High Bit Error Rate alarm"; } leaf block-not-locked { type boolean; description "Enable/disable block-not-locked alarm."; } leaf alignment-marker-not-locked { type boolean; description "Enable/disable alignment-marker-not-locked alarm."; } leaf duplicate-lane { type boolean; description "Report PCS Duplicate Lane Marker alarm"; } } // container report-alarm container crc-monitor { description "Enter the crc-monitor context"; leaf window-size { type uint32 { range "5..60"; } units "seconds"; default "10"; description "Window size of the monitor"; } container signal-degrade { description "Enter the signal-degrade context"; leaf threshold { type uint32 { range "1..9"; } description "SD threshold"; } leaf multiplier { type uint32 { range "1..9"; } default "1"; description "SD multiplier"; } } // container signal-degrade container signal-failure { description "Enter the signal-failure context"; leaf threshold { type uint32 { range "1..9"; } description "SF threshold"; } leaf multiplier { type uint32 { range "1..9"; } default "1"; description "SF multiplier"; } } // container signal-failure } // container crc-monitor container dampening { description "Enter the dampening context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of exponential port dampening on the port"; } leaf half-life { type uint32 { range "1..2000"; } units "seconds"; default "5"; description "Half-life decay time"; } leaf max-suppress-time { type uint32 { range "1..43200"; } units "seconds"; default "20"; description "Maximum time for which the port-up state is suppressed"; } leaf reuse-threshold { type uint32 { range "1..20000"; } units "penalties"; default "1000"; description "Port-up state no longer suppressed after penalties fall below reuse threshold"; } leaf suppress-threshold { type uint32 { range "1..20000"; } units "penalties"; default "2000"; description "Penalties threshold above which port-up state is suppressed"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dampening container down-when-looped { description "Enter the down-when-looped context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of physical loop detection"; } leaf keep-alive { type uint32 { range "1..120"; } units "seconds"; default "10"; description "Time interval between keep-alive PDUs"; } leaf retry-timeout { type uint32 { range "0|10..160"; } units "seconds"; default "120"; description "Minimum time before re-enabling the port after loop detection"; } leaf use-broadcast-address { type boolean; default "false"; description "Broadcast MAC address for destination MAC address"; } } // container down-when-looped container eth-cfm { description "Enter the eth-cfm context"; list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf vlan { type types-eth-cfm:vlan-id-or-none; sros-ext:immutable; default "none"; description "Unique VLAN ID for a specific VLAN"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf facility-fault { type boolean; default "false"; description "Allow the facility MEP to generate a network action"; } leaf-list ccm-tlv-ignore { type types-eth-cfm:ccm-tlv-ignore-type; max-elements 2; description "TLV to ignore on reception"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace container eth-bn { description "Enter the eth-bn context"; leaf receive { type boolean; default "false"; description "Accept and process ETH-BN messages"; } leaf rx-update-pacing { type uint32 { range "1..600"; } default "5"; description "Pacing of update messages to QoS"; } } // container eth-bn } // list mep } // container eth-cfm container hsmda-scheduler-overrides { status obsolete; presence "Enter the 'hsmda-scheduler-overrides' context"; description "Enable the hsmda-scheduler-overrides context"; leaf max-rate { status obsolete; type types-qos:hs-pir-rate-override; units "megabps"; description "Maximum rate to override the QoS scheduler policy"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group { status obsolete; key "group-id"; description "Enter the group list instance"; leaf group-id { status obsolete; type uint32 { range "1..2"; } description "Group ID"; } leaf rate { status obsolete; type types-qos:hs-pir-rate-override; units "megabps"; description "Ingress and egress HSMDA scheduler override"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list group list scheduling-class { status obsolete; key "class-number"; description "Enter the scheduling-class list instance"; leaf class-number { status obsolete; type uint32 { range "1..8"; } description "Unique value of the class"; } leaf rate { status obsolete; type types-qos:hs-pir-rate-override; units "megabps"; description "Maximum bandwidth limit for this HSMDA scheduler policy"; } leaf weight-in-group { status obsolete; type int32 { range "1..100"; } description "Weight that the HSMDA scheduler policy applies to this policy"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list scheduling-class } // container hsmda-scheduler-overrides container ingress { description "Enter the ingress context"; leaf rate { type int32 { range "1..400000"; } units "megabps"; description "Maximum ingress bandwidth that this Ethernet port can receive"; } } // container ingress container elmi { description "Enter the elmi context"; leaf mode { type enumeration { enum "uni-n" { value 1; } } description "Configure the Ethernet LMI Mode."; } leaf n393 { type uint32 { range "2..10"; } default "4"; description "Configure the monitored count of consecutive errors."; } leaf t391 { type uint32 { range "5..30"; } units "seconds"; default "10"; description "Configure Polling Timer for UNI-C."; } leaf t392 { type uint32 { range "5..30"; } units "seconds"; default "15"; description "Configure the polling verification timer for UNI-N."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container elmi container ssm { description "Enter the ssm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of SSM"; } leaf code-type { type enumeration { enum "sonet" { value 2; } enum "sdh" { value 3; } } default "sdh"; description "SSM channel to use either sonet or SDH"; } leaf esmc-tunnel { type boolean; default "false"; description "Tunnel ESMC frames in Epipe or VPLS services"; } leaf tx-dus { type boolean; description "Transmit value of QL-DUS/QL-DNU in SSM messaging channel"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ssm container symbol-monitor { description "Enter the symbol-monitor context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of symbol monitoring on the port"; } leaf window-size { type uint32 { range "5..60"; } units "seconds"; default "10"; description "Window size of the monitor"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container signal-degrade { description "Enter the signal-degrade context"; leaf threshold { type uint32 { range "1..9"; } description "SD threshold"; } leaf multiplier { type uint32 { range "1..9"; } default "1"; description "SD multiplier"; } } // container signal-degrade container signal-failure { description "Enter the signal-failure context"; leaf threshold { type uint32 { range "1..9"; } description "SF threshold"; } leaf multiplier { type uint32 { range "1..9"; } default "1"; description "SF multiplier"; } } // container signal-failure } // container symbol-monitor container access { description "Enter the access context"; leaf bandwidth { type uint64 { range "1..6400000000"; } units "kilobps"; description "Bandwidth of the Ethernet port"; } leaf booking-factor { type uint32 { range "1..1000"; } default "100"; description "Booking factor of the Ethernet port"; } leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "Configure accounting policy for the ethernet port access queue."; } leaf collect-stats { type boolean; default "false"; description "Enable/Disable collection of statistics on this queue."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; list queue-group { key "queue-group-name instance-id"; description "Enter the queue-group list instance"; leaf queue-group-name { type leafref { path "../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Queue group name"; } leaf instance-id { type uint16 { range "1..65535"; } description "Instance ID"; } leaf accounting-policy { type leafref { path "../../../../../../log/accounting-policy/policy-id"; } description "Accounting policy for the Ethernet port egress queue group"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics on this queue group"; } leaf description { type types-sros:description; description "Text description"; } leaf hs-turbo { type boolean; default "false"; description "Allow corresponding HSQ queue group queues to achieve a higher throughput"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container aggregate-rate { description "Enter the aggregate-rate context"; leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf limit-unused-bandwidth { type boolean; default "false"; description "Specify whether to enable limit unused bandwidth."; } leaf rate { type union { type uint32 { range "1..3200000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specify aggregate rate limit."; } } // container aggregate-rate container host-match { description "Enter the host-match context"; list int-dest-id { key "destination-string"; description "Add a list entry for int-dest-id"; leaf destination-string { type types-submgt:int-dest-id; description "Specifies the destination string."; } } // list int-dest-id } // container host-match container hsmda-queue-overrides { status obsolete; description "Enter the hsmda-queue-overrides context"; leaf packet-byte-offset { status obsolete; type types-qos:egress-per-packet-offset-override; description "Packet offset for HSMDA queue accounting"; } leaf secondary-shaper { status obsolete; type leafref { path "../../../../../egress/expanded-secondary-shaper/secondary-shaper-name"; } description "HSMDA egress secondary shaper"; } leaf wrr-policy { status obsolete; type leafref { path "../../../../../../../qos/hsmda-wrr-policy/hsmda-wrr-policy-name"; } description "HSMDA egress WRR policy"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group[egress-queue-group-name=current()/../../../queue-group-name]/hsmda-queues/queue/queue-id"; } description "HSMDA queue overrides queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Maximum buffer space override"; } leaf rate { status obsolete; type types-qos:pir-rate-override; units "kilobps"; description "PIR"; } leaf slope-policy { status obsolete; type leafref { path "../../../../../../../../qos/hsmda-slope-policy/hsmda-slope-policy-name"; } description "Slope policy"; } leaf wrr-weight { status obsolete; type int32 { range "1..32"; } description "Weighted round robin (WRR)"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list queue } // container hsmda-queue-overrides container queue-overrides { description "Enter the queue-overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group[egress-queue-group-name=current()/../../../queue-group-name]/queue/queue-id"; } description "Queue overrides queue ID"; } leaf cbs { type types-qos:burst-size-override; description "CBS rate"; } leaf mbs { type types-qos:queue-burst-size-override; units "bytes"; description "MBS rate"; } leaf burst-limit { type types-qos:burst-limit-override; description "Burst limit"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Enable queue depth monitoring"; } choice queue-override-rate { default "rate"; case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf cir { type types-qos:cir-percent-override; units "percent"; description "CIR percent rate"; } leaf pir { type types-qos:pir-percent-override; units "percent"; description "PIR percent rate"; } } // container percent-rate } case rate { container rate { description "Enter the rate context"; leaf cir { type types-qos:queue-cir-rate-override; units "kilobps"; description "CIR rate"; } leaf pir { type types-qos:queue-pir-rate-override; units "kilobps"; description "PIR rate"; } } // container rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth } // list queue } // container queue-overrides container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy for the QoS egress queue group"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent"; } leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent"; } } // container parent container rate { description "Enter the rate context"; leaf cir { type types-qos:sched-cir-rate-ovr; units "kilobps"; description "CIR rate"; } leaf pir { type types-qos:sched-pir-rate-ovr; units "kilobps"; description "PIR rate"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // list queue-group list virtual-port { key "vport-name"; description "Enter the virtual-port list instance"; leaf vport-name { type types-sros:named-item; description "Specifies the name of the virtual port on the port."; } leaf description { type types-sros:description; description "Text description"; } leaf monitor-port-scheduler { type boolean; default "false"; description "Enable/Disable monitoring of port scheduler."; } leaf multicast-hqos-adjustment { type boolean; default "false"; description "Enable/disable the egress rate modification."; } leaf port-scheduler-policy { type leafref { path "../../../../../../qos/port-scheduler-policy/name"; } description "Configure port scheduler policy."; } leaf scheduler-policy { type leafref { path "../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Apply an egress scheduler policy."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container aggregate-rate { description "Enter the aggregate-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Specify whether to enable limit unused bandwidth."; } leaf rate { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specify aggregate rate limit."; } } // container aggregate-rate container host-match { description "Enter the host-match context"; list int-dest-id { key "destination-string"; description "Add a list entry for int-dest-id"; leaf destination-string { type types-submgt:int-dest-id; description "Specifies the destination string."; } } // list int-dest-id } // container host-match } // list virtual-port } // container egress container ingress { description "Enter the ingress context"; list queue-group { key "queue-group-name"; description "Enter the queue-group list instance"; leaf queue-group-name { type leafref { path "../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Queue group name"; } leaf accounting-policy { type leafref { path "../../../../../../log/accounting-policy/policy-id"; } description "Accounting policy for the Ethernet port egress queue group"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics on this queue group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container queue-overrides { description "Enter the queue-overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../qos/queue-group-templates/ingress/queue-group[ingress-queue-group-name=current()/../../../queue-group-name]/queue/queue-id"; } description "Queue overrides queue ID"; } leaf cbs { type types-qos:burst-size-override; description "CBS rate"; } leaf mbs { type types-qos:queue-burst-size-override; units "bytes"; description "MBS rate"; } leaf monitor-depth { type boolean; default "false"; description "Enable queue depth monitoring"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container rate { description "Enter the rate context"; leaf cir { type types-qos:queue-cir-rate-override; units "kilobps"; description "CIR rate"; } leaf pir { type types-qos:queue-pir-rate-override; units "kilobps"; description "PIR rate"; } } // container rate } // list queue } // container queue-overrides container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy for the Ethernet port ingress queue group"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent"; } leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent"; } } // container parent container rate { description "Enter the rate context"; leaf cir { type types-qos:sched-cir-rate-ovr; units "kilobps"; description "CIR rate"; } leaf pir { type types-qos:sched-pir-rate-ovr; units "kilobps"; description "PIR rate"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // list queue-group } // container ingress } // container access container dot1x { description "Enter the dot1x context"; leaf max-authentication-requests { type uint32 { range "1..10"; } default "2"; description "Maximum number of times the router sends access request RADIUS message to RADIUS server"; } leaf port-control { type types-port:pae-controlled-port-control; default "force-authorized"; description "802.1x authentication mode"; } leaf quiet-period { type uint32 { range "1..3600"; } units "seconds"; default "60"; description "Time between two authentication sessions during which no EAPOL frames are sent by router"; } leaf radius-policy { type leafref { path "../../../../system/security/dot1x/radius-policy/policy-name"; } description "Authentication server policy"; } leaf server-timeout { type uint32 { range "1..300"; } units "seconds"; default "30"; description "Time during which router waits for RADIUS server to respond to its access request message"; } leaf supplicant-timeout { type uint32 { range "1..300"; } units "seconds"; default "30"; description "Time during which router waits for a client to respond to its EAPOL messages"; } leaf transmit-period { type uint32 { range "1..3600"; } units "seconds"; default "30"; description "Time after which router sends a new EAPOL request message"; } leaf tunneling { type boolean; default "false"; description "Allow tunneling of untagged 802.1x frames received on a port"; } leaf tunnel-dot1q { type boolean; default "true"; description "Enable/disable dot1x tunneling for IEEE 802.1Q tagged frames."; } leaf tunnel-qinq { type boolean; default "true"; description "Enable/disable dot1x tunneling for IEEE 802.1ad tagged frames."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice radius-server-policy-config { case common { leaf radius-server-policy { type leafref { path "../../../../aaa/radius/server-policy/name"; } description "RADIUS server policy name"; } } case split { leaf radius-server-policy-auth { type leafref { path "../../../../aaa/radius/server-policy/name"; } description "RADIUS server policy name for authentication"; } leaf radius-server-policy-acct { type leafref { path "../../../../aaa/radius/server-policy/name"; } description "RADIUS server policy name for accounting"; } } } container macsec { description "Enter the macsec context"; leaf rx-must-be-encrypted { type boolean; default "false"; description "Drop all port traffic that is not MACsec-secured"; } leaf exclude-mac-policy { type leafref { path "../../../../../macsec/mac-policy/mac-policy-id"; } description "Configure the policy of mac addresses to be excluded."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container exclude-protocol { description "Enter the exclude-protocol context"; leaf cdp { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for CDP (protocol)"; } leaf eapol-start { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for EAPOL (protocol)"; } leaf lacp { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for LACP (protocol)"; } leaf lldp { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for LLDP (protocol)"; } leaf efm-oam { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for EFM OAM (protocol)"; } leaf eth-cfm { type boolean; default "false"; description "Disable MACsec for all packets that are sent and received on the link for ETH CFM (protocol)"; } leaf ptp { type boolean; default "false"; description "Enable/disable PTP protocol."; } leaf ubfd { type boolean; default "false"; description "Enable/disable UBFD protocol."; } } // container exclude-protocol list sub-port { key "sub-port-id"; description "Enter the sub-port list instance"; leaf sub-port-id { type uint32 { range "1..1023"; } description "Specifies the sub-port ID on the port."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MACsec on this port"; } leaf ca-name { type leafref { path "../../../../../../macsec/connectivity-association/ca-name"; } description "Configure the connectivity association to be used for this port."; } leaf eapol-destination-address { type yang:mac-address; description "Configure the eapol destination address."; } leaf max-peers { type uint32 { range "1..32"; } sros-ext:auto-restart-to-modify; description "Configure the max number of peers supported on this port."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container encap-match { description "Enter the encap-match context"; choice encap { default "all-match"; case all-match { leaf all-match { type boolean; default "true"; description "Configure encap match to all."; } } case untagged { leaf untagged { type boolean; description "Configure encap match to untagged."; } } case single-tag { leaf single-tag { type types-sros:single-vlan-encap; description "Configure encap match to single tag."; } } case double-tag { leaf double-tag { type types-sros:double-vlan-encap; description "Configure encap match to double-tag."; } } } } // container encap-match } // list sub-port } // container macsec container re-authentication { presence "Enter the 're-authentication' context"; description "Enable the re-authentication context"; leaf period { type uint32 { range "1..9000"; } units "seconds"; default "3600"; description "Re-authentication period"; } } // container re-authentication container per-host-authentication { description "Enter the per-host-authentication context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of per-host authentication"; } leaf authenticator-init { type boolean; default "true"; description "Initiate per-host authentication"; } container allowed-source-macs { description "Enter the allowed-source-macs context"; list mac-address { key "mac"; description "Add a list entry for mac-address"; leaf mac { type yang:mac-address; description "Source MAC address of a host selected for authentication"; } } // list mac-address } // container allowed-source-macs } // container per-host-authentication } // container dot1x container efm-oam { description "Enter the efm-oam context"; leaf accept-remote-loopback { type boolean; default "false"; description "Enable reactions to loopback control OAM PDUs from peers"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EFM OAM operation"; } leaf dying-gasp-tx-on-reset { type boolean; default "true"; description "Allow generation of Information OAM PDU when EFM application receives soft reset notification"; } leaf grace-tx { type boolean; description "Allow sending of EFM OAM grace period messages"; } leaf grace-vendor-oui { type string; default "00:16:4D"; description "EFM OAM grace vendor unique ID"; } leaf hold-time { type uint32 { range "1..50"; } units "seconds"; description "Time EFM OAM protocol waits before returning to operational state after leaving operational state"; } leaf ignore-efm-state { type boolean; default "false"; description "Suppress port operational state changes due to any EFM OAM protocol fault condition"; } leaf mode { type enumeration { enum "passive" { value 1; } enum "active" { value 2; } } default "active"; description "EFM OAM DTE mode"; } leaf transmit-interval { type uint32 { range "1..600"; } units "deciseconds"; default "10"; description "Transmit interval of OAMPDUs"; } leaf multiplier { type uint32 { range "2..5"; } default "5"; description "Multiplier of OAMPDUs"; } leaf trigger-fault { type enumeration { enum "dying-gasp" { value 2; } enum "critical-event" { value 3; } } description "Flag field to be set in the Information OAM PDU"; } leaf tunneling { type boolean; default "false"; description "Allow EFM OAM PDU tunneling"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container discovery { description "Enter the discovery context"; container advertise-capabilities { description "Enter the advertise-capabilities context"; leaf link-monitoring { type boolean; default "true"; description "Advertise link monitoring capabilities to peer"; } } // container advertise-capabilities } // container discovery container link-monitoring { description "Enter the link-monitoring context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of link monitoring on the port"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container errored-frame { description "Enter the errored-frame context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of link monitoring on the port"; } leaf event-notification { type boolean; default "true"; description "Configure if event notification OAMPDUs are transmitted with the TLVs."; } leaf sd-threshold { type uint32 { range "1..1000000"; } description "Configure the signal degrade threshold."; } leaf sf-threshold { type uint32 { range "1..1000000"; } default "1"; description "Configure the signal failure threshold."; } leaf window { type uint32 { range "10..600"; } units "deciseconds"; default "10"; description "Configure the window."; } } // container errored-frame container errored-frame-period { description "Enter the errored-frame-period context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of link monitoring on the port"; } leaf event-notification { type boolean; default "true"; description "Configure if event notification OAMPDUs are transmitted with the TLVs."; } leaf sd-threshold { type uint32 { range "1..1000000"; } description "Configure the signal degrade threshold."; } leaf sf-threshold { type uint32 { range "1..1000000"; } default "1"; description "Configure the signal failure threshold."; } leaf window { type uint32 { range "1..4294967295"; } units "packets"; default "1488095"; description "Configure the window."; } } // container errored-frame-period container errored-frame-seconds { description "Enter the errored-frame-seconds context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of link monitoring on the port"; } leaf event-notification { type boolean; default "true"; description "Configure if event notification OAMPDUs are transmitted with the TLVs."; } leaf sd-threshold { type uint32 { range "1..900"; } description "Configure the signal degrade threshold."; } leaf sf-threshold { type uint32 { range "1..900"; } default "1"; description "Configure the signal failure threshold."; } leaf window { type uint32 { range "100..9000"; } units "deciseconds"; default "600"; description "Configure the window."; } } // container errored-frame-seconds container errored-symbols { description "Enter the errored-symbols context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of link monitoring on the port"; } leaf event-notification { type boolean; default "true"; description "Configure if event notification OAMPDUs are transmitted with the TLVs."; } leaf sd-threshold { type uint32 { range "1..1000000"; } description "Configure the signal degrade threshold."; } leaf sf-threshold { type uint32 { range "1..1000000"; } default "1"; description "Configure the signal failure threshold."; } leaf window { type uint32 { range "10..600"; } units "deciseconds"; default "10"; description "Configure the window."; } } // container errored-symbols container local-sf-action { description "Enter the local-sf-action context"; leaf event-notification-burst { type uint32 { range "1..5"; } units "packets"; default "1"; description "Configure the number of event notification OAMPDUs to burst."; } leaf local-port-action { type types-port:efm-oam-local-port-action; default "port-out-of-service"; description "Configure the local port action."; } container info-notification { description "Enter the info-notification context"; leaf critical-event { type boolean; default "false"; description "Set/clear the Critical Event flag."; } leaf dying-gasp { type boolean; default "false"; description "Set/clear the Dying Gasp flag."; } } // container info-notification } // container local-sf-action } // container link-monitoring container peer-rdi-rx { description "Enter the peer-rdi-rx context"; leaf critical-event { type types-port:efm-oam-local-port-action; default "port-out-of-service"; description "Action for local port when critical event is received from peer"; } leaf dying-gasp { type types-port:efm-oam-local-port-action; default "port-out-of-service"; description "Action for local port when dying gasp is received from the peer"; } leaf event-notification { type types-port:efm-oam-local-port-action; default "log-only"; description "Action for local port when event notification OAMPDU is received from peer"; } leaf link-fault { type types-port:efm-oam-local-port-action; default "port-out-of-service"; description "Action for local port when link fault is received from peer"; } } // container peer-rdi-rx } // container efm-oam container egress { description "Enter the egress context"; leaf hs-port-pool-policy { type leafref { path "../../../../qos/hs-port-pool-policy/name"; } description "HS port pool policy"; } leaf monitor-port-scheduler { type boolean; default "false"; description "Enable/disable monitoring of egress scheduler on the Ethernet port."; } leaf rate { type int32 { range "1..400000000"; } units "kilobps"; description "Maximum egress bandwidth that this Ethernet port can receive"; } leaf eth-bn-rate-changes { type boolean; default "false"; description "Receive rate changes in Ethernet Bandwidth Notification (Eth-BN) messages to update egress rate"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf hsmda-scheduler-policy { status obsolete; type leafref { path "../../../../qos/hsmda-scheduler-policy/hsmda-scheduler-policy-name"; } description "HSMDA scheduler policy"; } container port-qos-policy { description "Enter the port-qos-policy context"; leaf policy-name { type leafref { path "../../../../../qos/port-qos-policy/port-qos-policy-name"; } description "Port qos policy name"; } } // container port-qos-policy list expanded-secondary-shaper { status obsolete; key "secondary-shaper-name"; description "Enter the expanded-secondary-shaper list instance"; leaf secondary-shaper-name { status obsolete; type types-sros:named-item; description "Name for the expanded secondary shaper"; } leaf low-burst-max-class { status obsolete; type uint32 { range "1..8"; } default "8"; description "Class to associate with the Ethernet egress expanded secondary shaper"; } leaf monitor-threshold { status obsolete; type types-qos:secondary-shaper-class-threshold; description "Monitoring threshold for non-conformance burst"; } leaf rate { status obsolete; type types-qos:secondary-shaper-pir-rate; default "max"; description "Rate of the expanded secondary shaper"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container aggregate-burst { status obsolete; description "Enter the aggregate-burst context"; leaf high-burst-increase { status obsolete; type int32 { range "0..65528"; } units "bytes"; description "High burst increase"; } leaf low-burst-limit { status obsolete; type types-qos:class-burst-limit; units "bytes"; description "Low burst limit"; } } // container aggregate-burst list class { status obsolete; key "class-number"; description "Enter the class list instance"; leaf class-number { status obsolete; type uint32 { range "1..8"; } description "Unique value of the class"; } leaf rate { status obsolete; type types-qos:secondary-shaper-pir-rate; default "max"; description "Class rate"; } leaf monitor-threshold { status obsolete; type types-qos:secondary-shaper-class-threshold; description "Monitoring threshold for non-conformance burst of the class"; } leaf burst-limit { status obsolete; type types-qos:class-burst-limit; units "bytes"; description "Class identifier of the low burst maximum class"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list class } // list expanded-secondary-shaper container hs-scheduler-policy { description "Enter the hs-scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../qos/hs-scheduler-policy/name"; } description "HS scheduler policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf max-rate { type types-qos:hs-pir-rate-override; units "megabps"; description "Configure the maximum rate."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group { key "group-id"; description "Enter the group list instance"; leaf group-id { type uint32 { range "1"; } description "Specifies the group identifier."; } leaf rate { type types-qos:hs-pir-rate-override; units "megabps"; description "Configure a group rate."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list group list scheduling-class { key "class-number"; description "Enter the scheduling-class list instance"; leaf class-number { type uint32 { range "1..6"; } description "The unique value of the class."; } leaf rate { type types-qos:hs-pir-rate-override; units "megabps"; description "Configure the rate of the scheduling class."; } leaf weight { type types-qos:hs-wrr-weight-override; description "Configure the weight of the scheduling class."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list scheduling-class } // container overrides } // container hs-scheduler-policy container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../qos/port-scheduler-policy/name"; } description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:sched-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type uint32 { range "1..8"; } description "Specifies the priority level of the port scheduler override."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:sched-pir-rate-ovr; units "kilobps"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:sched-cir-rate-ovr; units "kilobps"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type types-qos:pir-percent-override; units "percent"; description "Configure the PIR rate as a percent."; } leaf cir { type types-qos:cir-percent-override; units "percent"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy list hs-secondary-shaper { key "secondary-shaper-name"; description "Enter the hs-secondary-shaper list instance"; leaf secondary-shaper-name { type types-sros:named-item; description "Specifies the expanded secondary shaper name on the egress side."; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container aggregate { description "Enter the aggregate context"; leaf low-burst-max-class { type uint32 { range "1..6"; } default "6"; description "Specify the low burst max class."; } leaf rate { type union { type int32 { range "1..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specify the aggregate rate."; } } // container aggregate list class { key "class-number"; description "Enter the class list instance"; leaf class-number { type uint32 { range "1..6"; } description "The unique value of the class."; } leaf rate { type union { type int32 { range "1..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specify the aggregate rate"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list class } // list hs-secondary-shaper } // container egress container lldp { description "Enter the lldp context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list dest-mac { key "mac-type"; description "Enter the dest-mac list instance"; leaf mac-type { type types-lldp:mac-addr-type; description "MAC address type unique ID"; } leaf notification { type boolean; default "false"; description "Allow LLDP notifications"; } leaf port-id-subtype { type enumeration { enum "tx-if-alias" { value 1; } enum "tx-if-name" { value 5; } enum "tx-local" { value 7; } } default "tx-local"; description "Port identifier TLVs transmitted to peer which is encoded"; } leaf receive { type boolean; default "false"; description "Enable LLDP received frame handling"; } leaf transmit { type boolean; default "false"; description "Enable LLDP received frame handling"; } leaf tunnel-nearest-bridge { when "../mac-type = 'nearest-bridge'" { description "Only valid for nearest-bridge mac-type."; } type boolean; default "false"; description "Allow LLDP packets received on port with destination address of nearest bridge to be tunneled"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container tx-tlvs { description "Enter the tx-tlvs context"; leaf port-desc { type boolean; default "false"; description "Transmit port description TLVs"; } leaf sys-name { type boolean; default "false"; description "Transmit system name TLVs"; } leaf sys-desc { type boolean; default "false"; description "Transmit system description TLVs"; } leaf sys-cap { type boolean; default "false"; description "Transmit system capabilities TLVs"; } } // container tx-tlvs list tx-mgmt-address { key "mgmt-address-system-type"; description "Enter the tx-mgmt-address list instance"; leaf mgmt-address-system-type { type enumeration { enum "oob" { value 0; } enum "system" { value 1; } enum "system-ipv6" { value 2; } enum "oob-ipv6" { value 3; } } description "Management address to transmit"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of transmitting management address information"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list tx-mgmt-address } // list dest-mac } // container lldp container network { description "Enter the network context"; leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "Accounting policy that applies to the Ethernet network port"; } leaf collect-stats { type boolean; default "false"; description "Collect statistical data on the Ethernet port"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; leaf queue-policy { type leafref { path "../../../../../qos/network-queue/network-queue-policy"; } description "Configure the queue policy on the Ethernet network port."; } list queue-group { key "queue-group-name instance-id"; description "Enter the queue-group list instance"; leaf queue-group-name { type leafref { path "../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Queue group name"; } leaf instance-id { type uint16 { range "1..65535"; } description "Instance ID"; } leaf accounting-policy { type leafref { path "../../../../../../log/accounting-policy/policy-id"; } description "Accounting policy for the Ethernet port egress queue group"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics on this queue group"; } leaf description { type types-sros:description; description "Text description"; } leaf hs-turbo { type boolean; default "false"; description "Allow corresponding HSQ queue group queues to achieve a higher throughput"; } leaf policer-control-policy { type leafref { path "../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy for the QoS egress queue group"; } leaf scheduler-policy { type leafref { path "../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy for the QoS egress queue group"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container aggregate-rate { description "Enter the aggregate-rate context"; leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf limit-unused-bandwidth { type boolean; default "false"; description "Specify whether to enable limit unused bandwidth."; } leaf rate { type union { type uint32 { range "1..3200000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specify aggregate rate limit."; } } // container aggregate-rate container queue-overrides { description "Enter the queue-overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group[egress-queue-group-name=current()/../../../queue-group-name]/queue/queue-id"; } description "Queue overrides queue ID"; } leaf cbs { type types-qos:burst-size-override; description "CBS rate"; } leaf mbs { type types-qos:queue-burst-size-override; units "bytes"; description "MBS rate"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Enable queue depth monitoring"; } choice queue-override-rate { default "rate"; case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf cir { type types-qos:cir-percent-override; units "percent"; description "CIR percent rate"; } leaf pir { type types-qos:pir-percent-override; units "percent"; description "PIR percent rate"; } } // container percent-rate } case rate { container rate { description "Enter the rate context"; leaf cir { type types-qos:queue-cir-rate-override; units "kilobps"; description "CIR rate"; } leaf pir { type types-qos:queue-pir-rate-override; units "kilobps"; description "PIR rate"; } } // container rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth } // list queue } // container queue-overrides } // list queue-group container port-queues { description "Enter the port-queues context"; container overrides { description "Enter the overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type types-qos:network-queue-queue-id; description "Queue ID"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth } // list queue } // container overrides } // container port-queues } // container egress } // container network } // container ethernet container gnss { description "Enter the gnss context"; leaf antenna-cable-delay { type uint32 { range "0..32767"; } units "nanoseconds"; default "0"; description "The expected signal delay resulting from the length of the antenna cable"; } leaf elevation-mask-angle { type uint32 { range "0..89"; } units "degrees angle"; default "10"; description "The minimum elevation angle below which the GNSS receiver will not use a satellite"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container constellation { description "Enter the constellation context"; leaf gps { type boolean; default "true"; description "Configure the gnss receiver to process the 'gps' constellation type"; } leaf glonass { type boolean; default "false"; description "Configure the gnss receiver to process the 'glonass' constellation type"; } } // container constellation } // container gnss container network { description "Enter the network context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; list pool { key "name"; description "Enter the pool list instance"; leaf name { type types-sros:named-item; description "Unique name of pool for access port"; } leaf amber-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for amber alarm on oversubscription"; } leaf red-alarm-threshold { type uint32 { range "1..1000"; } units "percent"; description "Threshold for red alarm on oversubscription"; } leaf slope-policy { type leafref { path "../../../../../qos/slope-policy/slope-policy-name"; } description "Slope policy for high and low priority RED slope parameters and time average factor"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resv-cbs { description "Enter the resv-cbs context"; leaf cbs { type union { type int32 { range "0..100"; } type enumeration { enum "auto" { value -1; } } } units "percent"; default "auto"; description "Percentage of pool size reserved for CBS"; } container amber-alarm-action { description "Enter the amber-alarm-action context"; leaf step { type uint32 { range "1..100"; } units "percent"; description "Step-size percentage for reserved CBS of the pool"; } leaf max { type uint32 { range "1..100"; } units "percent"; description "Maximum percentage for reserved CBS of the pool"; } } // container amber-alarm-action } // container resv-cbs } // list pool } // container egress } // container network container otu { presence "Enter the 'otu' context"; description "Enable the otu context"; leaf async-mapping { type boolean; description "Allow asynchoronous mapping of the payload inside the OTU"; } leaf fec { type types-port:otu-fec-mode; description "Forwarding Error Correction (FEC) encapsulation on the port"; } leaf otu2-lan-data-rate { type types-port:otu2-lan-data-rate; units "gigabps"; description "Data rate for 10GE LAN OTU2 on the port"; } leaf sd-threshold { type uint32 { range "5..9"; } default "7"; description "Error rate at which to declare the signal fail condition for the signal degrade (SD)"; } leaf sf-threshold { type uint32 { range "3..6"; } default "5"; description "Error rate at which to declare the signal fail condition for the signal fail (SF)"; } leaf sf-sd-method { type types-port:otu-sf-sd-method; default "fec"; description "Method used to determine the signal fail and signal degrade alarms"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container report-alarm { description "Enter the report-alarm context"; leaf loc { type boolean; default "true"; description "Report alarm for a loss of clock that causes the port to shut down"; } leaf los { type boolean; default "true"; description "Report alarm for the loss of signal transitions on data"; } leaf lof { type boolean; default "true"; description "Report alarm for the loss of OTU framing"; } leaf lom { type boolean; default "true"; description "Report alarm for the loss of multi-frame"; } leaf otu-ais { type boolean; default "false"; description "Report OTU Alarm Indication Signal alarm"; } leaf otu-ber-sf { type boolean; default "true"; description "Report SM Signal Fail alarm"; } leaf otu-ber-sd { type boolean; default "false"; description "Report SM Signal Degrade alarm"; } leaf otu-bdi { type boolean; default "true"; description "Report SM Backward Defect Indication alarm"; } leaf otu-tim { type boolean; default "false"; description "Report SM Trace ID Mismatch alarm"; } leaf otu-iae { type boolean; default "false"; description "Report SM Incoming Alignment Error alarm"; } leaf otu-biae { type boolean; default "false"; description "Report SM Backward Incoming Alignment Error alarm"; } leaf fec-sf { type boolean; default "true"; description "Report Signal Fail alarm"; } leaf fec-sd { type boolean; default "false"; description "Report Signal Degrade alarm"; } leaf fec-fail { type boolean; default "false"; description "Report FEC mode mismatch alarm"; } leaf fec-uncorr { type boolean; default "false"; description "Report one or more Uncorrectable FEC errors alarm"; } leaf odu-ais { type boolean; default "false"; description "Report ODU Alarm Indication Signal alarm"; } leaf odu-oci { type boolean; default "false"; description "Report ODU Open Connection Indication alarm"; } leaf odu-lck { type boolean; default "false"; description "Report ODU Locked alarm"; } leaf odu-bdi { type boolean; default "false"; description "Report PM Backward Defect Indication alarm"; } leaf odu-tim { type boolean; default "false"; description "Report PM Trace ID Mismatch alarm"; } leaf opu-plm { type boolean; default "false"; description "Report PSI Payload Type Mismatch alarm"; } } // container report-alarm container fine-granularity-ber { description "Enter the fine-granularity-ber context"; container signal-degrade { description "Enter the signal-degrade context"; container raise { description "Enter the raise context"; leaf threshold { type uint32 { range "3..9"; } default "7"; description "SD raise threshold"; } leaf multiplier { type uint32 { range "10..99"; } default "10"; description "Multiplier of the SD raise threshold"; } } // container raise container clear { description "Enter the clear context"; leaf threshold { type uint32 { range "3..10"; } default "8"; description "SD clear threshold"; } leaf multiplier { type uint32 { range "10..99"; } default "10"; description "Multiplier of the SD clear threshold"; } } // container clear } // container signal-degrade container signal-failure { description "Enter the signal-failure context"; container raise { description "Enter the raise context"; leaf threshold { type uint32 { range "3..8"; } default "5"; description "SF raise threshold"; } leaf multiplier { type uint32 { range "10..99"; } default "10"; description "SF raise threshold"; } } // container raise container clear { description "Enter the clear context"; leaf threshold { type uint32 { range "3..9"; } default "6"; description "Threshold for the Multiplier of SD clear"; } leaf multiplier { type uint32 { range "10..99"; } default "10"; description "Threshold for the Multiplier of SD clear"; } } // container clear } // container signal-failure } // container fine-granularity-ber container path-monitoring { description "Enter the path-monitoring context"; container trail-trace-identifier { description "Enter the trail-trace-identifier context"; leaf mismatch-reaction { type types-port:otu-tim-reaction; description "Configure the reaction to a mismatched TTI."; } container expected { description "Enter the expected context"; choice expected { default "auto-generated"; case auto-generated { leaf auto-generated { type empty; description "Auto-generate the TTI by the system."; } } case string { leaf string { type string { length "0..64"; } description "Configure the TTI as a sequence of printable ASCII."; } } case bytes { leaf bytes { type string { length "0..192"; } description "Configure the TTI as a sequence of bytes."; } } } } // container expected container transmit { description "Enter the transmit context"; choice transmit { default "auto-generated"; case auto-generated { leaf auto-generated { type empty; description "Auto-generate the TTI by the system."; } } case string { leaf string { type string { length "0..64"; } description "Configure the TTI as a sequence of printable ASCII."; } } case bytes { leaf bytes { type string { length "0..192"; } description "Configure the TTI as a sequence of bytes."; } } } } // container transmit } // container trail-trace-identifier } // container path-monitoring container payload-structure-identifier { description "Enter the payload-structure-identifier context"; container payload { description "Enter the payload context"; leaf expected { type types-port:otu-psi-payload-type; default "auto"; description "Configure the port's PSI payload expected parameters."; } leaf mismatch-reaction { type types-port:otu-tim-reaction; description "Configure the reaction to a mismatched payload."; } leaf transmit { type types-port:otu-psi-payload-type; default "auto"; description "Configure the port's PSI payload transmit parameters."; } } // container payload } // container payload-structure-identifier container section-monitoring { description "Enter the section-monitoring context"; container trail-trace-identifier { description "Enter the trail-trace-identifier context"; leaf mismatch-reaction { type types-port:otu-tim-reaction; description "Configure the reaction to a mismatched TTI."; } container expected { description "Enter the expected context"; choice expected { default "auto-generated"; case auto-generated { leaf auto-generated { type empty; description "Auto-generate the TTI by the system."; } } case string { leaf string { type string { length "0..64"; } description "Configure the TTI as a sequence of printable ASCII."; } } case bytes { leaf bytes { type string { length "0..192"; } description "Configure the TTI as a sequence of bytes."; } } } } // container expected container transmit { description "Enter the transmit context"; choice transmit { default "auto-generated"; case auto-generated { leaf auto-generated { type empty; description "Auto-generate the TTI by the system."; } } case string { leaf string { type string { length "0..64"; } description "Configure the TTI as a sequence of printable ASCII."; } } case bytes { leaf bytes { type string { length "0..192"; } description "Configure the TTI as a sequence of bytes."; } } } } // container transmit } // container trail-trace-identifier } // container section-monitoring } // container otu container sonet-sdh { description "Enter the sonet-sdh context"; leaf clock-source { type enumeration { enum "loop-timed" { value 1; } enum "node-timed" { value 2; } } description "Configure the clock for transmitted data."; } leaf framing { type enumeration { enum "sonet" { value 2; } enum "sdh" { value 3; } } sros-ext:immutable; default "sonet"; description "SONET or SDH framing"; } leaf loopback { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } } description "Loopback to activate on SONET port"; } leaf sd-threshold { type uint32 { range "3..9"; } default "6"; description "Threshold for line signal failure BER"; } leaf sf-threshold { type uint32 { range "3..6"; } default "3"; description "Threshold for line signal failure BER"; } leaf single-fiber { type boolean; default "false"; description "Allow packet gathering and redirection of IP packets from a single fiber (RX) port"; } leaf speed { type enumeration { enum "oc3" { value 1; } enum "oc12" { value 2; } enum "oc48" { value 3; } enum "oc192" { value 4; } enum "oc768" { value 5; } enum "oc1" { value 6; } } sros-ext:immutable; description "Configure the speed of a SONET/SDH port to be either OC3 or OC12."; } leaf suppress-low-order-alarms { type boolean; default "false"; description "Suppress low order alarms"; } leaf tx-dus { type boolean; default "false"; description "Enable/disable the forced transmit 0xF (dus/dnu) in S1 overhead byte."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf reset-port-on-path-down { status obsolete; type boolean; default "false"; description "Reset port when path goes operationally down"; } container hold-time { description "Enter the hold-time context"; leaf up { type uint32 { range "0..100"; } units "deciseconds"; default "5"; description "Configure the hold timer for link up event dampening."; } leaf down { type uint32 { range "0..100"; } units "deciseconds"; description "Configure the hold timer for link down event dampening."; } } // container hold-time container report-alarm { description "Enter the report-alarm context"; leaf loc { type boolean; default "true"; description "Report alarm for a loss of clock that causes the port to shut down"; } leaf lais { type boolean; default "false"; description "Report Line Indication Signal Errors alarm"; } leaf lrdi { type boolean; default "true"; description "Report Line Remote Defect Indication Errors alarm"; } leaf ss1f { type boolean; default "false"; description "Report alarm for section synchronization failure"; } leaf lb2er-sd { type boolean; default "false"; description "Report alarm for line signal degradation BER (bit interleaved parity) errors"; } leaf lb2er-sf { type boolean; default "true"; description "Report alarm line signal failure BER errors"; } leaf slof { type boolean; default "true"; description "Report alarm for section loss of frame errors"; } leaf slos { type boolean; default "true"; description "Report alarm for section loss of signal error on the transmit side"; } leaf lrei { type boolean; default "false"; description "Report alarm for a line error condition"; } } // container report-alarm container section-trace { description "Enter the section-trace context"; choice section-trace { default "byte"; case increment-z0 { leaf increment-z0 { type empty; description "Set the j0 byte to 0x01 and increment z0 byte."; } } case byte { leaf byte { type string { length "1..4"; } default "1"; description "Set j0 byte to the first octet of the j0 string and the z0 byte to 0xcc."; } } case string { leaf string { type string { length "0..16"; } description "Set j0 byte to the string and the z0 byte to 0xcc."; } } } } // container section-trace list group { key "group-index"; description "Enter the group list instance"; leaf group-index { type types-port:sdh-group-index; description "Specifies the SONET/SDH group index."; } leaf payload { type types-port:sonet-group-payload-type; default "tu3"; description "Configure the SONET/SDH group payload."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list group list path { key "path-index"; description "Enter the path list instance"; leaf path-index { type types-port:sonet-path-index; description "Specifies the SONET/SDH path index."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the SONET/SDH path."; } leaf crc { type uint32 { range "16|32"; } description "Configure cyclic redundancy check."; } leaf description { type types-sros:long-description; description "Text description"; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Configure Load Balancing Algorithm."; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Assign a MAC address to a SONET/SDH path."; } leaf mode { type enumeration { enum "access" { value 1; } enum "network" { value 2; } } sros-ext:auto-restart-to-modify; description "Configure access/network mode."; } leaf encap-type { type types-port:sonet-path-encap-type; sros-ext:auto-restart-to-modify; description "Configure an encap method."; } leaf mtu { type uint32 { range "512..9208"; } units "bytes"; description "Configure the maximum payload MTU size for the path."; } leaf payload { type types-port:sonet-path-payload-type; sros-ext:immutable; description "Configure the SONET/SDH path payload."; } leaf scramble { type boolean; description "Configure SONET/SDH payload scrambling."; } leaf signal-label { type string { length "1..4"; } description "Configure C2 byte value."; } leaf trace-string { type union { type enumeration { enum "zeros" { value 0; } } type string { length "0..62"; } } description "Configure the J1 path-trace inserted continuously at source."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container report-alarm { description "Enter the report-alarm context"; leaf pais { type boolean; default "false"; description "Enable/disable pais alarm."; } leaf plop { type boolean; default "true"; description "Enable/disable plop alarm."; } leaf prdi { type boolean; default "false"; description "Enable/disable prdi alarm."; } leaf pplm { type boolean; default "true"; description "Enable/disable pplm alarm."; } leaf prei { type boolean; default "false"; description "Enable/disable prei alarm."; } leaf puneq { type boolean; default "true"; description "Enable/disable puneq alarm."; } leaf plcd { type boolean; default "false"; description "Enable/disable plcd alarm."; } } // container report-alarm container egress { description "Enter the egress context"; container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/port-scheduler-policy/name"; } description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type uint32 { range "1..8"; } description "Specifies the priority level of the port scheduler override."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "max"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } leaf cir { type decimal64 { range "0..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy } // container egress container network { description "Enter the network context"; leaf accounting-policy { type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Configure the accounting policy."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data."; } leaf queue-policy { type leafref { path "../../../../../qos/network-queue/network-queue-policy"; } description "Configure the queue policy on the SONET/SDH network path."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container network container ppp { description "Enter the ppp context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container keepalive { description "Enter the keepalive context"; leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Configure the number of keepalive or LQR messages that can be missed before the line is brought down."; } leaf interval { type union { type uint32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "10"; description "Configure the time interval at which keepalive requests are issued."; } } // container keepalive } // container ppp } // list path } // container sonet-sdh container tdm { description "Enter the tdm context"; leaf buildout { type enumeration { enum "short" { value 1; } enum "long" { value 2; } } default "short"; description "Configure the line buildout for a physical DS1/DS3 port."; } leaf encoding { type enumeration { enum "b8zs" { value 1; } enum "ami" { value 2; } enum "hdb3" { value 3; } } description "Configure the encoding for the physical DS1/E1 port. b8zs (1) - Bipolar (or Binary) with 8-Zero Substitution. Only supported on a DS1 port. ami (2) - Alternate Mark Inversion. Only supported on a DS1 port. hdb3 (3) - High Density Bipolar (or Binary) 3. Only supported on an E1 port."; } leaf line-impedance { type uint32 { range "75 | 100 | 120"; } units "ohms"; description "Configure the line impedance for the physical DS1/E1 port. A DS1 port supports only 100 ohms. An E1 port supports 75 ohms and 120 ohms."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-time { description "Enter the hold-time context"; leaf up { type uint32 { range "1..100"; } description "Configure the hold timer for link up event dampening on the physical DS3 port."; } leaf down { type uint32 { range "0..100"; } default "5"; description "Configure the hold timer for link down event dampening on the physical DS3 port."; } } // container hold-time list ds1 { key "ds1-index"; description "Enter the ds1 list instance"; leaf ds1-index { type types-port:tdm-ds1-index; description "Specifies the TDM DS1 index."; } leaf clock-source { type enumeration { enum "loop-timed" { value 1; } enum "node-timed" { value 2; } enum "adaptive" { value 3; } enum "differential" { value 4; } } description "Configure the clock for transmitted data."; } leaf signal-mode { type enumeration { enum "channel-associated-signaling" { value 2; } } sros-ext:auto-restart-to-modify; description "Activate the signal-mode on the channel."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the DS1 channel."; } leaf framing { type enumeration { enum "extended-super-frame" { value 1; } enum "super-frame" { value 2; } enum "ds1-unframed" { value 6; } } sros-ext:auto-restart-to-modify; default "extended-super-frame"; description "Configure the framing on the DS1 channel."; } leaf loopback { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } enum "fdl-ansi" { value 3; } enum "fdl-bellcore" { value 4; } enum "payload-ansi" { value 5; } enum "inband-ansi" { value 6; } enum "inband-bellcore" { value 7; } } description "Activate a loopback on the DS1 channel."; } leaf remote-loop-respond { type boolean; default "false"; description "Enable/disable response to remote loop."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-time { description "Enter the hold-time context"; leaf up { type uint32 { range "0..100"; } units "deciseconds"; default "0"; description "Configure the hold timer for link up event dampening on the physical DS1/E1 channels."; } leaf down { type uint32 { range "0..100"; } units "deciseconds"; default "0"; description "Configure the hold timer for link down event dampening on the physical DS1/E1 channels."; } } // container hold-time list channel-group { key "ds0-index"; description "Enter the channel-group list instance"; leaf ds0-index { type uint32 { range "1..24"; } description "Specifies the DS0 channel group."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the DS1 channel group."; } leaf crc { type uint32 { range "16|32"; } sros-ext:auto-restart-to-modify; description "Configure the precision of the cyclic redundancy check (CRC)."; } leaf description { type types-sros:long-description; default "DS0GRP"; description "Text description"; } leaf idle-cycle-flag { type types-port:tdm-dsx-idle-cycle-flag; description "Configure the value that the channel group transmits during idle cycle."; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Configure Load Balancing Algorithm."; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Assign a MAC address to the port."; } leaf mode { type enumeration { enum "access" { value 1; } enum "network" { value 2; } } sros-ext:auto-restart-to-modify; description "Configure a port for access or network mode."; } leaf encap-type { type types-port:sonet-path-encap-type; sros-ext:auto-restart-to-modify; description "Configure an encap method."; } leaf mtu { type uint32 { range "512..9208"; } units "bytes"; description "Configure the maximum payload MTU size for the port."; } leaf speed { type uint32 { range "56|64"; } sros-ext:auto-restart-to-modify; default "64"; description "Configure the speed of the DS0 channels in this channel group."; } leaf-list timeslot { type uint32 { range "1..24"; } max-elements 24; sros-ext:auto-restart-to-modify; description "Configure timeslot for this channel group."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/port-scheduler-policy/name"; } description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type uint32 { range "1..8"; } description "Specifies the priority level of the port scheduler override."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "max"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } leaf cir { type decimal64 { range "0..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy } // container egress container idle-payload-fill { description "Enter the idle-payload-fill context"; choice idle-payload-fill-choice { case all-ones { leaf all-ones { type empty; description "Specify all 1's will be played out when the CEM channel group experiences an underrun."; } } case pattern { leaf pattern { type uint32 { range "0..255"; } description "Specify the fill pattern when the CEM channel group experiences an underrun."; } } } } // container idle-payload-fill container idle-signal-fill { when "../../signal-mode = 'channel-associated-signaling'"; description "Enter the idle-signal-fill context"; choice idle-signal-fill-choice { case all-ones { leaf all-ones { type empty; description "Specify all 1's will be played out when the CAS CEM channel group experiences an underrun."; } } case pattern { leaf pattern { type uint32 { range "0..15"; } description "Specify the fill pattern when the CAS CEM channel group experiences an underrun."; } } } } // container idle-signal-fill container network { description "Enter the network context"; leaf accounting-policy { type leafref { path "../../../../../../log/accounting-policy/policy-id"; } description "Configure the accounting policy."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data."; } leaf queue-policy { type leafref { path "../../../../../../qos/network-queue/network-queue-policy"; } description "Configure the queue policy on the TDM DS0 network channel group."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container network container ppp { description "Enter the ppp context"; leaf ber-sf-link-down { type boolean; default "false"; description "Enable/disable port down on BER-SF alarm."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container compress { description "Enter the compress context"; leaf acfc { type boolean; default "false"; description "Enable/disable Address Control Field Compression (ACFC)."; } leaf pfc { type boolean; default "false"; description "Enable/disable Protocol Field Compression (PFC)."; } } // container compress container keepalive { description "Enter the keepalive context"; leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Configure the number of keepalive or LQR messages that can be missed before the line is brought down."; } leaf interval { type union { type uint32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "10"; description "Configure the time interval at which keepalive requests are issued."; } } // container keepalive } // container ppp } // list channel-group container report-alarm { description "Enter the report-alarm context"; leaf ais { type boolean; default "true"; description "Enable/disable ais alarm."; } leaf los { type boolean; default "true"; description "Enable/disable los alarm."; } leaf looped { type boolean; default "false"; description "Enable/disable looped alarm."; } leaf oof { type boolean; default "false"; description "Enable/disable oof alarm."; } leaf rai { type boolean; default "false"; description "Enable/disable rai alarm."; } leaf ber-sd { when "../../framing = 'extended-super-frame'"; type boolean; default "false"; description "Enable/disable ber-sd alarm."; } leaf ber-sf { when "../../framing = 'extended-super-frame'"; type boolean; default "false"; description "Enable/disable ber-sf alarm."; } } // container report-alarm container ber-threshold { when "../framing = 'extended-super-frame'"; description "Enter the ber-threshold context"; leaf signal-degrade { type uint32 { range "1|5|10|50|100"; } default "5"; description "Configure BER signal degredation threshold."; } leaf signal-failure { type uint32 { range "1|5|10|50|100"; } default "50"; description "Configure BER signal failure threshold."; } } // container ber-threshold } // list ds1 list ds3 { key "ds3-index"; description "Enter the ds3 list instance"; leaf ds3-index { type types-port:tdm-ds3-index; description "Specifies the TDM DS3 index."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the DS3 port."; } leaf channelized { type enumeration { enum "ds1" { value 2; } enum "e1" { value 3; } } sros-ext:auto-restart-to-modify; description "Specify if the DS3 port is channelized."; } leaf crc { type uint32 { range "16|32"; } sros-ext:auto-restart-to-modify; description "Configure the precision of the cyclic redundancy check (CRC)."; } leaf description { type types-sros:long-description; default "DS3"; description "Text description"; } leaf feac-loop-respond { type boolean; default "false"; description "Enable/disable responding to remote loop signals."; } leaf framing { type enumeration { enum "c-bit" { value 1; } enum "m23" { value 2; } enum "ds3-unframed" { value 6; } } sros-ext:auto-restart-to-modify; default "c-bit"; description "Configure the framing for the DS3 channel."; } leaf idle-cycle-flag { type types-port:tdm-dsx-idle-cycle-flag; description "Configure the value that the port transmits during idle cycle."; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Configure Load Balancing Algorithm."; } leaf loopback { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } enum "remote" { value 3; } } description "Activate a loopback on the DS3 channel."; } leaf mode { type enumeration { enum "access" { value 1; } enum "network" { value 2; } } sros-ext:auto-restart-to-modify; description "Configure a port for access or network mode."; } leaf encap-type { type types-port:sonet-path-encap-type; sros-ext:auto-restart-to-modify; description "Configure an encap method."; } leaf mtu { type uint32 { range "512..9208"; } units "bytes"; description "Configure the maximum payload MTU size for the port."; } leaf scramble { type boolean; description "Configure ATM payload scrambling."; } leaf clock-source { type enumeration { enum "loop-timed" { value 1; } enum "node-timed" { value 2; } } default "node-timed"; description "Configure the clock for transmitted data."; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Assign a MAC address to the port."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/port-scheduler-policy/name"; } description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type uint32 { range "1..8"; } description "Specifies the priority level of the port scheduler override."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "max"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } leaf cir { type decimal64 { range "0..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy } // container egress container maintenance-data-link { description "Enter the maintenance-data-link context"; leaf equipment-id-code { type string { length "0..10"; } description "Configure the Equipment ID Code (EIC) of the MDL."; } leaf facility-id-code { type string { length "0..38"; } description "Configure the Facility ID Code sent in the MDL Path message."; } leaf frame-id-code { type string { length "0..10"; } description "Configure the Frame ID Code (FIC) of the MDL."; } leaf generator-string { type string { length "0..38"; } description "Configure the generator number string sent in the MDL test signal message."; } leaf location-id-code { type string { length "0..11"; } description "Configure the Location ID Code (LIC) of the MDL."; } leaf port-string { type string { length "0..38"; } description "Configure the port number string sent in the MDL idle signal message."; } leaf unit-id-code { type string { length "0..6"; } description "Configure the Unit ID Code (UIC) of the MDL."; } container transmit-message-type { description "Enter the transmit-message-type context"; leaf path { type boolean; default "false"; description "Enable/disable transmission of MDL path messages."; } leaf idle-signal { type boolean; default "false"; description "Enable/disable transmission of MDL idle signal messages."; } leaf test-signal { type boolean; default "false"; description "Enable/disable transmission of MDL test signal messages."; } } // container transmit-message-type } // container maintenance-data-link container network { description "Enter the network context"; leaf accounting-policy { type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Configure the accounting policy."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data."; } leaf queue-policy { type leafref { path "../../../../../qos/network-queue/network-queue-policy"; } description "Configure the queue policy on the TDM DS3 network channel."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container network container ppp { description "Enter the ppp context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container keepalive { description "Enter the keepalive context"; leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Configure the number of keepalive or LQR messages that can be missed before the line is brought down."; } leaf interval { type union { type uint32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "10"; description "Configure the time interval at which keepalive requests are issued."; } } // container keepalive } // container ppp container report-alarm { description "Enter the report-alarm context"; leaf ais { type boolean; default "true"; description "Enable/disable ais alarm."; } leaf los { type boolean; default "true"; description "Enable/disable los alarm."; } leaf looped { type boolean; default "false"; description "Enable/disable looped alarm."; } leaf oof { type boolean; default "false"; description "Enable/disable oof alarm."; } leaf rai { type boolean; default "false"; description "Enable/disable rai alarm."; } } // container report-alarm container subrate { description "Enter the subrate context"; leaf csu-mode { type enumeration { enum "digital-link" { value 1; } enum "larscom" { value 3; } } sros-ext:auto-restart-to-modify; description "Configure the subrate Channel Service Unit (CSU) mode."; } leaf rate-step { when "../csu-mode = 'digital-link' or ../csu-mode = 'larscom'"; type uint32 { range "0..147"; } sros-ext:auto-restart-to-modify; description "Configure the subrate step."; } } // container subrate } // list ds3 list e3 { key "e3-index"; description "Enter the e3 list instance"; leaf e3-index { type types-port:tdm-e3-index; description "Specifies the TDM E3 index."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the E3 channel."; } leaf crc { type uint32 { range "16|32"; } sros-ext:auto-restart-to-modify; description "Configure the precision of the cyclic redundancy check (CRC)."; } leaf description { type types-sros:long-description; default "E3"; description "Text description"; } leaf framing { type enumeration { enum "g751" { value 3; } enum "g832" { value 4; } enum "e3-unframed" { value 5; } } sros-ext:auto-restart-to-modify; default "g751"; description "Configure the framing for the E3 channel."; } leaf idle-cycle-flag { type types-port:tdm-dsx-idle-cycle-flag; description "Configure the value that the port transmits during idle cycle."; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Configure Load Balancing Algorithm."; } leaf loopback { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } } description "Activate a loopback on the E3 channel."; } leaf mode { type enumeration { enum "access" { value 1; } enum "network" { value 2; } } sros-ext:auto-restart-to-modify; description "Configure a port for access or network mode."; } leaf encap-type { type types-port:sonet-path-encap-type; sros-ext:auto-restart-to-modify; description "Configure an encap method."; } leaf mtu { type uint32 { range "512..9208"; } units "bytes"; description "Configure the maximum payload MTU size for the port."; } leaf scramble { type boolean; description "Configure ATM payload scrambling."; } leaf clock-source { type enumeration { enum "loop-timed" { value 1; } enum "node-timed" { value 2; } } default "node-timed"; description "Configure the clock for transmitted data."; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Assign a MAC address to the port."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/port-scheduler-policy/name"; } description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type uint32 { range "1..8"; } description "Specifies the priority level of the port scheduler override."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "max"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } leaf cir { type decimal64 { range "0..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy } // container egress container network { description "Enter the network context"; leaf accounting-policy { type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Configure the accounting policy."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data."; } leaf queue-policy { type leafref { path "../../../../../qos/network-queue/network-queue-policy"; } description "Configure the queue policy on the TDM E3 network channel."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container network container ppp { description "Enter the ppp context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container keepalive { description "Enter the keepalive context"; leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Configure the number of keepalive or LQR messages that can be missed before the line is brought down."; } leaf interval { type union { type uint32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "10"; description "Configure the time interval at which keepalive requests are issued."; } } // container keepalive } // container ppp container report-alarm { description "Enter the report-alarm context"; leaf ais { type boolean; default "true"; description "Enable/disable ais alarm."; } leaf los { type boolean; default "true"; description "Enable/disable los alarm."; } leaf looped { type boolean; default "false"; description "Enable/disable looped alarm."; } leaf oof { type boolean; default "false"; description "Enable/disable oof alarm."; } leaf rai { type boolean; default "false"; description "Enable/disable rai alarm."; } } // container report-alarm } // list e3 list e1 { key "e1-index"; description "Enter the e1 list instance"; leaf e1-index { type types-port:tdm-e1-index; description "Specifies the TDM E1 index."; } leaf clock-source { type enumeration { enum "loop-timed" { value 1; } enum "node-timed" { value 2; } enum "adaptive" { value 3; } enum "differential" { value 4; } } description "Configure the clock for transmitted data."; } leaf signal-mode { type enumeration { enum "channel-associated-signaling" { value 2; } } sros-ext:auto-restart-to-modify; description "Activate the signal-mode on the channel."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the E1 channel."; } leaf framing { type enumeration { enum "no-crc-g704" { value 3; } enum "g704" { value 4; } enum "e1-unframed" { value 5; } } sros-ext:auto-restart-to-modify; default "g704"; description "Configure the framing on the E1 channel."; } leaf loopback { type enumeration { enum "line" { value 1; } enum "internal" { value 2; } } description "Activate a loopback on the E1 channel."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-time { description "Enter the hold-time context"; leaf up { type uint32 { range "0..100"; } units "deciseconds"; default "0"; description "Configure the hold timer for link up event dampening on the physical DS1/E1 channels."; } leaf down { type uint32 { range "0..100"; } units "deciseconds"; default "0"; description "Configure the hold timer for link down event dampening on the physical DS1/E1 channels."; } } // container hold-time list channel-group { key "ds0-index"; description "Enter the channel-group list instance"; leaf ds0-index { type uint32 { range "1..32"; } description "Specifies the DS0 channel group."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the E1 channel group."; } leaf crc { type uint32 { range "16|32"; } sros-ext:auto-restart-to-modify; description "Configure the precision of the cyclic redundancy check (CRC)."; } leaf description { type types-sros:long-description; default "DS0GRP"; description "Text description"; } leaf idle-cycle-flag { type types-port:tdm-dsx-idle-cycle-flag; description "Configure the value that the channel group transmits during idle cycle."; } leaf load-balancing-algorithm { type types-port:load-balancing-algorithm; description "Configure Load Balancing Algorithm."; } leaf mac-address { type yang:mac-address; default "00:00:00:00:00:00"; description "Assign a MAC address to the port."; } leaf mode { type enumeration { enum "access" { value 1; } enum "network" { value 2; } } sros-ext:auto-restart-to-modify; description "Configure a port for access or network mode."; } leaf encap-type { type types-port:sonet-path-encap-type; sros-ext:auto-restart-to-modify; description "Configure an encap method."; } leaf mtu { type uint32 { range "512..9208"; } units "bytes"; description "Configure the maximum payload MTU size for the port."; } leaf speed { type uint32 { range "56|64"; } sros-ext:auto-restart-to-modify; default "64"; description "Configure the speed of the E0 channels in this channel group."; } leaf-list timeslot { type uint32 { range "1..32"; } max-elements 32; sros-ext:auto-restart-to-modify; description "Configure timeslot for this channel group."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; container port-scheduler-policy { description "Enter the port-scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/port-scheduler-policy/name"; } description "Configure an egress scheduler policy."; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container max-rate { description "Enter the max-rate context"; choice rate-or-percent-rate { case rate { leaf rate { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate as a rate."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } } } } // container max-rate list level { key "priority-level"; description "Enter the level list instance"; leaf priority-level { type uint32 { range "1..8"; } description "Specifies the priority level of the port scheduler override."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Configure the PIR rate in kbps."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "max"; description "Configure the CIR rate in kbps."; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure the PIR rate as a percent."; } leaf cir { type decimal64 { range "0..100"; fraction-digits 2; } units "percent"; default "100"; description "Configure Che CIR rate as a percent."; } } // container percent-rate } } } // list level } // container overrides } // container port-scheduler-policy } // container egress container idle-payload-fill { description "Enter the idle-payload-fill context"; choice idle-payload-fill-choice { case all-ones { leaf all-ones { type empty; description "Specify all 1's will be played out when the CEM channel group experiences an underrun."; } } case pattern { leaf pattern { type uint32 { range "0..255"; } description "Specify the fill pattern when the CEM channel group experiences an underrun."; } } } } // container idle-payload-fill container idle-signal-fill { when "../../signal-mode = 'channel-associated-signaling'"; description "Enter the idle-signal-fill context"; choice idle-signal-fill-choice { case all-ones { leaf all-ones { type empty; description "Specify all 1's will be played out when the CAS CEM channel group experiences an underrun."; } } case pattern { leaf pattern { type uint32 { range "0..15"; } description "Specify the fill pattern when the CAS CEM channel group experiences an underrun."; } } } } // container idle-signal-fill container network { description "Enter the network context"; leaf accounting-policy { type leafref { path "../../../../../../log/accounting-policy/policy-id"; } description "Configure the accounting policy."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data."; } leaf queue-policy { type leafref { path "../../../../../../qos/network-queue/network-queue-policy"; } description "Configure the queue policy on the TDM E0 network channel group."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container network container ppp { description "Enter the ppp context"; leaf ber-sf-link-down { type boolean; default "false"; description "Enable/disable port down on BER-SF alarm."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container compress { description "Enter the compress context"; leaf acfc { type boolean; default "false"; description "Enable/disable Address Control Field Compression (ACFC)."; } leaf pfc { type boolean; default "false"; description "Enable/disable Protocol Field Compression (PFC)."; } } // container compress container keepalive { description "Enter the keepalive context"; leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Configure the number of keepalive or LQR messages that can be missed before the line is brought down."; } leaf interval { type union { type uint32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "10"; description "Configure the time interval at which keepalive requests are issued."; } } // container keepalive } // container ppp } // list channel-group container national-bits { when "../framing = 'no-crc-g704' or ../framing = 'g704'"; description "Enter the national-bits context"; leaf sa4 { type boolean; default "false"; description "Enable/disable sa-bit 4."; } leaf sa5 { type boolean; default "false"; description "Enable/disable sa-bit 5."; } leaf sa6 { type boolean; default "false"; description "Enable/disable sa-bit 6."; } leaf sa7 { type boolean; default "false"; description "Enable/disable sa-bit 7."; } leaf sa8 { type boolean; default "false"; description "Enable/disable sa-bit 8."; } } // container national-bits container report-alarm { description "Enter the report-alarm context"; leaf ais { type boolean; default "true"; description "Enable/disable ais alarm."; } leaf los { type boolean; default "true"; description "Enable/disable los alarm."; } leaf looped { type boolean; default "false"; description "Enable/disable looped alarm."; } leaf oof { type boolean; default "false"; description "Enable/disable oof alarm."; } leaf rai { type boolean; default "false"; description "Enable/disable rai alarm."; } leaf ber-sd { when "../../framing = 'g704'"; type boolean; default "false"; description "Enable/disable ber-sd alarm."; } leaf ber-sf { when "../../framing = 'g704'"; type boolean; default "false"; description "Enable/disable ber-sf alarm."; } } // container report-alarm container ber-threshold { when "../framing = 'g704'"; description "Enter the ber-threshold context"; leaf signal-degrade { type uint32 { range "1|5|10|50|100"; } default "5"; description "Configure BER signal degredation threshold."; } leaf signal-failure { type uint32 { range "1|5|10|50|100"; } default "50"; description "Configure BER signal failure threshold."; } } // container ber-threshold } // list e1 } // container tdm } // list port list port-policy { key "name"; max-elements 32; description "Enter the port-policy list instance"; leaf name { type types-sros:named-item; description "Port policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf egress-port-scheduler-policy { type leafref { path "../../qos/port-scheduler-policy/name"; } description "Policy for egress port scheduler"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list port-policy container port-xc { description "Enter the port-xc context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list pxc { key "pxc-id"; description "Enter the pxc list instance"; leaf pxc-id { type uint32 { range "1..64"; } description "Unique Identifier for the PXC"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PXC"; } leaf description { type types-sros:description; description "Text description"; } leaf port-id { type leafref { path "../../../port/port-id"; } sros-ext:immutable; description "PXC port ID"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pxc } // container port-xc list pw-port { key "pw-port-id"; description "Enter the pw-port list instance"; leaf pw-port-id { type types-sros:pw-port; description "The identifier which uniquely identifies the pw-port."; } leaf description { type types-sros:long-description; default "PW Port"; description "Text description"; } leaf encap-type { type enumeration { enum "dot1q" { value 2; } enum "qinq" { value 10; } } default "dot1q"; description "Encap type of the pseudo-wire port"; } leaf dot1q-etype { type types-port:etype; default "33024"; description "Dot1q eth-type encapsulation value as 0xXXYY with range 0x0600-0xFFFF."; } leaf qinq-etype { type types-port:etype; default "33024"; description "QinQ eth-type encapsulation value. as 0xXXYY with range 0x0600-0xFFFF."; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice pw-port-object { case sdp { list sdp { key "sdp-id"; max-elements 1; description "Enter the sdp list instance"; leaf sdp-id { type leafref { path "../../../service/sdp/sdp-id"; } description "Service Distribution Point (SDP) identifier."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the pseudowire port"; } leaf vc-id { type types-services:vc-id; sros-ext:immutable; mandatory true; description "Specifies the virtual-circuit identifier associated with this pseudo-wire port."; } leaf vc-type { type types-services:pw-port-sdp-bind-vc-type; sros-ext:auto-restart-to-modify; default "ether"; description "Specifies the type of virtual circuit (VC)."; } leaf vlan-vc-tag { type types-services:vlan-vc-tag; description "Specifies the VLAN VC tag."; } leaf monitor-oper-group { type leafref { path "../../../service/oper-group/name"; } description "Specifies the monitoring operational group name."; } leaf control-word { type boolean; default "false"; description "Whether using the control-word is preferred or not. This bit is exchanged with LDP peer during pseudowire negotiation time."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; sros-ext:auto-restart-to-modify; description "Specifies the static MPLS VC label to send packets to the far-end device."; } container shaper { description "Enter the shaper context"; leaf intermediate-destination-id { type types-sros:named-item; description "Intermediate destination ID applicable to ESM PW SAPs"; } leaf pw-sap-secondary-shaper { type types-sros:named-item; description "Specifies the SAP secondary shaper associated on the egress side."; } leaf virtual-port { type types-sros:named-item; description "Specifies the virtual port name of the shaper on the egress side."; } } // container shaper } // container egress container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; sros-ext:auto-restart-to-modify; description "Specifies the static MPLS VC label to receive packets from the far-end device."; } } // container ingress } // list sdp } case epipe { list epipe { key "service-name"; max-elements 1; description "Enter the epipe list instance"; leaf service-name { type leafref { path "../../../service/epipe/service-name"; } description "Administrative service name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the pseudowire port"; } leaf fpe-id { type leafref { path "../../../fwd-path-ext/fpe/fpe-id"; } sros-ext:immutable; description "Forward path extension identifier."; } leaf monitor-oper-group { type leafref { path "../../../service/oper-group/name"; } description "Specifies the monitoring operational group name."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; container shaper { description "Enter the shaper context"; leaf intermediate-destination-id { type types-sros:named-item; description "Intermediate destination ID applicable to ESM PW SAPs"; } leaf virtual-port { type types-sros:named-item; description "Specifies the virtual port name of the shaper on the egress side."; } } // container shaper } // container egress } // list epipe } } } // list pw-port container python { description "Enter the python context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list python-script { key "name"; max-elements 256; description "Enter the python-script list instance"; leaf name { type types-sros:named-item; description "Python script policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Python script"; } leaf description { type types-sros:description; description "Text description"; } leaf action-on-fail { type enumeration { enum "passthrough" { value 1; } enum "drop" { value 2; } } default "drop"; description "Action taken when Python fails to modify the given message"; } leaf-list urls { type types-sros:url; max-elements 3; ordered-by user; description "The script locations in URL format"; } leaf version { type enumeration { enum "python2" { value 2; } enum "python3" { value 3; } } sros-ext:immutable; default "python2"; description "the version of Python this script is written for."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container protection { description "Enter the protection context"; leaf hmac-sha256 { type types-sros:encrypted-leaf { length "1..199"; } description "Python script to consist of the hash value as obtained by the hmac-sha256 hashing algorithm"; } } // container protection } // list python-script list python-policy { key "name"; max-elements 64; description "Enter the python-policy list instance"; leaf name { type types-sros:named-item; description "Python policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice isa { case wlan-gw-group { leaf wlan-gw-group { type leafref { path "../../../isa/wlan-gw-group/id"; } sros-ext:immutable; description "WLAN ISA group for this Python policy"; } } case nat-group { leaf nat-group { type leafref { path "../../../isa/nat-group/id"; } sros-ext:immutable; description "NAT ISA group for this Python policy"; } } } container cache { when "not(../wlan-gw-group) and not(../nat-group)"; presence "Enter the 'cache' context"; description "Enable the cache context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Python cache"; } leaf entry-size { type int32 { range "32..2048"; } units "bytes"; sros-ext:auto-restart-to-modify; default "256"; description "Maximum size of the data structure to be stored in a single Python cache entry"; } leaf max-entries { type int32 { range "1..1000000"; } sros-ext:auto-restart-to-modify; default "128000"; description "Maximum number of Python cache entries to be stored in the cache of this Python policy"; } leaf max-entry-lifetime { type types-sros:time-duration { range "1..604800"; } units "seconds"; default "86400"; description "Maximum lifetime allowed for each entry of the Python cache of this Python policy"; } leaf persistence { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Allow persistency support for the cached entries of the Python policy"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcs-peer { presence "Enter the 'mcs-peer' context"; description "Enable the mcs-peer context"; leaf ip-address { type leafref { path "../../../../../redundancy/multi-chassis/peer/ip-address"; } mandatory true; description "IP address of the Multi-Chassis Redundancy Synchronization (MCS) peer"; } leaf sync-tag { type types-sros:named-item; mandatory true; description "Python policy cache that is uniquely identified within the scope of MCS peer"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mcs-peer container minimum-lifetimes { description "Enter the minimum-lifetimes context"; leaf multi-chassis-redundancy { type uint32 { range "1..600"; } units "seconds"; description "Minimum value for the remaining lifetime of any cache entry to be synchronized with peer system"; } leaf high-availability { type uint32 { range "1..600"; } units "seconds"; description "Minimum value for the remaining lifetime of any cache entry to be synchronized with standby CPM"; } leaf persistence { type uint32 { range "1..1800"; } units "seconds"; description "Minimum value for the remaining lifetime of any cache entry to be written to system persistence"; } } // container minimum-lifetimes } // container cache list dhcp { when "not(../wlan-gw-group) and not(../nat-group)"; key "message-type direction"; description "Enter the dhcp list instance"; leaf message-type { type enumeration { enum "discover" { value 1001; } enum "offer" { value 1002; } enum "request" { value 1003; } enum "decline" { value 1004; } enum "ack" { value 1005; } enum "nak" { value 1006; } enum "release" { value 1007; } enum "inform" { value 1008; } enum "force-renew" { value 1009; } enum "lease-query" { value 1010; } enum "lease-unassigned" { value 1011; } enum "lease-unknown" { value 1012; } enum "lease-active" { value 1013; } } description "DHCP message type"; } leaf direction { type types-sros:direction; description "Event that is either incoming or outgoing"; } leaf script { type leafref { path "../../../python-script/name"; } mandatory true; description "Python script name for the message specified by message-type"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dhcp list dhcp6 { when "not(../wlan-gw-group) and not(../nat-group)"; key "message-type direction"; description "Enter the dhcp6 list instance"; leaf message-type { type enumeration { enum "solicit" { value 2001; } enum "advertise" { value 2002; } enum "request" { value 2003; } enum "confirm" { value 2004; } enum "renew" { value 2005; } enum "rebind" { value 2006; } enum "reply" { value 2007; } enum "release" { value 2008; } enum "decline" { value 2009; } enum "reconfigure" { value 2010; } enum "info-request" { value 2011; } enum "relay-forward" { value 2012; } enum "relay-reply" { value 2013; } } description "DHCPv6 message type"; } leaf direction { type types-sros:direction; description "Event that is either incoming or outgoing"; } leaf script { type leafref { path "../../../python-script/name"; } mandatory true; description "Python script name for the message specified by message-type"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dhcp6 list radius { key "message-type direction"; description "Enter the radius list instance"; leaf message-type { type enumeration { enum "access-request" { value 1; } enum "access-accept" { value 2; } enum "access-reject" { value 3; } enum "accounting-request" { value 4; } enum "accounting-response" { value 5; } enum "access-challenge" { value 6; } enum "disconnect-request" { value 7; } enum "change-of-authorization-request" { value 8; } } description "RADIUS message type"; } leaf direction { type types-sros:direction; description "Event that is either incoming or outgoing"; } leaf script { type leafref { path "../../../python-script/name"; } mandatory true; description "Python script name for the message specified by message-type"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list radius list diameter { when "not(../wlan-gw-group) and not(../nat-group)"; key "message-type direction"; description "Enter the diameter list instance"; leaf message-type { type enumeration { enum "ccr" { value 3001; } enum "cca" { value 3002; } enum "rar" { value 3003; } enum "raa" { value 3004; } enum "cer" { value 3005; } enum "cea" { value 3006; } enum "dwr" { value 3007; } enum "dwa" { value 3008; } enum "dpr" { value 3009; } enum "dpa" { value 3010; } enum "asr" { value 3011; } enum "asa" { value 3012; } enum "aar" { value 3013; } enum "aaa" { value 3014; } } description "Diameter message type"; } leaf direction { type types-sros:direction; description "Event that is either incoming or outgoing"; } leaf script { type leafref { path "../../../python-script/name"; } mandatory true; description "Python script name for the message specified by message-type"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list diameter container vsd { when "not(../wlan-gw-group) and not(../nat-group)"; presence "Enter the 'vsd' context"; description "Enable the vsd context"; leaf script { type leafref { path "../../../python-script/name"; } mandatory true; description "Python script name for the received XMPP Service-Config response messages"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container vsd list gtpv1-c { when "not(../wlan-gw-group) and not(../nat-group)"; key "message-type direction"; description "Enter the gtpv1-c list instance"; leaf message-type { type enumeration { enum "echo-request" { value 5001; } enum "echo-response" { value 5002; } enum "version-not-supported" { value 5003; } enum "create-pdp-context-request" { value 5004; } enum "create-pdp-context-response" { value 5005; } enum "delete-pdp-context-request" { value 5008; } enum "delete-pdp-context-response" { value 5009; } enum "error-indication" { value 5010; } enum "end-marker" { value 5011; } } description "GTPv1-C message type"; } leaf direction { type types-sros:direction; description "Event that is either incoming or outgoing"; } leaf script { type leafref { path "../../../python-script/name"; } mandatory true; description "Python script name for the message specified by message-type"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list gtpv1-c list gtpv2-c { when "not(../wlan-gw-group) and not(../nat-group)"; key "message-type direction"; description "Enter the gtpv2-c list instance"; leaf message-type { type enumeration { enum "echo-request" { value 6001; } enum "echo-response" { value 6002; } enum "version-not-supported" { value 6003; } enum "create-session-request" { value 6004; } enum "create-session-response" { value 6005; } enum "modify-bearer-request" { value 6006; } enum "modify-bearer-response" { value 6007; } enum "delete-session-request" { value 6008; } enum "delete-session-response" { value 6009; } enum "delete-bearer-request" { value 6010; } enum "delete-bearer-response" { value 6011; } enum "release-access-bearers-request" { value 6012; } enum "release-access-bearers-response" { value 6013; } enum "downlink-data-notification" { value 6014; } enum "downlink-data-notification-ack" { value 6015; } enum "change-notification-request" { value 6016; } enum "change-notification-response" { value 6017; } enum "stop-paging-indication" { value 6018; } } description "GTPv2-C message type"; } leaf direction { type types-sros:direction; description "Event that is either incoming or outgoing"; } leaf script { type leafref { path "../../../python-script/name"; } mandatory true; description "Python script name for the message specified by message-type"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list gtpv2-c list pppoe { when "not(../wlan-gw-group) and not(../nat-group)"; key "message-type direction"; description "Enter the pppoe list instance"; leaf message-type { type enumeration { enum "session-lcp" { value 7001; } enum "session-pap" { value 7002; } enum "session-chap" { value 7003; } enum "session-ipcp" { value 7004; } enum "session-ip6cp" { value 7005; } enum "pado" { value 7006; } enum "padi" { value 7007; } enum "padr" { value 7008; } enum "pads" { value 7009; } enum "padt" { value 7010; } } description "PPPoE message type"; } leaf direction { type types-sros:direction; description "Event that is either incoming or outgoing"; } leaf script { type leafref { path "../../../python-script/name"; } mandatory true; description "Python script name for the message specified by message-type"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pppoe container syslog { when "not(../wlan-gw-group) and not(../nat-group)"; presence "Enter the 'syslog' context"; description "Enable the syslog context"; leaf script { type leafref { path "../../../python-script/name"; } mandatory true; description "Python script name for outgoing syslog messages"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container syslog } // list python-policy } // container python container qos { description "Enter the qos context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container md-auto-id { description "Enter the md-auto-id context"; container qos-policy-id-range { presence "Enter the 'qos-policy-id-range' context"; description "Enable the qos-policy-id-range context"; leaf start { type types-qos:qos-policy-id { range "2..65535"; } sros-ext:immutable; mandatory true; description "Lower value of the ID range, must be less than or equal to end value"; } leaf end { type types-qos:qos-policy-id { range "2..65535"; } sros-ext:immutable; mandatory true; description "Upper value of the ID range, must be greater than or equal to start value"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container qos-policy-id-range } // container md-auto-id list sap-ingress { key "sap-ingress-policy-name"; description "Enter the sap-ingress list instance"; leaf sap-ingress-policy-name { type types-qos:qos-policy-name; description "Name of this SAP-ingress QoS policy"; } leaf policy-id { type types-qos:qos-policy-id; sros-ext:immutable; description "The sap-ingress QoS policy identifier."; } leaf policer-allocation { type types-qos:sap-ingress-policer-alloc; sros-ext:immutable; default "none"; description "Specifies the fc-policer mapping for sap-ingress policy (allowed values : none / per-fc / per-fc-unicast-multipoint / per-fc-unicast-multicast / per-fc-unicast-broadcast-unknown-multicast)"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf default-fc { type types-qos:sap-ingress-fc-name; description "Default forwarding class or sub forwarding class for traffic not matching specific classification"; } leaf default-priority { type types-qos:default-priority; default "low"; description "Priority to assign to traffic ingressing as the default action queue"; } leaf ingress-classification-policy { type leafref { path "../../ingress-classification-policy/ingress-classification-policy-name"; } description "Attach ingress classification policy."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container subscriber-mgmt { description "Enter the subscriber-mgmt context"; container pcc-rule-entry { description "Enter the pcc-rule-entry context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-qos:entry-id; mandatory true; description "Starting entry at which the PCC-rule IP criteria entries are shared across several hosts"; } leaf end { type types-qos:entry-id; mandatory true; description "Ending entry at which the PCC-rule IP criteria entries are shared across several hosts"; } } // container range } // container pcc-rule-entry container dynamic-policer { description "Enter the dynamic-policer context"; leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority violate threshold of PIR leaky bucket of this policer"; } leaf packet-byte-offset { type types-qos:per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; default "minimal"; description "Mode of statistics collected by the policer"; } container policer-id-range { presence "Enter the 'policer-id-range' context"; description "Enable the policer-id-range context"; leaf start { type types-qos:ingress-policer-id; mandatory true; description "Starting place at which dynamic policers, required for PCC-rule IP criteria entries, will be inserted"; } leaf end { type types-qos:ingress-policer-id; mandatory true; description "Ending place at which dynamic policers, required for PCC-rule IP criteria entries, will be inserted"; } } // container policer-id-range container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // container dynamic-policer } // container subscriber-mgmt container mac-criteria { description "Enter the mac-criteria context"; leaf type { type types-qos:mac-criteria-type; sros-ext:immutable; default "normal"; description "MAC criteria filter type"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-qos:entry-id; description "Identifier for MAC match criteria and the corresponding action for a SAP-ingress policy"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf frame-type { type types-qos:mac-frame-type; description "Match MAC criteria for ingress SAP QoS policy"; } leaf etype { type types-services:etype-value; description "Ethernet type"; } leaf snap-pid { type int32 { range "0..65535"; } description "Parameter snap-pid as MAC filter match criteria"; } leaf snap-oui { type enumeration { enum "zero" { value 2; } enum "non-zero" { value 3; } } description "Parameter snap-oui as MAC filter match criteria"; } leaf atm-vci { type types-qos:atm-vc-indentifier; description "ATM VC Identifier to match as part of the MAC match criteria"; } container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; mandatory true; description "Source MAC address as QoS policy match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "Mask for source MAC address"; } } // container src-mac container dst-mac { presence "Enter the 'dst-mac' context"; description "Enable the dst-mac context"; leaf address { type yang:mac-address; mandatory true; description "Destination MAC address as QoS policy match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "Mask for destination MAC address"; } } // container dst-mac container dot1p { presence "Enter the 'dot1p' context"; description "Enable the dot1p context"; leaf priority { type types-qos:dot1p-priority; mandatory true; description "Value of 802.1P priority to use as a MAC filter match criterion"; } leaf mask { type types-qos:dot1p-priority; default "7"; description "Value of 802.1P mask to use as a MAC filter match criterion"; } } // container dot1p container llc-dsap { presence "Enter the 'llc-dsap' context"; description "Enable the llc-dsap context"; leaf dsap { type types-qos:service-access-point; mandatory true; description "DSAP value"; } leaf mask { type types-qos:service-access-point; default "255"; description "DSAP mask"; } } // container llc-dsap container llc-ssap { presence "Enter the 'llc-ssap' context"; description "Enable the llc-ssap context"; leaf ssap { type types-qos:service-access-point; mandatory true; description "SSAP value"; } leaf mask { type types-qos:service-access-point; default "255"; description "Source SAP mask"; } } // container llc-ssap container inner-tag { presence "Enter the 'inner-tag' context"; description "Enable the inner-tag context"; leaf vlan { type int32 { range "0..4095"; } mandatory true; description "Match against VID of the second or first VLAN tag in the packet carried transparently through service"; } leaf mask { type uint32 { range "1..4095"; } default "4095"; description "Mask to VID of the inner VLAN tag before comparing it with the inner-tag or outer-tag value"; } } // container inner-tag container outer-tag { presence "Enter the 'outer-tag' context"; description "Enable the outer-tag context"; leaf vlan { type int32 { range "0..4095"; } mandatory true; description "Match against VID of the first VLAN tag in the packet carried transparently through service"; } leaf mask { type uint32 { range "1..4095"; } default "4095"; description "First tag carried transparently through the service"; } } // container outer-tag } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the criteria"; } leaf priority { type types-qos:priority; description "Priority for the packet"; } leaf policer { type leafref { path "../../../../policer/policer-id"; } description "Policer identifier for the traffic matching MAC Criteria"; } } // container action } // list entry } // container mac-criteria container ip-criteria { description "Enter the ip-criteria context"; leaf type { type types-qos:ip-filter-type; sros-ext:immutable; default "normal"; description "IPv4 criteria entry type"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-qos:entry-id; description "IP criteria entry to create or edit for the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf tag { type uint32 { range "0..255"; } default "0"; description "Tag ID associated with the criteria entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Match performed when the packet is either a fragment or not, or matches all packets"; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Destination IPv4 address for SAP QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type leafref { path "../../../../../../match-list/ip-prefix-list/prefix-list-name"; } description "IP-prefix list as match criterion"; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Source IPv4 address for SAP QoS policy match criterion"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type leafref { path "../../../../../../match-list/ip-prefix-list/prefix-list-name"; } description "IP-prefix list as match criterion"; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port container vxlan-vni { description "Enter the vxlan-vni context"; choice vxlan-vni-mapping { case eq { leaf eq { type uint32 { range "1..16777215"; } description "Value 'equal to' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type uint32 { range "1..16777215"; } description "Start value of range"; } leaf end { type uint32 { range "1..16777215"; } description "End value for range"; } } // container range } } } // container vxlan-vni } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the criteria"; } leaf priority { type types-qos:priority; description "Priority for the packet"; } leaf policer { type leafref { path "../../../../policer/policer-id"; } description "Policer identifier for the traffic matching MAC Criteria"; } } // container action } // list entry } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf type { type types-qos:ip-filter-type; sros-ext:immutable; default "normal"; description "IPv6 criteria entry type"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-qos:entry-id; description "IPv6 criteria entry to create or edit for the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf tag { type uint32 { range "0..255"; } default "0"; description "Tag ID associated with the criteria entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "Next Header to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } enum "first-only" { value 4; } enum "non-first-only" { value 5; } } description "Match performed when the packet is either a fragment or not, or matches all packets"; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IP address to match with destination IP of the packet"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../../match-list/ipv6-prefix-list/prefix-list-name"; } description "IPv6 prefix list as match criterion for IPv6 addresses"; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IP address to match with source IP of the packet"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../../match-list/ipv6-prefix-list/prefix-list-name"; } description "IPv6 prefix list as match criterion for IPv6 addresses"; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port container vxlan-vni { description "Enter the vxlan-vni context"; choice vxlan-vni-mapping { case eq { leaf eq { type uint32 { range "1..16777215"; } description "Value 'equal to' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type uint32 { range "1..16777215"; } description "Start value of range"; } leaf end { type uint32 { range "1..16777215"; } description "End value for range"; } } // container range } } } // container vxlan-vni } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the criteria"; } leaf priority { type types-qos:priority; description "Priority for the packet"; } leaf policer { type leafref { path "../../../../policer/policer-id"; } description "Policer identifier for the traffic matching MAC Criteria"; } } // container action } // list entry } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type types-qos:ingress-queue-id; description "SAP-ingress policer identifier"; } leaf multipoint { type boolean; sros-ext:immutable; description "Apply as a multicast queue"; } leaf queue-type { type types-qos:queue-type; sros-ext:immutable; default "auto-expedited"; description "Priority that this queue receives from the hardware level schedulers"; } leaf queue-mode { type enumeration { enum "priority" { value 1; } enum "profile" { value 2; } } sros-ext:immutable; default "priority"; description "Operating mode for this queue"; } leaf cbs { type union { type int32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; default "auto"; description "Reserved buffer space for the queue"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Maximum buffer space that is allowed for queue"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf adv-config-policy { type leafref { path "../../../adv-config-policy/adv-config-policy-name"; } description "Name of the advanced configuration policy to apply with this queue"; } leaf packet-byte-offset { type types-qos:per-packet-offset { range "-32..30"; } default "0"; description "Value of the adjustment on the size of each packet for queue accounting"; } leaf cir-non-profiling { type boolean; default "false"; description "Prevents the CIR to be used for re-profiling a packet's state."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } choice rate-cir-fir-or-police { default "cir-fir"; case cir-fir { leaf cir { type types-qos:queue-cir-rate-maximum; units "kilobps"; default "0"; description "Administrative CIR"; } leaf fir { type types-qos:queue-fir-rate-maximum; units "kilobps"; default "0"; description "Administrative FIR"; } } case police { leaf police { type empty; description "Drop the traffic feeding into queue above the PIR rate"; } } } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf reference-rate { type enumeration { enum "port-limit" { value 2; } enum "local-limit" { value 3; } enum "reference-port-limit" { value 4; } } default "port-limit"; description "Reference rate"; } choice percent-rate-cir-fir-or-police { default "cir-fir"; case cir-fir { leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } leaf fir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative FIR percent."; } } case police { leaf police { type empty; description "Specifies that the out of profile traffic feeding into the physical queue instance should be dropped"; } } } } // container percent-rate } } container scheduler-parent { description "Enter the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; description "Scheduler to which this queue feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight; default "1"; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Level of priority while feeding to the parent"; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container scheduler-parent container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } leaf fir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational FIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail } // list queue list dscp { key "dscp-name"; description "Enter the dscp list instance"; leaf dscp-name { type types-qos:dscp-name; description "Name for the Differentiated Services Code Point (DSCP)"; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the specific DSCP"; } leaf priority { type types-qos:priority; description "Priority for the packet"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dscp list dot1p { key "dot1p-value"; description "Enter the dot1p list instance"; leaf dot1p-value { type types-qos:dot1p-priority; description "Dot1p value to match in the packet"; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the specific Dot1p"; } leaf priority { type types-qos:priority; description "Priority for packets that match the Dot1p value"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dot1p list prec { key "prec-value"; description "Enter the prec list instance"; leaf prec-value { type types-qos:precedence-value; description "Precedence value for which mapping is performed"; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the precedence value"; } leaf priority { type types-qos:priority; description "Priority for the matching traffic"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prec list lsp-exp { key "lsp-exp-value"; description "Enter the lsp-exp list instance"; leaf lsp-exp-value { type types-qos:lsp-exp-value; description "Value to assign the unique MPLS LSP EXP value that will match the lsp-exp rule"; } leaf fc { type types-qos:sap-ingress-fc-name; description "Forwarding class or sub forwarding class to classify traffic matching the LSP EXP value"; } leaf priority { type types-qos:priority; description "Priority for the matching traffic"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list lsp-exp list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type types-qos:ingress-policer-id; description "SAP-ingress policer identifier"; } leaf description { type types-sros:description; description "Text description"; } leaf stat-mode { type types-qos:sap-ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority violate threshold of PIR leaky bucket"; } leaf high-prio-only { type types-qos:burst-percent; description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf packet-byte-offset { type types-qos:per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf adv-config-policy { type leafref { path "../../../adv-config-policy/adv-config-policy-name"; } description "Name of the advanced configuration policy to apply with this queue"; } leaf profile-capped { type boolean; default "false"; description "Enforce an overall in-profile burst limit to the CIR bucket at ingress policer"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:policer-cir-rate-maximum; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR percent"; } leaf reference-rate { type enumeration { enum "local-limit" { value 2; } enum "reference-port-limit" { value 3; } } default "local-limit"; description "Reference rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // list policer list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-qos:sap-ingress-fc-name; description "Forwarding class or the sub forwarding class for which this mapping is performed"; } leaf profile { type types-qos:profile; description "Profile of the packets associated with this forwarding class"; } leaf de-1-out-profile { type boolean; default "false"; description "Frames with DE value to be assigned as out of profile"; } leaf egress-fc { type types-sros:fc-name; description "Forwarding class to override the forwarding class determined by ingress classification"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice queue-policer-mapping { case queue { leaf queue { type leafref { path "../../queue/queue-id"; } description "Queue to assign for packets in this forwarding class"; } } case queue-group-queue { container queue-group-queue { presence "Enter the 'queue-group-queue' context"; description "Enable the queue-group-queue context"; leaf queue-group-name { type leafref { path "../../../../queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } mandatory true; description "Queue group name associated with queue"; } leaf queue { type leafref { path "../../../../queue-group-templates/ingress/queue-group[ingress-queue-group-name=current()/../queue-group-name]/queue/queue-id"; } mandatory true; description "Queue to assign for packets in this forwarding class"; } } // container queue-group-queue } case policer { leaf policer { type types-qos:ingress-policer-id; description "Policer identifier for the unicast normal traffic in this forwarding class"; } leaf fp-redirect-group-policer { type empty; description "Specified policer to be used as defined in the FP (forwarding-plane)"; } } } choice multicast-queue-policer-mapping { case multicast-queue { leaf multicast-queue { type leafref { path "../../queue/queue-id"; } description "Broadcast queue to assign for packets in this forwarding class"; } } case multicast-queue-group-queue { container multicast-queue-group-queue { presence "Enter the 'multicast-queue-group-queue' context"; description "Enable the unknown-queue-group-queue context"; leaf queue-group-name { type leafref { path "../../../../queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } mandatory true; description "Queue group name associated with broadcast queue"; } leaf queue { type leafref { path "../../../../queue-group-templates/ingress/queue-group[ingress-queue-group-name=current()/../queue-group-name]/queue/queue-id"; } mandatory true; description "Broadcast queue to assign for packets in this forwarding class"; } } // container multicast-queue-group-queue } case multicast-policer { leaf multicast-policer { type types-qos:ingress-policer-id; description "Policer identifier for the unknown broadcast traffic in this forwarding class"; } leaf fp-redirect-group-multicast-policer { type empty; description "Broadcast policer to be used as defined in the FP (forwarding-plane)"; } } } choice broadcast-queue-policer-mapping { case broadcast-queue { leaf broadcast-queue { type leafref { path "../../queue/queue-id"; } description "Broadcast queue to assign for packets in this forwarding class"; } } case broadcast-queue-group-queue { container broadcast-queue-group-queue { presence "Enter the 'broadcast-queue-group-queue' context"; description "Enable the unknown-queue-group-queue context"; leaf queue-group-name { type leafref { path "../../../../queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } mandatory true; description "Queue group name associated with broadcast queue"; } leaf queue { type leafref { path "../../../../queue-group-templates/ingress/queue-group[ingress-queue-group-name=current()/../queue-group-name]/queue/queue-id"; } mandatory true; description "Broadcast queue to assign for packets in this forwarding class"; } } // container broadcast-queue-group-queue } case broadcast-policer { leaf broadcast-policer { type types-qos:ingress-policer-id; description "Policer identifier for the unknown broadcast traffic in this forwarding class"; } leaf fp-redirect-group-broadcast-policer { type empty; description "Broadcast policer to be used as defined in the FP (forwarding-plane)"; } } } choice unknown-queue-policer-mapping { case unknown-queue { leaf unknown-queue { type leafref { path "../../queue/queue-id"; } description "Broadcast queue to assign for packets in this forwarding class"; } } case unknown-queue-group-queue { container unknown-queue-group-queue { presence "Enter the 'unknown-queue-group-queue' context"; description "Enable the unknown-queue-group-queue context"; leaf queue-group-name { type leafref { path "../../../../queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } mandatory true; description "Queue group name associated with broadcast queue"; } leaf queue { type leafref { path "../../../../queue-group-templates/ingress/queue-group[ingress-queue-group-name=current()/../queue-group-name]/queue/queue-id"; } mandatory true; description "Broadcast queue to assign for packets in this forwarding class"; } } // container unknown-queue-group-queue } case unknown-policer { leaf unknown-policer { type types-qos:ingress-policer-id; description "Policer identifier for the unknown broadcast traffic in this forwarding class"; } leaf fp-redirect-group-unknown-policer { type empty; description "Broadcast policer to be used as defined in the FP (forwarding-plane)"; } } } container in-remark { description "Enter the in-remark context"; choice in-profile { case dscp { leaf dscp { type types-qos:dscp-name; description "Specifies the DSCP to be used while remarking the in profile packets when the in-profile remarking type is 'dscp'."; } } case prec { leaf prec { type types-qos:precedence-value; description "Specifies the precedence value to be used while remarking the in profile packets when the in-profile remarking type is 'precedence'."; } } } } // container in-remark container out-remark { description "Enter the out-remark context"; choice out-profile { case dscp { leaf dscp { type types-qos:dscp-name; description "Specifies the DSCP to be used while remarking the out profile packets when the out-profile remarking type is 'dscp'."; } } case prec { leaf prec { type types-qos:precedence-value; description "Specifies the precedence value to be used while remarking the out profile packets when the out-profile remarking type is 'precedence'."; } } } } // container out-remark } // list fc } // list sap-ingress list slope-policy { key "slope-policy-name"; max-elements 511; description "Enter the slope-policy list instance"; leaf slope-policy-name { type types-sros:named-item; description "Slope policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf time-average-factor { type uint32 { range "0..15"; } default "7"; description "Apply time average factor to weight between previous and new shared buffer utilization result"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container highplus-slope { description "Enter the highplus-slope context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of the highplus priority RED slope"; } leaf start-avg { type uint32 { range "0..100"; } description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-avg { type uint32 { range "0..100"; } description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { type uint32 { range "0..100"; } description "Drop probability increase at highplus start-average"; } } // container highplus-slope container high-slope { description "Enter the high-slope context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of the high priority RED slope"; } leaf start-avg { type uint32 { range "0..100"; } description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-avg { type uint32 { range "0..100"; } description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { type uint32 { range "0..100"; } description "Drop probability to increase at high start-average"; } } // container high-slope container low-slope { description "Enter the low-slope context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of the low priority RED slope"; } leaf start-avg { type uint32 { range "0..100"; } description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-avg { type uint32 { range "0..100"; } description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { type uint32 { range "0..100"; } description "Drop probability to increase at low start-average"; } } // container low-slope container exceed-slope { description "Enter the exceed-slope context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of the exceed priority RED slope"; } leaf start-avg { type uint32 { range "0..100"; } description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-avg { type uint32 { range "0..100"; } description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { type uint32 { range "0..100"; } description "Drop probability to increase at exceed start-average"; } } // container exceed-slope } // list slope-policy list hsmda-slope-policy { status obsolete; key "hsmda-slope-policy-name"; max-elements 511; description "Enter the hsmda-slope-policy list instance"; leaf hsmda-slope-policy-name { status obsolete; type types-sros:named-item; description "HSMDA slope policy name"; } leaf description { status obsolete; type types-sros:description; description "Text description"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container high-slope { status obsolete; description "Enter the high-slope context"; leaf admin-state { status obsolete; type types-sros:admin-state; default "enable"; description "Administrative state of the high priority RED slope"; } leaf start-depth { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-depth { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Drop probability when the HSMDA queue depth reaches maximum depth"; } } // container high-slope container low-slope { status obsolete; description "Enter the low-slope context"; leaf admin-state { status obsolete; type types-sros:admin-state; default "enable"; description "Administrative state of the low priority RED slope"; } leaf start-depth { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "90.00"; description "Buffer percentage after which the drop probability starts to rise above value"; } leaf max-depth { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "90.00"; description "Buffer percentage after which the drop probability reaches maximum average"; } leaf max-prob { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Drop probability when the HSMDA queue depth reaches maximum depth"; } } // container low-slope } // list hsmda-slope-policy list hsmda-wrr-policy { status obsolete; key "hsmda-wrr-policy-name"; max-elements 31; description "Enter the hsmda-wrr-policy list instance"; leaf hsmda-wrr-policy-name { status obsolete; type types-sros:named-item; description "HSMDA WRR policy name"; } leaf description { status obsolete; type types-sros:description; description "Text description"; } leaf include-queues { status obsolete; type enumeration { enum "1-2" { value 1; } enum "1-3" { value 2; } } default "1-2"; description "Queues to include includes into the HSMDA WRR scheduling loop policy"; } leaf schedule-using-class { status obsolete; type int32 { range "1..3"; } default "1"; description "Class to schedule the queues specified within the HSMDA scheduler"; } leaf class-agg-weight { status obsolete; type int32 { range "1|2|4|8"; } default "1"; description "Weight assigned to the group of queues specified within the HSMDA scheduler"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list hsmda-wrr-policy list hsmda-pool-policy { status obsolete; key "hsmda-pool-policy-name"; max-elements 31; description "Enter the hsmda-pool-policy list instance"; leaf hsmda-pool-policy-name { status obsolete; type types-sros:named-item; description "The name of the HSMDA Pool Policy."; } leaf description { status obsolete; type types-sros:description; description "Text description"; } leaf system-reserve { status obsolete; type decimal64 { range "1.00..30.00"; fraction-digits 2; } default "10.00"; description "Specifies the percentage of HSMDA buffers reserved for internal system use."; } leaf-list apply-groups { status obsolete; type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root-tier { status obsolete; description "Enter the root-tier context"; list root-pool { status obsolete; key "root-pool-id"; description "Enter the root-pool list instance"; leaf root-pool-id { status obsolete; type uint32 { range "1..8"; } description "Root pool identifier for the HSMDA pool policy"; } leaf allocation-weight { status obsolete; type uint32 { range "0..100"; } default "0"; description "Specifies the weight that will be applied to the first root pool and is divided by the sum of all root pool weights to derive the pool's buffer allocation factor."; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list root-pool } // container root-tier container class-tier { status obsolete; description "Enter the class-tier context"; list class-pool { status obsolete; key "class-pool-id"; description "Enter the class-pool list instance"; leaf class-pool-id { status obsolete; type uint32 { range "1..8"; } description "Class pool for the HSMDA pool policy"; } leaf root-parent { status obsolete; type leafref { path "../../../root-tier/root-pool/root-pool-id"; } description "Specifies the parent root to which this class-pool is associated."; } leaf allocation-percent { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Specifies the percentage of the root-pool with which it is associated, as specified by root-parent will be available to this class-pool."; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list class-pool } // container class-tier } // list hsmda-pool-policy list hsmda-scheduler-policy { status obsolete; key "hsmda-scheduler-policy-name"; max-elements 63; description "Enter the hsmda-scheduler-policy list instance"; leaf hsmda-scheduler-policy-name { status obsolete; type types-sros:named-item; description "The name of the HSMDA scheduler policy."; } leaf description { status obsolete; type types-sros:description; description "Text description"; } leaf max-rate { status obsolete; type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } units "megabps"; default "max"; description "Specifies the maximum rate for this HSMDA scheduler policy."; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..327680"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group { status obsolete; key "group-id"; description "Enter the group list instance"; leaf group-id { status obsolete; type uint32 { range "1..2"; } description "Group ID for the HSMDA scheduler policy"; } leaf rate { status obsolete; type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } units "megabps"; default "max"; description "Specifies the group maximum rate."; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..327680"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list group list scheduling-class { status obsolete; key "class-id"; description "Enter the scheduling-class list instance"; leaf class-id { status obsolete; type uint32 { range "1..8"; } description "Class identifier for the HSMDA scheduler policy scheduling class"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-group { status obsolete; default "rate"; case rate { status obsolete; leaf rate { status obsolete; type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } units "megabps"; default "max"; description "Specifies the scheduling class maximum rate."; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..327680"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } } case group { status obsolete; container group { status obsolete; presence "Enter the 'group' context"; description "Enable the group context"; leaf group-id { status obsolete; type uint32 { range "1..2"; } mandatory true; description "Specifies the group associated with this scheduling class."; } leaf weight { status obsolete; type int32 { range "1..100"; } default "1"; description "Specifies the weight in group associated with this scheduling class."; } } // container group } } } // list scheduling-class } // list hsmda-scheduler-policy list atm-td-profile { key "atm-td-profile-id"; description "Enter the atm-td-profile list instance"; leaf atm-td-profile-id { type types-qos:atm-traffic-descr-idx; description "ATM traffic descriptor ID"; } leaf shaping { type boolean; description "Enable cell level shaping when the ATP traffic description profile is applied to an ATM SAP queue"; } leaf service-category { type types-qos:atm-service-category; default "ubr"; description "ATM service category"; } leaf description { type types-sros:description; description "Text description"; } leaf descriptor-type { type enumeration { enum "p01" { value 0; } enum "p01-and-s01" { value 1; } enum "p01-and-s0" { value 2; } enum "p01-and-s0-tag" { value 3; } } description "Select the type of ATM traffic descriptor"; } leaf policing { type boolean; default "false"; description "Allow ingress traffic policing"; } leaf clp-tagging { type boolean; default "false"; description "Control the setting of the CLP bit in the ATM cell header for egress traffic on IES or VPRN SAP"; } leaf weight { type int32 { range "1..255"; } description "Relative weight for the ATM traffic descriptor based on ATM VP shaper scheduling"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container traffic { description "Enter the traffic context"; leaf sir { type uint32; units "kilobps"; default "0"; description "Sustained information rate"; } leaf pir { type uint32; units "kilobps"; description "Peak information rate"; } leaf mir { type uint32; units "kilobps"; default "0"; description "Minimum information rate"; } leaf mbs { type uint32; description "Maximum burst size in cell"; } leaf cdvt { type uint32; units "microseconds"; default "250"; description "Cell Delay Variation Tolerance"; } } // container traffic } // list atm-td-profile list network-queue { key "network-queue-policy"; max-elements 255; description "Enter the network-queue list instance"; leaf network-queue-policy { type types-sros:named-item; description "Name for network queue policy"; } leaf description { type types-sros:description; description "Text description"; } leaf hs-attachment-policy { type leafref { path "../../hs-attachment-policy/name"; } description "HS attachment policy applied"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress-hsmda { status obsolete; description "Enter the egress-hsmda context"; leaf packet-byte-offset { status obsolete; type types-qos:egress-per-packet-offset; default "0"; description "Packet byte offset to use for the HSMDA egress queues"; } leaf wrr-policy { status obsolete; type leafref { path "../../../hsmda-wrr-policy/hsmda-wrr-policy-name"; } description "WRR policy to use on this HSMDA egress queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type types-qos:egress-queue-id; description "Egress HSMDA queue ID"; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..1000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf mbs { status obsolete; type union { type types-qos:bytes { range "0..2688000"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Percentage of buffer space allowed for the queue"; } leaf percent-rate { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "PIR percentage rate"; } leaf slope-policy { status obsolete; type leafref { path "../../../../hsmda-slope-policy/hsmda-slope-policy-name"; } description "Slop policy name to override the default slope policy for the named buffer pool"; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight; default "1"; description "Weight value for the HSMDA queue"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container adaptation-rule { status obsolete; description "Enter the adaptation-rule context"; leaf pir { status obsolete; type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list queue } // container egress-hsmda list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class name"; } leaf queue { type leafref { path "../../queue/queue-id"; } description "Queue for packets in this forwarding class"; } leaf multicast-queue { type leafref { path "../../queue/queue-id"; } description "Multicast queue for packets in this forwarding class"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress-hsmda { status obsolete; description "Enter the egress-hsmda context"; leaf queue { status obsolete; type types-qos:egress-queue-id; description "Egress HSDMA queue for packets in this forwarding class"; } } // container egress-hsmda } // list fc list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type types-qos:network-queue-queue-id; description "Queue identifier"; } leaf multipoint { type boolean; sros-ext:immutable; description "Apply as a multicast queue"; } leaf queue-type { type enumeration { enum "expedited" { value 1; } enum "auto-expedited" { value 2; } enum "best-effort" { value 3; } } sros-ext:immutable; default "auto-expedited"; description "Priority that this queue receives from the hardware level schedulers"; } leaf cbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Reserved buffer space for the queue"; } leaf mbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Percentage of buffer space allowed for the queue"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Average packet-to-frame encapsulation overhead"; } leaf hs-alt-port-class-pool { type boolean; default "false"; description "Use HS alternate class port pool buffer for traffic"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Scheduling class weight"; } leaf hs-mbs { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "100.00"; description "Percentage of buffer space allowed for the HS queue"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; leaf pir { type int32 { range "1..100"; } units "percent"; default "100"; description "PIR percentage rate"; } leaf cir { type int32 { range "0..100"; } units "percent"; description "CIR percentage rate"; } leaf fir { type int32 { range "0..100"; } units "percent"; default "0"; description "Specifies the FIR percentage rate."; } } // container rate container port-parent { presence "Enter the 'port-parent' context"; description "Enable the port-parent context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf weight { type types-qos:weight; default "1"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } } // container port-parent container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } leaf fir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational FIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type leafref { path "../../../../slope-policy/slope-policy-name"; } description "Slope policy name"; } } // container hs-wred-queue } // list queue list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type types-qos:hs-wrr-group-id; description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Weight of scheduling class"; } leaf rate { type uint32 { range "1..100"; } default "100"; description "PIR rate"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list hs-wrr-group } // list network-queue list shared-queue { key "shared-queue-policy-name"; description "Enter the shared-queue list instance"; leaf shared-queue-policy-name { type types-sros:named-item; description "Name for the shared queue policy"; } leaf description { type types-sros:description-or-empty; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type int32 { range "1..32"; } description "Shared queue identifier"; } leaf multipoint { type boolean; description "Apply as a multicast queue"; } leaf queue-type { type enumeration { enum "expedited" { value 1; } enum "auto-expedited" { value 2; } enum "best-effort" { value 3; } } default "auto-expedited"; description "Priority that this queue receives from the hardware level schedulers"; } leaf cbs { type int32 { range "0..100"; } units "percent"; description "Committed burst size as a percentage of the maximum reserved buffer space for the queue"; } leaf mbs { type int32 { range "0..100"; } units "percent"; description "Maximum burst size as a percentage of maximum reserved buffer space for the queue"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; leaf pir { type int32 { range "1..100"; } units "percent"; default "100"; description "PIR percentage rate"; } leaf cir { type int32 { range "0..100"; } units "percent"; description "CIR percentage rate"; } leaf fir { type int32 { range "0..100"; } units "percent"; default "0"; description "Specifies the FIR percentage rate."; } } // container rate container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail } // list queue list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class mapping to queue mappings"; } leaf queue { type int32 { range "1..8"; } description "Logical queue that the traffic, classified into this forwarding class, should use"; } leaf broadcast-queue { type int32 { range "9..32"; } description "Logical queue that the broadcast traffic, classified into this forwarding class, should use"; } leaf multicast-queue { type int32 { range "9..32"; } description "Logical queue that the multicast traffic, classified into this forwarding class, should use"; } leaf unknown-queue { type int32 { range "9..32"; } description "Logical queue that the unknown traffic, classified into this forwarding class, should use"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list fc } // list shared-queue list adv-config-policy { key "adv-config-policy-name"; max-elements 255; description "Enter the adv-config-policy list instance"; leaf adv-config-policy-name { type types-sros:named-item; description "Advanced QoS policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container child-control { description "Enter the child-control context"; container bandwidth-distribution { description "Enter the bandwidth-distribution context"; leaf enqueue-on-pir-zero { type boolean; default "false"; description "Enqueue the packets when bandwidth-distribution granularity rate is set to zero"; } leaf internal-scheduler-weight-mode { type types-qos:internal-scheduler-weight-mode; description "Weight mode applied to this advanced QoS policy"; } leaf limit-pir-zero-drain { type boolean; default "false"; description "Throttle the queue draining based on bandwidth-distribution granularity rate"; } leaf lub-init-min-pir { type boolean; default "false"; description "Apply minimum rate operational PIR to queue for use by enqueued packets prior to an HQoS iteration"; } container above-offered-cap { description "Enter the above-offered-cap context"; choice rate-or-percent-rate { case rate { leaf rate { type union { type int64 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } description "Explicit number to assign as limit to the child's fair share increase"; } } case percent { leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Percentage of the child's administrative PIR used as the fair share increase limit"; } } } } // container above-offered-cap container above-offered-allowance { description "Enter the above-offered-allowance context"; container unconsumed-agg-rate { description "Enter the unconsumed-agg-rate context"; leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "100.00"; description "Percentage of the unconsumed aggregate rate"; } } // container unconsumed-agg-rate container delta-consumed-agg-rate { description "Enter the delta-consumed-agg-rate context"; leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "20.00"; description "Percentage of the delta consumed aggregate rate"; } } // container delta-consumed-agg-rate container unconsumed-higher-tier-rate { description "Enter the unconsumed-higher-tier-rate context"; leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "100.00"; description "Percentage of the unconsumed higher-tier rate"; } } // container unconsumed-higher-tier-rate container delta-consumed-higher-tier-rate { description "Enter the delta-consumed-higher-tier-rate context"; leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "5.00"; description "Percentage of the delta consumed higher-tier rate"; } } // container delta-consumed-higher-tier-rate } // container above-offered-allowance container granularity { description "Enter the granularity context"; choice rate-or-percent-rate { case rate { leaf rate { type int64 { range "0..100000000"; } description "Rounding rate step value"; } } case percent { leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Rounding percentage value for administrative PIR"; } } } } // container granularity } // container bandwidth-distribution container offered-measurement { description "Enter the offered-measurement context"; leaf fast-start { type boolean; default "false"; description "Allow fast detection of initial bandwidth on a child policer or queue associated with policy"; } leaf fast-stop { type boolean; default "false"; description "Allow fast detection of lack of offered rate on a child policer or queue associated with the policy"; } leaf sample-interval { type uint32 { range "1..8"; } default "1"; description "Interval for sampling the child's offered rate"; } container add { description "Enter the add context"; leaf min-only { type boolean; default "false"; description "Use specified increase value as a minimum offered rate even for inactive queues or policers"; } leaf active-min-only { type boolean; default "false"; description "Use increase in rate or percentage as minimum offered rate only for active queues or policers"; } choice rate-or-percent-rate { case rate { leaf rate { type int64 { range "0..100000000"; } description "Rate value to add to child's offered rate"; } } case percent { leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Percentage of child's administrative PIR to add to child's offered rate"; } } } } // container add container granularity { description "Enter the granularity context"; choice rate-or-percent-rate { case rate { leaf rate { type int64 { range "0..100000000"; } description "Value to use as child's offered rate change sensitivity value"; } } case percent { leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Percentage of child's administrative PIR used as threshold sensitivity to offered rate change"; } } } } // container granularity container hold-time { description "Enter the hold-time context"; leaf high-rate { type uint32 { range "0..60"; } default "0"; description "Time during which current offered rate is maintained for a child policer or queue"; } leaf active-min-only { type boolean; default "false"; description "Use specified increase value as minimum offered rate only for active queues or policers"; } } // container hold-time container max-decrement { description "Enter the max-decrement context"; choice rate-or-percent-rate { case rate { leaf rate { type int64 { range "0..100000000"; } description "Value to use as the decrement limit to offered rate change"; } } case percent { leaf percent { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Value of the child's administrative PIR to use as the decrement limit to offered rate change"; } } } } // container max-decrement container time-average-factor { description "Enter the time-average-factor context"; leaf weighting-factor { type uint32 { range "0..64"; } default "0"; description "New offered rate with a sample of the previous offered rate"; } leaf dec-only { type boolean; default "false"; description "Apply time average factor adjustment when the offered rate decreases compared to previous"; } } // container time-average-factor } // container offered-measurement } // container child-control } // list adv-config-policy list mlppp-profile-ingress { key "mc-mlppp-ingress-prof-index"; max-elements 128; description "Enter the mlppp-profile-ingress list instance"; leaf mc-mlppp-ingress-prof-index { type uint32 { range "1..65535"; } description "Index of the ingress MultiClass MLPPP profile"; } leaf description { type types-sros:description-or-empty; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list class { key "class-id"; description "Enter the class list instance"; leaf class-id { type int32 { range "0..3"; } description "Policy class"; } leaf reassembly-timeout { type uint32 { range "1..1000"; } description "Reassembly timeout for this policy"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list class } // list mlppp-profile-ingress list mlppp-profile-egress { key "mc-mlppp-egress-prof-index"; max-elements 128; description "Enter the mlppp-profile-egress list instance"; leaf mc-mlppp-egress-prof-index { type uint32 { range "1..65535"; } description "Index of the egress MultiClass MLPPP profile"; } leaf description { type types-sros:description-or-empty; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list class { key "class-id"; description "Enter the class list instance"; leaf class-id { type int32 { range "0..3"; } description "Policy class"; } leaf mir { type uint32 { range "1..100"; } description "Minimum information rate (MIR) as percentage"; } leaf max-queue-size { type uint32 { range "1..1000"; } description "Buffer queue size"; } leaf weight { type uint32 { range "1..100"; } description "Weight of this multiclass class as a percentage"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list class list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class name"; } leaf mlppp-class { type uint32 { range "0..3"; } description "Mapping of the system forwarding class to the MLPPP classes"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list fc } // list mlppp-profile-egress list mc-fr-profile-ingress { key "mc-fr-ingress-prof-index"; max-elements 128; description "Enter the mc-fr-profile-ingress list instance"; leaf mc-fr-ingress-prof-index { type uint32 { range "1..65535"; } description "Index of the ingress MultiClass Frame Relay profile"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list class { key "class-id"; description "Enter the class list instance"; leaf class-id { type int32 { range "0..3"; } description "Frame-relay ingress class per multi-class frame-relay ingress profile"; } leaf reassembly-timeout { type uint32 { range "1..1000"; } description "Reassembly timeout for a specific frame-relay multi-class ingress class"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list class } // list mc-fr-profile-ingress list mc-fr-profile-egress { key "mc-fr-egress-prof-index"; max-elements 128; description "Enter the mc-fr-profile-egress list instance"; leaf mc-fr-egress-prof-index { type uint32 { range "1..65535"; } description "Egress MultiClass Frame Relay Profile Index"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list class { key "class-id"; description "Enter the class list instance"; leaf class-id { type int32 { range "0..3"; } description "Frame-relay egress class per multi-class frame-relay egress profile"; } leaf mir { type uint32 { range "1..100"; } description "Minimum information rate (MIR) as percentage"; } leaf max-queue-size { type uint32 { range "1..1000"; } description "Buffer queue size"; } leaf weight { type uint32 { range "1..100"; } description "Weight of this multiclass class as a percentage"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list class } // list mc-fr-profile-egress list policer-control-policy { key "policer-control-policy-name"; max-elements 2047; description "Enter the policer-control-policy list instance"; leaf policer-control-policy-name { type types-sros:named-item; description "Name of Policer Control Policy"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf profile-preferred { type boolean; default "false"; description "Provide a preference to consume PIR bucket tokens at a given priority level"; } choice max-rate-or-max-percent-rate { default "max-rate"; case max-rate { leaf max-rate { type types-qos:max-rate; default "max"; description "Maximum frame-based bandwidth limit of the arbiter"; } } case max-percent-rate { leaf max-percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Maximum rate of the arbiter"; } } } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Minimum amount of cumulative buffer space"; } leaf fixed-mbs { type boolean; default "false"; description "Consider cumulative buffer space to be fixed"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root list tier { key "tier-id"; description "Enter the tier list instance"; leaf tier-id { type int32 { range "1..2"; } description "Tier for policer control policer arbiter"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list arbiter { key "arbiter-name"; description "Enter the arbiter list instance"; leaf arbiter-name { type types-sros:named-item; description "Arbiter name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { leaf rate { type types-qos:max-rate; default "max"; description "Maximum frame-based bandwidth limit"; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Maximum rate of the arbiter"; } leaf reference-rate { type enumeration { enum "local-limit" { value 2; } enum "reference-port-limit" { value 3; } } default "local-limit"; description "Reference rate"; } } } container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Specifies the arbiter to which this policer is feeding to."; } leaf level { type types-qos:hierarchy-level; default "1"; description "Specifies the level of priority while feeding to the parent."; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this policer is feeding to."; } } // container arbiter-parent } // list arbiter } // list tier } // list policer-control-policy container queue-group-templates { description "Enter the queue-group-templates context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list queue-group { key "ingress-queue-group-name"; description "Enter the queue-group list instance"; leaf ingress-queue-group-name { type types-sros:named-item; description "Name of Ingress Queue Group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type types-qos:ingress-queue-id; description "Ingress Queue-Group Queue identifier"; } leaf multipoint { type boolean; sros-ext:immutable; default "false"; description "Create an ingress multipoint queue"; } leaf queue-type { type types-qos:queue-group-queue-type; sros-ext:immutable; default "best-effort"; description "Priority that this queue receives from the hardware level schedulers"; } leaf queue-mode { type types-qos:queue-mode; sros-ext:immutable; default "priority"; description "Specifies the mode in which the queue is operating. This attribute is associated with the queue at the time of creation and cannot be modified thereafter."; } leaf cbs { type union { type types-qos:bytes { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; default "auto"; description "Reserved buffer space for the queue"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Maximum buffer space that is allowed for queue"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf adv-config-policy { type leafref { path "../../../../../adv-config-policy/adv-config-policy-name"; } description "Name of the advanced configuration policy to apply with this queue"; } leaf packet-byte-offset { type types-qos:per-packet-offset; default "0"; description "Value of the adjustment on the size of each packet for queue accounting"; } leaf cir-non-profiling { type boolean; default "false"; description "Specifies that the CIR affect the scheduling priority of a queue but does not modify the profile of packets depending on the specified CIR."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR"; } leaf reference-rate { type enumeration { enum "port-limit" { value 2; } enum "local-limit" { value 3; } enum "reference-port-limit" { value 4; } } default "port-limit"; description "Reference rate"; } choice percent-rate-cir-fir-or-police { default "cir-fir"; case cir-fir { leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR"; } leaf fir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative FIR"; } } case police { leaf police { type empty; description "Drop out-of-profile traffic feeding into physical queue"; } } } } // container percent-rate } case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } choice cir-and-fir-or-policed { default "cir-and-fir"; case cir-and-fir { leaf cir { type types-qos:queue-cir-rate; units "kilobps"; default "0"; description "Administrative CIR"; } leaf fir { type types-qos:queue-cir-rate; units "kilobps"; default "0"; description "Administrative FIR"; } } case police { leaf police { type empty; description "Specifies that the out of profile traffic feeding into the physical queue instance should be dropped"; } } } } // container rate } } container scheduler-parent { description "Enter the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; description "Scheduler to which this queue feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight; default "1"; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Level of priority while feeding to the parent"; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container scheduler-parent container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Adaptation rule to apply when assigning the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } leaf fir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational FIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low } // container drop-tail } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type types-qos:ingress-policer-id { range "1..32"; } description "Ingress Queue-Group Policer identifier"; } leaf description { type types-sros:description; description "Text description"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority 'violate' threshold of PIR leaky bucket of this policer"; } leaf high-prio-only { type types-qos:burst-percent; description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic"; } leaf packet-byte-offset { type types-qos:per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf profile-capped { type boolean; default "false"; description "Enforce a limit on the profile"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; default "minimal"; description "Mode of statistics collected by the policer"; } leaf adv-config-policy { type leafref { path "../../../../../adv-config-policy/adv-config-policy-name"; } description "Name of the advanced configuration policy to apply with this queue"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:policer-cir-rate; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // list policer } // list queue-group } // container ingress container egress { description "Enter the egress context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list queue-group { key "egress-queue-group-name"; description "Enter the queue-group list instance"; leaf egress-queue-group-name { type types-sros:named-item; description "Name of Egress Queue Group"; } leaf description { type types-sros:description-or-empty; description "Text description"; } leaf queues-hqos-manageable { type boolean; default "true"; description "Manage queues through the Hierarchical QoS process"; } leaf hs-attachment-policy { type leafref { path "../../../../hs-attachment-policy/name"; } description "HS attachment policy applied"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf low-burst-max-class { status obsolete; type uint32 { range "1..8"; } default "8"; description "Specifies which class should use the low priority burst threshold. Use the low priority burst threshold for all classes starting from 1, up to and including that specified by this value. Use the high priority burst threshold for all classes greater than the this value, up to and including class 8."; } leaf packet-byte-offset { status obsolete; type types-qos:egress-per-packet-offset; default "0"; description "Packet byte offset to use for the HSMDA egress queues"; } leaf wrr-policy { status obsolete; type leafref { path "../../../../../hsmda-wrr-policy/hsmda-wrr-policy-name"; } description "WRR policy to use on this HSMDA egress queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type types-qos:egress-queue-id; description "Egress HSMDA queue ID"; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..1000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate; default "max"; description "PIR rate"; } leaf slope-policy { status obsolete; type leafref { path "../../../../../../hsmda-slope-policy/hsmda-slope-policy-name"; } description "Name of the slope policy which overrides the default policy for the named buffer pool"; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight; default "1"; description "Weight value for the HSMDA queue"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container adaptation-rule { status obsolete; description "Enter the adaptation-rule context"; leaf pir { status obsolete; type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list queue } // container hsmda-queues list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container queue { description "Enter the queue context"; choice queue-or-none { default "none"; case queue-id { leaf queue-id { type leafref { path "../../../queue/queue-id"; } description "Queue defined in forwarding class mapping"; } } case none { leaf none { type empty; description "No mid-pool is associated with this parent-pool"; } } } } // container queue } // list fc list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type types-qos:egress-queue-id; description "Egress Queue-Group queue identifier"; } leaf queue-type { type enumeration { enum "expedited" { value 1; } enum "best-effort" { value 3; } } description "Priority that this queue receives from the hardware level schedulers"; } leaf adv-config-policy { type leafref { path "../../../../../adv-config-policy/adv-config-policy-name"; } description "Name of the advanced configuration policy"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf cbs { type union { type int32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; default "auto"; description "Reserved buffer space for the queue"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Buffer space allowed for the queue"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset; default "0"; description "Packet byte offset for addition of policing information"; } leaf dynamic-mbs { type boolean; default "false"; description "Allow modifying of the MBS size for a queue to maintain maximum latency for traffic"; } leaf queue-delay { type uint32 { range "1..5000"; } units "milliseconds"; description "Target queue delay for forwarding packets through this queue"; } leaf hs-alt-port-class-pool { type boolean; default "false"; description "Use HS alternate class port pool buffer for traffic"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Scheduling class weight"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:queue-cir-rate; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR percent"; } leaf reference-rate { type enumeration { enum "port-limit" { value 2; } enum "local-limit" { value 3; } enum "reference-port-limit" { value 4; } } default "port-limit"; description "Reference rate"; } } // container percent-rate } } choice parent-mapping { case scheduler-parent { container scheduler-parent { presence "Enter the 'scheduler-parent' context"; description "Enable the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; mandatory true; description "Scheduler to which this queue feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight; default "1"; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Level of priority while feeding to the parent"; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container scheduler-parent } case port-parent { container port-parent { presence "Enter the 'port-parent' context"; description "Enable the port-parent context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf weight { type types-qos:weight; default "1"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } } // container port-parent } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container wred-queue { description "Enter the wred-queue context"; leaf policy { type leafref { path "../../../../../../slope-policy/slope-policy-name"; } description "Slope policy name"; } leaf mode { type types-qos:wred-queue-mode; description "Generic pool association of the queue to allow queue-specific WRED slopes"; } leaf usage { type types-qos:wred-queue-slope-usage; description "Specifies which slopes are active for given slope-mode"; } } // container wred-queue container drop-tail { description "Enter the drop-tail context"; container highplus { description "Enter the highplus context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail being that is reduced from MBS for high plus profile packets"; } } // container highplus container high { description "Enter the high context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail being that is reduced from MBS for high profile packets"; } } // container high container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low container exceed { description "Enter the exceed context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail that is reduced from MBS for exceed profile packets"; } } // container exceed } // container drop-tail container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type leafref { path "../../../../../../slope-policy/slope-policy-name"; } description "Slope policy name"; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type types-qos:egress-policer-id; description "Egress Queue-Group Policer identifier"; } leaf description { type types-sros:description; description "Text description"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority 'violate' threshold of PIR leaky bucket of this policer"; } leaf high-prio-only { type types-qos:burst-percent; description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf profile-capped { type boolean; default "false"; description "Enforce a limit on the profile"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; default "minimal"; description "Mode of statistics collected by the policer"; } leaf adv-config-policy { type leafref { path "../../../../../adv-config-policy/adv-config-policy-name"; } description "Name of the advanced configuration policy to apply with this queue"; } leaf exceed-pir { type boolean; default "false"; description "Allow forwarding of packets with an exceed-profile state and traffic exceeding the PIR"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:policer-cir-rate; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR"; } leaf reference-rate { type enumeration { enum "local-limit" { value 2; } enum "reference-port-limit" { value 3; } } default "local-limit"; description "Reference rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type types-qos:hs-wrr-group-id; description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Weight of scheduling class"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Administrative PIR"; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list hs-wrr-group } // list queue-group } // container egress } // container queue-group-templates list network { key "network-policy-name"; max-elements 255; description "Enter the network list instance"; leaf network-policy-name { type types-qos:network-policy-name; description "Name of this network QoS policy"; } leaf policy-id { type types-qos:qos-policy-id; sros-ext:immutable; description "Network QoS policy identifier."; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf ler-use-dscp { type boolean; default "false"; description "Honor the DSCP markings instead of the LSP-EXP bits"; } container default-action { description "Enter the default-action context"; leaf fc { type types-sros:fc-name; default "be"; description "Default forwarding class to use while classifying the ingress traffic"; } leaf profile { type types-qos:profile; default "out"; description "Default profile for the ingressing traffic"; } } // container default-action list dot1p { key "dot1p-value"; description "Enter the dot1p list instance"; leaf dot1p-value { type types-qos:dot1p-priority; description "Dot1p value to match in the packet"; } leaf fc { type types-sros:fc-name; mandatory true; description "Forwarding class"; } leaf profile { type types-qos:profile-de; mandatory true; description "Default profile to be used for the ingressing traffic"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dot1p list dscp { key "dscp-name"; description "Enter the dscp list instance"; leaf dscp-name { type types-qos:dscp-name; description "Specifies the Differentiated Services Code Point (DSCP) name for which mapping is done."; } leaf fc { type types-sros:fc-name; mandatory true; description "Forwarding class"; } leaf profile { type types-qos:profile; mandatory true; description "Default profile to use for the ingressing traffic"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dscp list lsp-exp { key "lsp-exp-value"; description "Enter the lsp-exp list instance"; leaf lsp-exp-value { type types-qos:lsp-exp-value; description "Value to assign the unique MPLS LSP EXP value that will match the lsp-exp rule"; } leaf fc { type types-sros:fc-name; mandatory true; description "Forwarding class"; } leaf profile { type types-qos:profile; mandatory true; description "Default profile to use for the ingressing traffic"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list lsp-exp list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class name"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf multicast-policer { type types-qos:network-ingress-policer-id; description "Policer to be used for multicast traffic"; } leaf policer { type types-qos:network-ingress-policer-id; description "Policer to be used for unicast traffic"; } leaf broadcast-policer { type types-qos:network-ingress-policer-id; description "Policer to be used for broadcast traffic"; } leaf unknown-policer { type types-qos:network-ingress-policer-id; description "Policer to be used for unknown traffic"; } } // container fp-redirect-group } // list fc container ip-criteria { description "Enter the ip-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-qos:entry-id; description "Network Ingress IP Criteria Entry Index"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet."; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Matches when the packet is a fragment (true) or when the packet is not a fragment (false) or matches all packets fragmented or not (off)"; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Destination IPv4 address for network QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type leafref { path "../../../../../../../match-list/ip-prefix-list/prefix-list-name"; } description "Specifies ip-prefix-list used as match criterion."; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Source IPv4 address for network QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type leafref { path "../../../../../../../match-list/ip-prefix-list/prefix-list-name"; } description "Specifies ip-prefix-list used as match criterion."; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Specifies the less than value as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Specifies the equal than value as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Specifies the greater than value as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Specifies the less than value as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Specifies the equal than value as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Specifies the greater than value as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:profile; description "Default profile for the matching traffic"; } } // container action } // list entry } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-qos:entry-id; description "Network Ingress IPv6 Criteria Entry Index"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } enum "first-only" { value 4; } enum "non-first-only" { value 5; } } description "Matches when the packet is a fragment (true) or when the packet is not a fragment (false) or matches all packets fragmented or not (off)"; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Destination IPv6 address for network QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../../../match-list/ipv6-prefix-list/prefix-list-name"; } description "Specifies the ip-prefix-list used as match criterion for the ip address."; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Source IPv6 address for network QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../../../match-list/ipv6-prefix-list/prefix-list-name"; } description "Specifies the ip-prefix-list used as match criterion for the ip address."; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Specifies the less than value as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Specifies the equal than value as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Specifies the greater than value as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Specifies the less than value as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Specifies the equal than value as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Specifies the greater than value as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:profile; description "Default profile for the matching traffic"; } } // container action } // list entry } // container ipv6-criteria } // container ingress container egress { description "Enter the egress context"; container remark-trusted { presence "Enter the 'remark-trusted' context"; description "Enable the remark-trusted context"; leaf force-egress-marking { type boolean; default "false"; description "Remark DSCP bits in the internal IP header"; } } // container remark-trusted list dscp { key "dscp-name"; description "Enter the dscp list instance"; leaf dscp-name { type types-qos:dscp-name; description "Specifies the Differentiated Services Code Point (DSCP) name for which mapping is done."; } leaf fc { type types-sros:fc-name; mandatory true; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; mandatory true; description "Default profile to use for the ingressing traffic"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dscp list prec { key "prec-value"; description "Enter the prec list instance"; leaf prec-value { type types-qos:precedence-value; description "Precedence value for which mapping is performed"; } leaf fc { type types-sros:fc-name; mandatory true; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; mandatory true; description "Default profile to use for the ingressing traffic"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prec list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class name"; } leaf dot1p-in-profile { type types-qos:dot1p-priority; description "Dot1p marking for in-profile marking"; } leaf dot1p-out-profile { type types-qos:dot1p-priority; description "Dot1p marking for out-of-profile marking"; } leaf dscp-in-profile { type types-qos:dscp-name; description "DSCP marking for in-profile marking"; } leaf dscp-out-profile { type types-qos:dscp-name; description "DSCP marking for out-of-profile marking"; } leaf lsp-exp-in-profile { type types-qos:lsp-exp-value; description "LSP-EXP marking for in-profile marking"; } leaf lsp-exp-out-profile { type types-qos:lsp-exp-value; description "LSP-EXP marking for out-of-profile marking"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container de-mark { presence "Enter the 'de-mark' context"; description "Enable the de-mark context"; leaf force { type types-qos:de-value; description "DE value"; } } // container de-mark container port-redirect-group { description "Enter the port-redirect-group context"; leaf queue { type types-qos:egress-queue-id; description "Queue to be used"; } leaf policer { type types-qos:egress-policer-id; description "Policer to be used"; } } // container port-redirect-group } // list fc container ip-criteria { description "Enter the ip-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-qos:entry-id; description "Network Egress IP Criteria Entry Index."; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Matches when the packet is a fragment (true) or when the packet is not a fragment (false) or matches all packets fragmented or not (off)."; } leaf icmp-type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match."; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Destination IPv4 address for network QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet."; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Source IPv4 address for network QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address to match with source IP of the packet."; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container dst-port } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Specifies the default profile to be used for the matching traffic."; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf queue { type types-qos:egress-queue-id; description "Specifies the queue to use once the matched traffic has been policed."; } leaf policer { type types-qos:network-egress-policer-id; description "Specifies the policer identifier to be used for the matched traffic."; } } // container port-redirect-group } // container action } // list entry } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-qos:entry-id; description "Network Egress IPv6 Criteria Entry Index."; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } enum "first-only" { value 4; } enum "non-first-only" { value 5; } } description "Matches when the packet is a fragment (true) or when the packet is not a fragment (false) or matches all packets fragmented or not (off)."; } leaf icmp-type { type types-filter:ipv6-match-icmp-types; description "ICMP type to match."; } container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Destination IPv6 address for network QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet."; } } } } // container dst-ip container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Source IPv6 address for network QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address to match with source IP of the packet."; } } } } // container src-ip container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' assigned as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' assigned as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' assigned as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../../../match-list/port-list/port-list-name"; } description "Name of the port list as the match criterion"; } } } } // container dst-port } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Specifies the default profile to be used for the matching traffic."; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf queue { type types-qos:egress-queue-id; description "Specifies the queue to use once the matched traffic has been policed."; } leaf policer { type types-qos:network-egress-policer-id; description "Specifies the policer identifier to be used for the matched traffic."; } } // container port-redirect-group } // container action } // list entry } // container ipv6-criteria } // container egress } // list network list port-qos-policy { key "port-qos-policy-name"; max-elements 511; description "Enter the port-qos-policy list instance"; leaf port-qos-policy-name { type types-qos:qos-policy-name; description "The name of this Port QoS policy."; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Specifies the forwarding class."; } leaf queue { type leafref { path "../../queue/queue-id"; } description "Specifies the queue to forward the traffic."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list fc list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type types-qos:egress-queue-id; description "The port qos policy queue identifier."; } leaf queue-mgmt { type leafref { path "../../../queue-mgmt-policy/queue-mgmt-policy-name"; } description "Queue Management determines the queue management policy attached to this queue."; } leaf wrr-weights { type leafref { path "../../wrr-weights/wrr-weights-id"; } description "The unicast-multicast Weighted Round Robin(WRR) profile associated with this queue"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "The adaptation rule to be used while computing the operational PIR value. The adaptation rule specifies the rules to compute the operational values while maintaining minimum offset."; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "The adaptation rule to be used while computing the operational CIR value. The adaptation rule specifies the rules to compute the operational values while maintaining minimum offset."; } } // container adaptation-rule container scheduler-mode { description "Enter the scheduler-mode context"; choice wfq-or-strict-priority { default "wfq"; case wfq { container wfq { description "Enter the wfq context"; leaf pir-weight { type uint32 { range "1..255"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this queue would be feeding to."; } container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Specifies the administrative PIR percent."; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } } // container percent-rate } // container wfq } } } // container scheduler-mode } // list queue list wrr-weights { key "wrr-weights-id"; max-elements 1; description "Enter the wrr-weights list instance"; leaf wrr-weights-id { type uint32 { range "1..8"; } description "The port qos policy wrr weights identifier."; } leaf mc-weight { type types-qos:port-qos-policy-wrr-weight; default "1"; description "The weight to be used by the multicast queue that feeds into this WRR scheduler."; } leaf uc-weight { type types-qos:port-qos-policy-wrr-weight; default "1"; description "The weight to be used by the unicast queue that feeds into this WRR scheduler."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list wrr-weights container packet-byte-offset { description "Enter the packet-byte-offset context"; choice add-or-subtract { case add { leaf add { type types-qos:pkt-byte-offset; description "Offset bytes to add."; } } case subtract { leaf subtract { type types-qos:pkt-byte-offset; description "Offset bytes to subtract."; } } } } // container packet-byte-offset } // list port-qos-policy list vlan-qos-policy { key "vlan-qos-policy-name"; max-elements 511; description "Enter the vlan-qos-policy list instance"; leaf vlan-qos-policy-name { type types-qos:qos-policy-name; description "The name of this Vlan QoS policy."; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } leaf stat-mode { type enumeration { enum "no-stats" { value 1; } enum "enqueued-with-discards" { value 2; } enum "enqueued-4-profile-with-discards" { value 3; } } default "no-stats"; description "Statistics mode of this policy."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list cir-weight-profile { key "cir-weight-profile-id"; description "Enter the cir-weight-profile list instance"; leaf cir-weight-profile-id { type uint32 { range "1..2"; } description "The vlan qos policy cir weight profile identifier."; } leaf weight { type uint32 { range "1..1024"; } default "1"; description "The weight that needs to be used until the committed rate by the vlan policy to which this queue would be feeding to."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cir-weight-profile list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Specifies the forwarding class."; } leaf queue { type leafref { path "../../queue/queue-id"; } description "Specifies the queue to forward the traffic."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list fc list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type types-qos:egress-queue-id; description "The vlan qos policy queue identifier."; } leaf queue-mgmt { type leafref { path "../../../queue-mgmt-policy/queue-mgmt-policy-name"; } description "Queue Management determines the queue management policy attached to this queue."; } leaf queue-forwarding-type { type enumeration { enum "best-effort" { value 0; } enum "expedite-hi" { value 1; } enum "expedite-lo" { value 2; } } description "Specifies Queue Forwarding Type of this queue."; } leaf cir-weight-profile { type uint32 { range "1..2"; } default "1"; description "Specifies the weight profile identifier of vlan-qos policy that needs to be used by the arbiter to which this queue would be feeding to."; } leaf pir-weight { type uint32 { range "1..253"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this queue would be feeding to."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "The adaptation rule to be used while computing the operational PIR value. The adaptation rule specifies the rules to compute the operational values while maintaining minimum offset."; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "The adaptation rule to be used while computing the operational CIR value. The adaptation rule specifies the rules to compute the operational values while maintaining minimum offset."; } } // container adaptation-rule container queue-type { status obsolete; description "Enter the queue-type context"; choice best-effort-hi-low { status obsolete; default "best-effort"; case best-effort { status obsolete; container best-effort { status obsolete; description "Enter the best-effort context"; leaf cir-weight-profile { status obsolete; type uint32 { range "1..2"; } default "1"; description "Specifies the weight profile identifier of vlan-qos policy that needs to be used by the arbiter to which this queue would be feeding to."; } leaf pir-weight { status obsolete; type uint32 { range "1..253"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this queue would be feeding to."; } container percent-rate { status obsolete; description "Enter the percent-rate context"; leaf pir { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Specifies the administrative PIR percent."; } leaf cir { status obsolete; type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } } // container percent-rate } // container best-effort } case expedite-hi { status obsolete; container expedite-hi { status obsolete; description "Enter the expedite-hi context"; leaf pir-weight { status obsolete; type uint32 { range "1..253"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this queue would be feeding to."; } container percent-rate { status obsolete; description "Enter the percent-rate context"; leaf pir { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Specifies the administrative PIR percent."; } leaf cir { status obsolete; type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } } // container percent-rate } // container expedite-hi } case expedite-lo { status obsolete; container expedite-lo { status obsolete; description "Enter the expedite-lo context"; leaf pir-weight { status obsolete; type uint32 { range "1..253"; } default "1"; description "Specifies the weight that needs to be used by the arbiter to which this queue would be feeding to."; } container percent-rate { status obsolete; description "Enter the percent-rate context"; leaf pir { status obsolete; type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Specifies the administrative PIR percent."; } leaf cir { status obsolete; type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } } // container percent-rate } // container expedite-lo } } } // container queue-type container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } default "100.00"; description "Specifies the administrative PIR percent."; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Specifies the administrative CIR percent."; } } // container percent-rate } // list queue container packet-byte-offset { description "Enter the packet-byte-offset context"; choice add-or-subtract { case add { leaf add { type types-qos:pkt-byte-offset; description "Offset bytes to add."; } } case subtract { leaf subtract { type types-qos:pkt-byte-offset; description "Offset bytes to subtract."; } } } } // container packet-byte-offset } // list vlan-qos-policy list queue-mgmt-policy { key "queue-mgmt-policy-name"; max-elements 40; description "Enter the queue-mgmt-policy list instance"; leaf queue-mgmt-policy-name { type types-qos:qos-policy-name; description "The name of this Queue Management policy."; } leaf description { type types-sros:description; description "Text description"; } leaf mbs { type union { type types-qos:kilobytes { range "1..1500000"; } type enumeration { enum "auto" { value 6250; } } } units "kilobytes"; default "6250"; description "The amount of buffer space allowed for the queue."; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } leaf time-average-factor { type uint32 { range "0..31"; } default "7"; description "Time average factor of the policy."; } leaf port-speed { type uint32 { range "10|25|40|50|100|200|400"; } units "gigabps"; default "100"; description "The value of port-speed for which the queue-mgmt policy is optimized."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container exceed-slope { description "Enter the exceed-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the admin state for the exceed RED slope."; } leaf start-avg { type uint32 { range "0..100"; } default "30"; description "The percentage of the buffer utilized after which the drop probability starts to rise above 0."; } leaf max-avg { type uint32 { range "0..100"; } default "55"; description "The percentage of the buffer utilized after which the drop probability is 100 percent. This implies that all packets beyond this point will be dropped."; } leaf max-prob { type uint32 { range "1..99"; } default "75"; description "The drop probability increases steadily from 0 at high start-average up to high max-probability at high max-average."; } } // container exceed-slope container high-slope { description "Enter the high-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the admin state for the high priority RED slope."; } leaf start-avg { type uint32 { range "0..100"; } default "70"; description "The percentage of the buffer utilized after which the drop probability starts to rise above 0."; } leaf max-avg { type uint32 { range "0..100"; } default "90"; description "The percentage of the buffer utilized after which the drop probability is 100 percent. This implies that all packets beyond this point will be dropped."; } leaf max-prob { type uint32 { range "1..99"; } default "75"; description "The drop probability increases steadily from 0 at high start-average up to high max-probability at high max-average."; } } // container high-slope container highplus-slope { description "Enter the highplus-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the admin state for the highplus priority RED slope."; } leaf start-avg { type uint32 { range "0..100"; } default "85"; description "The percentage of the buffer utilized after which the drop probability starts to rise above 0."; } leaf max-avg { type uint32 { range "0..100"; } default "100"; description "The percentage of the buffer utilized after which the drop probability is 100 percent. This implies that all packets beyond this point will be dropped."; } leaf max-prob { type uint32 { range "1..99"; } default "75"; description "The drop probability increases steadily from 0 at high start-average up to high max-probability at high max-average."; } } // container highplus-slope container low-slope { description "Enter the low-slope context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the admin state for the low priority RED slope."; } leaf start-avg { type uint32 { range "0..100"; } default "50"; description "The percentage of the buffer utilized after which the drop probability starts to rise above 0."; } leaf max-avg { type uint32 { range "0..100"; } default "75"; description "The percentage of the buffer utilized after which the drop probability is 100 percent. This implies that all packets beyond this point will be dropped."; } leaf max-prob { type uint32 { range "1..99"; } default "75"; description "The drop probability increases steadily from 0 at low start-average up to low max-probability at low max-average."; } } // container low-slope } // list queue-mgmt-policy list ingress-classification-policy { key "ingress-classification-policy-name"; max-elements 511; description "Enter the ingress-classification-policy list instance"; leaf ingress-classification-policy-name { type types-qos:qos-policy-name; description "The name of this ingress classification QoS policy."; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } leaf remark { type types-qos:ing-class-remark-value; sros-ext:immutable; default "any"; description "Specifies the remarking to be used."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container default-action { description "Enter the default-action context"; leaf fc { type types-sros:fc-name; default "be"; description "Specifies the default forwarding class to be used while classifying the ingress traffic."; } leaf profile { type types-qos:profile; default "out"; description "Specifies the default profile to be used for the ingressing traffic."; } } // container default-action list dot1p { key "dot1p-value"; description "Enter the dot1p list instance"; leaf dot1p-value { type types-qos:dot1p-priority; description "The dot1p value to match in the packet."; } leaf fc { type types-sros:fc-name; mandatory true; description "Specifies the forwarding class."; } leaf profile { type types-qos:profile-de; mandatory true; description "Specifies the default profile to be used for the ingressing traffic."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dot1p list dscp { key "dscp-name"; description "Enter the dscp list instance"; leaf dscp-name { type types-qos:dscp-name; description "Specifies the Differentiated Services Code Point (DSCP) name for which mapping is done."; } leaf fc { type types-sros:fc-name; mandatory true; description "Specifies the forwarding class."; } leaf profile { type types-qos:profile; mandatory true; description "Specifies the default profile to be used for the ingressing traffic."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dscp list lsp-exp { key "lsp-exp-value"; description "Enter the lsp-exp list instance"; leaf lsp-exp-value { type types-qos:lsp-exp-value; description "The lsp-exp bit value for which mapping is done."; } leaf fc { type types-sros:fc-name; mandatory true; description "Specifies the forwarding class."; } leaf profile { type types-qos:profile; mandatory true; description "Specifies the default profile to be used for the ingressing traffic."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list lsp-exp } // list ingress-classification-policy list network-ingress { key "network-ingress-policy-name"; max-elements 255; description "Enter the network-ingress list instance"; leaf network-ingress-policy-name { type types-qos:qos-policy-name; description "The name of this network-ingress QoS policy."; } leaf policer-allocation { type types-qos:network-ingress-policer-mode; sros-ext:immutable; default "none"; description "Specifies the fc-policer mapping for the network-ingress policy."; } leaf description { type types-sros:description; description "Text description"; } leaf ingress-classification-policy { type leafref { path "../../ingress-classification-policy/ingress-classification-policy-name"; } description "Attach ingress classification policy."; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-qos:sap-ingress-fc-name; description "Forwarding class for which this mapping is performed"; } leaf multicast-policer { type leafref { path "../../policer/policer-id"; } description "Specifies the policer identifier to be used for the multicast traffic in this forwarding class."; } leaf policer { type leafref { path "../../policer/policer-id"; } description "Specifies the policer identifier to be used for the normal traffic in this forwarding class."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list fc list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type types-qos:ingress-policer-id { range "1..16"; } description "SAP-ingress policer identifier"; } leaf cbs { type union { type types-qos:bytes { range "128..4161536"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Specifies the 'exceed' threshold of the CIR leaky bucket of this policer."; } leaf mbs { type union { type types-qos:bytes { range "128..4161536"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Specifies the maximum burst size to be used in conjunction with the PIR."; } leaf stat-mode { type enumeration { enum "no-stats" { value 0; } enum "offered-profile-with-discards" { value 10; } } description "Specifies the mode of statistics collected."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container rate { description "Enter the rate context"; leaf pir { type union { type uint32 { range "144..1000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Specifies the administrative PIR."; } leaf cir { type union { type uint32 { range "0..1000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container rate } // list policer } // list network-ingress list sap-egress { key "sap-egress-policy-name"; description "Enter the sap-egress list instance"; leaf sap-egress-policy-name { type types-qos:qos-policy-name; description "Name of this sap-egress QoS policy"; } leaf policy-id { type types-qos:qos-policy-id; sros-ext:immutable; description "The sap-egress QoS policy identifier."; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf ethernet-ctag { type boolean; default "false"; description "Tag value for dot1p and DE (Drop-Eligible) that are used by all dot1-p entries"; } leaf parent-location { type enumeration { enum "auto" { value 1; } enum "sla" { value 2; } } default "auto"; description "Location in which queues can find their parent scheduler in case the parent scheduler if not found"; } leaf policers-hqos-manageable { type boolean; default "false"; description "Manage policers through the Hierarchical QoS process"; } leaf post-policer-mapping { type leafref { path "../../post-policer-mapping/name"; } description "Post policer mapping policy applied to this policy"; } leaf hs-attachment-policy { type leafref { path "../../hs-attachment-policy/name"; } description "HS attachment policy applied"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container subscriber-mgmt { description "Enter the subscriber-mgmt context"; container pcc-rule-entry { description "Enter the pcc-rule-entry context"; container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type types-qos:entry-id; mandatory true; description "Specifies the starting entry at which the pcc-rule ip-criteria entries that are received from Diameter and that are shared across several hosts."; } leaf end { type types-qos:entry-id; mandatory true; description "Specifies the ending entry at which the pcc-rule ip-criteria entries that are received from Diameter and that are shared across several hosts."; } } // container range } // container pcc-rule-entry container dynamic-policer { description "Enter the dynamic-policer context"; leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority 'violate' threshold of PIR leaky bucket of this policer"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type enumeration { enum "no-stats" { value 0; } enum "minimal" { value 1; } enum "offered-profile-no-cir" { value 2; } enum "offered-total-cir" { value 3; } enum "offered-profile-cir" { value 4; } enum "offered-limited-capped-cir" { value 5; } enum "offered-profile-capped-cir" { value 6; } } default "minimal"; description "Mode of statistics collected by the policer"; } container policer-id-range { presence "Enter the 'policer-id-range' context"; description "Enable the policer-id-range context"; leaf start { type types-qos:ingress-policer-id; mandatory true; description "Specifies the starting place at which dynamic policers required for the pcc-rule ip-criteria entries that are received from Diameter and that are shared across several hosts will be inserted."; } leaf end { type types-qos:ingress-policer-id; mandatory true; description "Specifies the ending place at which dynamic policers required for the pcc-rule ip-criteria entries that are received from Diameter and that are shared across several hosts will be inserted."; } } // container policer-id-range container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // container dynamic-policer } // container subscriber-mgmt container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf low-burst-max-class { status obsolete; type uint32 { range "1..8"; } default "8"; description "Class that uses low priority burst threshold"; } leaf packet-byte-offset { status obsolete; type types-qos:egress-per-packet-offset; default "0"; description "Packet byte offset to use for the HSMDA egress queues"; } leaf wrr-policy { status obsolete; type leafref { path "../../../hsmda-wrr-policy/hsmda-wrr-policy-name"; } description "Weighted Round Robin (WRR) policy"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type types-qos:egress-queue-id; description "Egress HSMDA queue ID"; } leaf burst-limit { status obsolete; type union { type types-qos:bytes { range "1..1000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate; default "max"; description "PIR rate"; } leaf slope-policy { status obsolete; type leafref { path "../../../../hsmda-slope-policy/hsmda-slope-policy-name"; } description "Name of the slope policy which overrides the default policy for the named buffer pool"; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight; default "1"; description "Weight value for the HSMDA queue"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container adaptation-rule { status obsolete; description "Enter the adaptation-rule context"; leaf pir { status obsolete; type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list queue } // container hsmda-queues list dot1p { key "dot1p-value"; description "Enter the dot1p list instance"; leaf dot1p-value { type types-qos:dot1p-priority; description "Dot1p value to match in the packet"; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile-de; description "Default profile for the ingressing traffic"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dot1p list dscp { key "dscp-name"; description "Enter the dscp list instance"; leaf dscp-name { type types-qos:dscp-name; description "Specifies the Differentiated Services Code Point (DSCP) name for which mapping is done."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Default profile for the ingressing traffic"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf hsmda-counter-override { status obsolete; type types-qos:egress-hsmda-counter-id; description "Specifies the counter to use for all the traffic that matches the specific precedence. A value of zero implies that the default counters should be used."; } } // list dscp list prec { key "prec-value"; description "Enter the prec list instance"; leaf prec-value { type types-qos:precedence-value; description "Precedence value for which mapping is performed"; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Default profile for the ingressing traffic"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf hsmda-counter-override { status obsolete; type types-qos:egress-hsmda-counter-id; description "Specifies the counter to use for all the traffic that matches the specific precedence. A value of zero implies that the default counters should be used."; } } // list prec list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type types-qos:egress-queue-id; description "Egress Queue-Group queue identifier"; } leaf queue-type { type enumeration { enum "expedited" { value 1; } enum "auto-expedited" { value 2; } enum "best-effort" { value 3; } } sros-ext:immutable; default "auto-expedited"; description "Priority that this queue receives from the hardware level schedulers"; } leaf adv-config-policy { type leafref { path "../../../adv-config-policy/adv-config-policy-name"; } description "Name of the advanced configuration policy"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } default "auto"; description "Explicit shaping burst size of a queue"; } leaf cbs { type union { type types-qos:bytes { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; default "auto"; description "Reserved buffer space for the queue"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Buffer space allowed for the queue"; } leaf packet-byte-offset { type int32 { range "-64..32"; } default "0"; description "Packet byte offset for addition of policing information"; } leaf hs-alt-port-class-pool { type boolean; default "false"; description "Use HS alternate class port pool buffer for traffic"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Scheduling class weight"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:queue-cir-rate-maximum; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR percent"; } leaf reference-rate { type enumeration { enum "port-limit" { value 2; } enum "local-limit" { value 3; } enum "reference-port-limit" { value 4; } } default "port-limit"; description "Reference rate"; } } // container percent-rate } } choice parent-mapping { case scheduler-parent { container scheduler-parent { presence "Enter the 'scheduler-parent' context"; description "Enable the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; mandatory true; description "Scheduler to which this queue feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight; default "1"; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Level of priority while feeding to the parent"; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container scheduler-parent } case port-parent { container port-parent { presence "Enter the 'port-parent' context"; description "Enable the port-parent context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf weight { type types-qos:weight; default "1"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } } // container port-parent } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container wred-queue { description "Enter the wred-queue context"; leaf policy { type leafref { path "../../../../slope-policy/slope-policy-name"; } description "Slope policy name"; } leaf mode { type enumeration { enum "native" { value 1; } enum "pool-per-queue" { value 2; } } description "Generic pool association of the queue to allow queue-specific WRED slopes"; } leaf usage { type types-qos:wred-queue-slope-usage; description "Specifies which slopes are active for given slope-mode"; } } // container wred-queue container drop-tail { description "Enter the drop-tail context"; container highplus { description "Enter the highplus context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail being that is reduced from MBS for high plus profile packets"; } } // container highplus container high { description "Enter the high context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail being that is reduced from MBS for high profile packets"; } } // container high container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Low drop-tail percent from MBS that is reduced"; } } // container low container exceed { description "Enter the exceed context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent; description "Percentage of drop-tail that is reduced from MBS for exceed profile packets"; } } // container exceed } // container drop-tail container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type leafref { path "../../../../slope-policy/slope-policy-name"; } description "Slope policy name"; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type types-qos:sap-egress-policer-id; description "Sap-Egress Policer identifier."; } leaf description { type types-sros:description; description "Text description"; } leaf adv-config-policy { type leafref { path "../../../adv-config-policy/adv-config-policy-name"; } description "Name of the advanced configuration policy to apply with this queue"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold of the CIR leaky bucket of this policer"; } leaf dscp-prec-remarking { type boolean; default "false"; description "Remark DSCP and precedence based on the profile state of a forwarding packet"; } leaf exceed-pir { type boolean; default "false"; description "Allow forwarding of packets with an exceed-profile state and traffic exceeding the PIR"; } leaf high-prio-only { type types-qos:burst-percent; description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic"; } leaf mbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "High priority 'violate' threshold of PIR leaky bucket of this policer"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset; default "0"; description "Size of each packet, handled by the policer, to be modified"; } leaf profile-capped { type boolean; default "false"; description "Enforce an overall in-profile burst limit to the CIR bucket at egress policer"; } leaf profile-out-preserve { type boolean; default "false"; description "Preserve the color of offered out-of-profile traffic at SAP-egress policer"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; default "minimal"; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:policer-cir-rate-maximum; units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "0.00"; description "Administrative CIR percent"; } leaf reference-rate { type enumeration { enum "local-limit" { value 2; } enum "reference-port-limit" { value 3; } } default "local-limit"; description "Reference rate"; } } // container percent-rate } } choice parent-mapping { case scheduler-parent { container scheduler-parent { presence "Enter the 'scheduler-parent' context"; description "Enable the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; mandatory true; description "Specifies the scheduler to which this queue would be feeding to."; } leaf level { type types-qos:hierarchy-level; default "1"; description "Specifies the level of priority while feeding to the parent."; } leaf weight { type types-qos:weight; default "1"; description "Specifies the weight that needs to be used by the scheduler to which this queue would be feeding to."; } leaf cir-level { type types-qos:cir-level; default "0"; description "Specifies the level of priority while feeding to the parent. The level '0' means treat all offered load for this queue as for the above CIR traffic."; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "The weight that needs to be used until the committed rate by the scheduler to which this queue would be feeding to."; } } // container scheduler-parent } case port-parent { container port-parent { presence "Enter the 'port-parent' context"; description "Enable the port-parent context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Specifies the port priority this queue will use to receive bandwidth from the port-level scheduler for its above-cir offered load."; } leaf weight { type types-qos:weight; default "1"; description "Specifies the weight this queue will use to receive bandwidth from the port-level scheduler for its above-cir offered load."; } leaf cir-level { type types-qos:cir-level; default "0"; description "Specifies the port priority this queue will use to receive bandwidth from the port-level scheduler for its within-cir offered load."; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Specifies the weight this queue will use to receive bandwidth from the port-level scheduler for its within-cir offered load."; } } // container port-parent } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container arbiter-parent { description "Enter the arbiter-parent context"; leaf arbiter-name { type types-sros:named-item; description "Arbiter to which this policer feeds"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Weight to be used by the arbiter for feeding this policer"; } } // container arbiter-parent } // list policer list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class"; } leaf policer { type leafref { path "../../policer/policer-id"; } description "Policer to forward the traffic"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice dscp-or-prec { case dscp { container dscp { description "Enter the dscp context"; leaf in-profile { type types-qos:dscp-name; description "DSCP name for in-profile frames"; } leaf out-profile { type types-qos:dscp-name; description "DSCP name for out-of-profile frames"; } leaf exceed-profile { type types-qos:dscp-name; description "DSCP name for exceed-profile frames"; } } // container dscp } case prec { container prec { description "Enter the prec context"; leaf in-profile { type types-qos:precedence-value; description "Precedence value for in-profile frames"; } leaf out-profile { type types-qos:precedence-value; description "Precedence value for out-of-profile frames"; } leaf exceed-profile { type types-qos:precedence-value; description "Precedence for exceed-profile frames"; } } // container prec } } choice queue-redirection-mapping { case queue { leaf queue { type leafref { path "../../queue/queue-id"; } description "Queue to forward the traffic"; } } case port-redirect-group-queue { container port-redirect-group-queue { presence "Enter the 'port-redirect-group-queue' context"; description "Enable the port-redirect-group-queue context"; leaf queue { type types-qos:egress-queue-id; description "Queue to forward the traffic"; } } // container port-redirect-group-queue } case queue-group-queue { container queue-group-queue { presence "Enter the 'queue-group-queue' context"; description "Enable the queue-group-queue context"; leaf queue-group-name { type leafref { path "../../../../queue-group-templates/egress/queue-group/egress-queue-group-name"; } mandatory true; description "Queue group to which the traffic is forwarded"; } leaf queue { type leafref { path "../../../../queue-group-templates/egress/queue-group[egress-queue-group-name=current()/../queue-group-name]/queue/queue-id"; } description "Specifies the queue to forward the traffic."; } leaf instance { type uint32 { range "1..65535"; } description "Instance ID"; } } // container queue-group-queue } } container de-mark { presence "Enter the 'de-mark' context"; description "Enable the de-mark context"; leaf force { type types-qos:de-value; description "DE value"; } } // container de-mark container de-mark-inner { presence "Enter the 'de-mark-inner' context"; description "Enable the de-mark-inner context"; leaf force { type types-qos:de-value; description "DE value to set in inner VLAN tag"; } } // container de-mark-inner container de-mark-outer { presence "Enter the 'de-mark-outer' context"; description "Enable the de-mark-outer context"; leaf force { type types-qos:de-value; description "DE value to set in outer VLAN tag"; } } // container de-mark-outer container dot1p { description "Enter the dot1p context"; leaf in-profile { type types-qos:dot1p-priority; description "Dot1p value for in-profile frames"; } leaf out-profile { type types-qos:dot1p-priority; description "Dot1p value for out-of-profile frames"; } leaf exceed-profile { type types-qos:dot1p-priority; description "Dot1p value for exceed-profile frames"; } } // container dot1p container dot1p-inner { description "Enter the dot1p-inner context"; leaf in-profile { type types-qos:dot1p-priority; description "Inner Dot1p value for in-profile frames"; } leaf out-profile { type types-qos:dot1p-priority; description "Inner Dot1p value for out-of-profile frames"; } } // container dot1p-inner container dot1p-outer { description "Enter the dot1p-outer context"; leaf in-profile { type types-qos:dot1p-priority; description "Outer Dot1p value for in-profile frames"; } leaf out-profile { type types-qos:dot1p-priority; description "Outer Dot1p value for out-of-profile frames"; } leaf exceed-profile { type types-qos:dot1p-priority; description "Outer Dot1p value for exceed-profile frames"; } } // container dot1p-outer container hsmda { status obsolete; description "Enter the hsmda context"; choice hsmda-queue-redirection-mapping { status obsolete; case queue { status obsolete; leaf queue { status obsolete; type leafref { path "../../../hsmda-queues/queue/queue-id"; } description "HSMDA queue to which traffic is forwarded"; } } case port-redirect-group-queue { status obsolete; container port-redirect-group-queue { status obsolete; presence "Enter the 'port-redirect-group-queue' context"; description "Enable the port-redirect-group-queue context"; leaf queue { status obsolete; type leafref { path "../../../../hsmda-queues/queue/queue-id"; } mandatory true; description "HSMDA queue to which traffic is forwarded"; } } // container port-redirect-group-queue } } } // container hsmda } // list fc list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type types-qos:hs-wrr-group-id; description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight; default "1"; description "Weight of scheduling class"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Administrative PIR"; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Constraint used when deriving the operational PIR value"; } } // container adaptation-rule } // list hs-wrr-group container ip-criteria { description "Enter the ip-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..65535"; } description "IP Criteria Entry Index"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Matching criteria to be used for fragmented or non-fragmented packets"; } container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Source IPv4 address for SAP QoS policy match criterion"; } leaf mask { type types-sros:ipv4-address; description "IP address mask to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type leafref { path "../../../../../../match-list/ip-prefix-list/prefix-list-name"; } description "Specifies ip-prefix-list used as match criterion."; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "Destination IPv4 address for SAP QoS policy match"; } leaf mask { type types-sros:ipv4-address; description "IP address mask to match with source IP of the packet"; } } case ip-prefix-list { leaf ip-prefix-list { type leafref { path "../../../../../../match-list/ip-prefix-list/prefix-list-name"; } description "Specifies ip-prefix-list used as match criterion."; } } } } // container dst-ip } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Default profile for the matching traffic"; } leaf policer { type leafref { path "../../../../policer/policer-id"; } description "Policer identifier for the matched traffic"; } leaf port-redirect-group-queue { type boolean; default "false"; description "Use the queue specified in egress access port queue-group instance"; } leaf queue { type types-qos:egress-queue-id; description "Queue to use when the matched traffic is policed by the local policer"; } leaf use-fc-mapped-queue { type boolean; default "false"; description "Redirect policer output to the configured queues"; } leaf hsmda-counter-override { status obsolete; type uint32 { range "1..8"; } description "HSMDA counter to use for matching packets"; } } // container action } // list entry } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..65535"; } description "IP Criteria Entry Index"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IP protocol to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP value to match in the packet"; } container src-port { description "Enter the src-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port-match-mapping { case lt { leaf lt { type int32 { range "0..65535"; } description "Value 'less than' as match condition"; } } case eq { leaf eq { type int32 { range "0..65535"; } description "Value 'equal to' as match condition"; } } case gt { leaf gt { type int32 { range "0..65535"; } description "Value 'greater than' as match condition"; } } case range { container range { description "Enter the range context"; leaf start { type int32 { range "0..65535"; } description "Start value of range"; } leaf end { type int32 { range "0..65535"; } description "End value for range"; } } // container range } } } // container dst-port container src-ip { description "Enter the src-ip context"; choice src-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Source IPv6 address for SAP QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address mask to match with source IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../../match-list/ipv6-prefix-list/prefix-list-name"; } description "IPv6 prefix list as match criterion for IPv6 addresses"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice dst-ip { case address-and-mask-or-prefix { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "Destination IPv6 address for SAP QoS policy match"; } leaf mask { type types-sros:ipv6-address; description "IP address mask to match with destination IP of the packet"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../../match-list/ipv6-prefix-list/prefix-list-name"; } description "IPv6 prefix list as match criterion for IPv6 addresses"; } } } } // container dst-ip } // container match container action { description "Enter the action context"; leaf type { type types-qos:criteria-action-type; default "ignore-match"; description "Specified whether the criteria entry is active or in-active."; } leaf fc { type types-sros:fc-name; description "Forwarding class"; } leaf profile { type types-qos:egress-profile; description "Default profile for the matching traffic"; } leaf policer { type leafref { path "../../../../policer/policer-id"; } description "Policer identifier for the matched traffic"; } leaf port-redirect-group-queue { type boolean; default "false"; description "Use the queue specified in egress access port queue-group instance"; } leaf queue { type types-qos:egress-queue-id; description "Queue to use when the matched traffic is policed by the local policer"; } leaf use-fc-mapped-queue { type boolean; default "false"; description "Redirect policer output to the configured queues"; } leaf hsmda-counter-override { status obsolete; type uint32 { range "1..8"; } description "HSMDA counter to use for matching packets"; } } // container action } // list entry } // container ipv6-criteria } // list sap-egress list scheduler-policy { key "scheduler-policy-name"; max-elements 2047; description "Enter the scheduler-policy list instance"; leaf scheduler-policy-name { type types-sros:named-item; description "Scheduler policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf frame-based-accounting { type boolean; default "false"; description "Use frame-based accounting for schedulers and children within scheduler policy"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list tier { key "tier-id"; description "Enter the tier list instance"; leaf tier-id { type int32 { range "1..3"; } description "Tier for scheduler-policy scheduler"; } leaf parent-location { type enumeration { enum "auto" { value 1; } enum "sub" { value 2; } enum "vport" { value 3; } } default "auto"; description "Location in which the tier 1 schedulers can find their parent"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler name"; } leaf description { type types-sros:description; description "Text description"; } leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:sched-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:sched-cir-rate; units "kilobps"; default "sum"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Scheduler PIR"; } leaf cir { type types-qos:sched-cir-percent-rate; default "sum"; description "Scheduler CIR"; } leaf reference-rate { type enumeration { enum "local-limit" { value 2; } enum "reference-port-limit" { value 3; } } default "reference-port-limit"; description "Reference rate"; } } // container percent-rate } } choice parent-mapping { case scheduler-parent { container scheduler-parent { presence "Enter the 'scheduler-parent' context"; description "Enable the scheduler-parent context"; leaf scheduler-name { type types-sros:named-item; mandatory true; description "Scheduler to which this queue would be feeding to"; } leaf level { type types-qos:hierarchy-level; default "1"; description "Level of priority while feeding to the parent"; } leaf weight { type types-qos:weight; default "1"; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Level of priority while feeding to the parent"; } leaf cir-weight { type types-qos:cir-weight; default "1"; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container scheduler-parent } case port-parent { container port-parent { presence "Enter the 'port-parent' context"; description "Enable the port-parent context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf weight { type types-qos:weight; default "1"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Port priority that this queue uses to receive bandwidth from the port level scheduler"; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Weight that this queue uses to receive bandwidth from the port level scheduler"; } } // container port-parent } } } // list scheduler } // list tier } // list scheduler-policy list port-scheduler-policy { key "name"; max-elements 1023; description "Enter the port-scheduler-policy list instance"; leaf name { type types-sros:named-item; description "Name of this port scheduler policy"; } leaf description { type types-sros:description; description "Text description"; } leaf dist-lag-rate-shared { type boolean; default "false"; description "Share rates when the port is part of a LAG configured in distribute mode"; } leaf monitor-threshold { type uint32 { range "0..100"; } default "0"; description "Specifies the threshold level that should be monitored. It is a percentage of the max-rate or max-rate-percent"; } leaf hqos-algorithm { type enumeration { enum "default" { value 1; } enum "above-offered-allowance-control" { value 2; } } default "default"; description "Port scheduler H-QoS algorithm"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice max-rate-or-percent-rate { default "max-rate"; case max-rate { leaf max-rate { type types-qos:max-rate; default "max"; description "Explicit maximum frame based bandwidth limit"; } } case max-percent-rate { leaf max-percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Specifies the explicit maximum frame based bandwidth percentage"; } } } container orphan-overrides { description "Enter the orphan-overrides context"; leaf level { type types-qos:hierarchy-level; default "1"; description "Specifies the port priority of orphaned queues and scheduler that are above-cir"; } leaf weight { type types-qos:weight; default "0"; description "Specifies the weight of orphaned queues and scheduler that are above-cir"; } leaf cir-level { type types-qos:cir-level; default "0"; description "Specifies the port priority of orphaned queues and scheduler that are within-cir"; } leaf cir-weight { type types-qos:cir-weight; default "0"; description "Specifies the weight of orphaned queues and scheduler that are within-cir"; } } // container orphan-overrides list group { key "group-name"; max-elements 8; description "Enter the group list instance"; leaf group-name { type types-sros:named-item; description "Name of this port scheduler policy group"; } leaf monitor-threshold { type uint32 { range "0..100"; } default "0"; description "Specifies the threshold level that should be monitored. It is percentage of the max-rate or max-rate-percent"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:queue-cir-rate-maximum; units "kilobps"; default "max"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "100.00"; description "Administrative CIR percent"; } } // container percent-rate } } } // list group list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type int32 { range "1..8"; } description "Priority level this port scheduler policy"; } leaf group { type leafref { path "../../group/group-name"; } description "Associated group"; } leaf weight { type types-qos:weight { range "1..100"; } default "1"; description "Specifies the weight associated with the group"; } leaf monitor-threshold { type uint32 { range "0..100"; } default "0"; description "Specifies the threshold level that should be monitored. It is percentage of the max-rate or max-rate-percent"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { default "rate"; case rate { container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-maximum; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:queue-cir-rate-maximum; units "kilobps"; default "max"; description "Administrative CIR"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } default "100.00"; description "Administrative CIR percent"; } } // container percent-rate } } } // list level } // list port-scheduler-policy list hs-scheduler-policy { key "name"; max-elements 127; description "Enter the hs-scheduler-policy list instance"; leaf name { type types-sros:named-item; description "HS scheduler policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf max-rate { type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } default "max"; description "Maximum rate for this HS scheduler policy"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group { key "group-id"; description "Enter the group list instance"; leaf group-id { type int32 { range "1"; } description "Group ID for the HS scheduler policy"; } leaf rate { type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } units "megabps"; default "max"; description "Group maximum rate"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list group list scheduling-class { key "class-id"; description "Enter the scheduling-class list instance"; leaf class-id { type uint32 { range "1..6"; } description "Class identifier for the HS scheduler policy scheduling class"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-group { default "rate"; case rate { leaf rate { type union { type uint32 { range "1..100000"; } type enumeration { enum "max" { value -1; } } } default "max"; description "Group maximum rate"; } } case group { container group { presence "Enter the 'group' context"; description "Enable the group context"; leaf group-id { type int32 { range "1"; } mandatory true; description "Associated group associated with this scheduling class"; } leaf weight { type int32 { range "1..127"; } default "1"; description "Weight associated with this scheduling class"; } } // container group } } } // list scheduling-class } // list hs-scheduler-policy list hs-pool-policy { key "name"; max-elements 63; description "Enter the hs-pool-policy list instance"; leaf name { type types-sros:named-item; description "HS pool policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf system-reserve { type decimal64 { range "1.00..30.00"; fraction-digits 2; } default "5.00"; description "Percentage of HS buffers reserved for internal system use"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root-tier { description "Enter the root-tier context"; list root-pool { key "root-pool-id"; description "Enter the root-pool list instance"; leaf root-pool-id { type uint32 { range "1..16"; } description "Root pool identifier for the HS pool policy"; } leaf allocation-weight { type uint32 { range "0..100"; } description "Specifies the weight that will be applied to the first root pool and is divided by the sum of all root pool weights to derive the pool's buffer allocation factor."; } leaf slope-policy { type leafref { path "../../../../slope-policy/slope-policy-name"; } description "Specifies the slope policy associated with this pool policy."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list root-pool } // container root-tier container mid-tier { description "Enter the mid-tier context"; list mid-pool { key "mid-pool-id"; description "Enter the mid-pool list instance"; leaf mid-pool-id { type uint32 { range "1..16"; } description "Mid-pool identifier for the HS pool policy"; } leaf allocation-percent { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Specifies the percentage of the root-pool with which it is associated, as specified by root-parent will be available to this mid-pool."; } leaf slope-policy { type leafref { path "../../../../slope-policy/slope-policy-name"; } description "Specifies the slope policy associated with this pool policy."; } leaf port-bw-oversubscription-factor { type uint32 { range "1..10"; } default "1"; description "Specifies the factor by which port bandwidth can be over subscribed."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent-root-pool { description "Enter the parent-root-pool context"; choice map-pool { default "pool-id"; case pool-id { leaf pool-id { type leafref { path "../../../../root-tier/root-pool/root-pool-id"; } description "Specifies the parent root to which this mid-pool is associated."; } } case none { leaf none { type empty; description "Specifies none mid-pool is associated with this parent-pool."; } } } } // container parent-root-pool } // list mid-pool } // container mid-tier } // list hs-pool-policy list hs-port-pool-policy { key "name"; max-elements 2047; description "Enter the hs-port-pool-policy list instance"; leaf name { type types-sros:named-item; description "Name for HS port pool policy"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container std-port-class-pools { description "Enter the std-port-class-pools context"; list class-pool { key "std-class-pool-id"; description "Enter the class-pool list instance"; leaf std-class-pool-id { type uint32 { range "1..6"; } description "Standard port class identifier for the HS port pool policy"; } leaf slope-policy { type leafref { path "../../../../slope-policy/slope-policy-name"; } description "Specifies the slope policy associated with this pool policy."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent-mid-pool { description "Enter the parent-mid-pool context"; choice map-pool { default "pool-id"; case pool-id { leaf pool-id { type uint32 { range "1..16"; } description "Specifies the mid-pool parent."; } } case none { leaf none { type empty; description "Specifies none mid-pool is associated with this parent-pool."; } } } } // container parent-mid-pool container allocation { description "Enter the allocation context"; choice port-weight-or-percent { default "port-bw-weight"; case port-bw-weight { leaf port-bw-weight { type uint32 { range "1..100"; } default "1"; description "Specifies the port share weight."; } } case explicit-percent { leaf explicit-percent { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Specifies the percentage of parent pool to be allocated."; } } } } // container allocation } // list class-pool } // container std-port-class-pools container alt-port-class-pools { description "Enter the alt-port-class-pools context"; list class-pool { key "alt-class-pool-id"; description "Enter the class-pool list instance"; leaf alt-class-pool-id { type uint32 { range "1..6"; } description "The alt-port-class-pool identifier for the HS port pool policy."; } leaf slope-policy { type leafref { path "../../../../slope-policy/slope-policy-name"; } description "Specifies the slope policy associated with this pool policy."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent-mid-pool { description "Enter the parent-mid-pool context"; choice map-pool { default "none"; case pool-id { leaf pool-id { type uint32 { range "1..16"; } description "Specifies the mid-pool parent."; } } case none { leaf none { type empty; description "Specifies none mid-pool is associated with this parent-pool."; } } } } // container parent-mid-pool container allocation { description "Enter the allocation context"; choice port-weight-or-percent { default "port-bw-weight"; case port-bw-weight { leaf port-bw-weight { type uint32 { range "1..100"; } default "1"; description "Specifies the port share weight."; } } case explicit-percent { leaf explicit-percent { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Specifies the percentage of parent pool to be allocated."; } } } } // container allocation } // list class-pool } // container alt-port-class-pools } // list hs-port-pool-policy list hs-attachment-policy { key "name"; max-elements 31; description "Enter the hs-attachment-policy list instance"; leaf name { type types-sros:named-item; description "HS attachment policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf low-burst-max-class { type uint32 { range "1..6"; } default "6"; description "Low priority burst threshold"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list wrr-group { key "wrr-group-id"; description "Enter the wrr-group list instance"; leaf wrr-group-id { type uint32 { range "1..2"; } description "WRR group ID for the HS attachment policy"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice wrr-group-mapping { default "unattached"; case sched-class-id { leaf sched-class { type int32 { range "1..6"; } description "Specifies scheduling class associated with this WRR group."; } } case unattached { leaf unattached { type empty; description "Specifies the mapping type associated with this WRR group is unattached."; } } } } // list wrr-group list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type uint32 { range "1..8"; } description "Queue identifier for the HS attachment policy"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice hs-attach-queue-mapping { default "unattached"; case sched-class-id { leaf sched-class { type int32 { range "1..6"; } description "Specifies scheduling class associated with this queue."; } } case wrr-group-id { leaf wrr-group { type int32 { range "1..2"; } description "Specifies wrr group associated with this queue."; } } case unattached { leaf unattached { type empty; description "Specifies the mapping type associated with this WRR group is unattached."; } } } } // list queue } // list hs-attachment-policy list post-policer-mapping { key "name"; max-elements 7; description "Enter the post-policer-mapping list instance"; leaf name { type types-sros:named-item; description "Name of post policer mapping policy."; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list fc { key "fc-name profile"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Name of forwarding class to be remapped"; } leaf profile { type types-qos:egress-profile; description "Packet Profile that needs to be remapped."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container maps-to { description "Enter the maps-to context"; leaf fc { type types-sros:fc-name; description "Name of forwarding class to be remapped"; } leaf profile { type types-qos:egress-profile; description "Packet Profile that needs to be remapped."; } } // container maps-to } // list fc } // list post-policer-mapping list queue-group-redirect-list { key "name"; max-elements 2047; description "Enter the queue-group-redirect-list list instance"; leaf name { type types-sros:named-item; description "Name of queue-group redirect list."; } leaf type { type enumeration { enum "vxlan-vni" { value 1; } } default "vxlan-vni"; description "Type for queue-group redirect list"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list match { key "field-value"; max-elements 16; description "Enter the match list instance"; leaf field-value { type uint32 { range "1..16777215"; } description "Specifies the value of the field in the ingress or egress packet which, when matched, will redirect the packet to the queue-group instance"; } leaf instance { type uint32 { range "1..65535"; } mandatory true; description "Specifies the queue-group instance to which packet will be forwarded."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list match } // list queue-group-redirect-list list egress-remark-policy { key "egress-remark-policy-name"; max-elements 127; description "Enter the egress-remark-policy list instance"; leaf egress-remark-policy-name { type types-qos:qos-policy-name; description "The name of this egress-remark-policy QoS policy."; } leaf description { type types-sros:description; description "Text description"; } leaf scope { type types-qos:item-scope; default "template"; description "Scope of the policy."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Specifies the forwarding class."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container de-mark { presence "Enter the 'de-mark' context"; description "Enable the de-mark context"; leaf force { type types-qos:de-value; description "Specifies the DE value to set."; } } // container de-mark container dot1p { description "Enter the dot1p context"; leaf in-profile { type types-qos:dot1p-priority; description "Specifies Dot1p value for in-profile frames."; } leaf out-profile { type types-qos:dot1p-priority; description "Specifies Dot1p value for out-of-profile frames."; } leaf exceed { type types-qos:dot1p-priority; description "Specifies Dot1p value for exceed profile frames."; } leaf inplus { type types-qos:dot1p-priority; description "Specifies Dot1p value for inplus profile frames."; } } // container dot1p container dscp { description "Enter the dscp context"; leaf in-profile { type types-qos:dscp-name; description "DSCP name for in-profile frames"; } leaf out-profile { type types-qos:dscp-name; description "DSCP value for out-of-profile frames"; } leaf exceed { type types-qos:dscp-name; description "DSCP name for exceed profile frames"; } leaf inplus { type types-qos:dscp-name; description "DSCP name for inplus profile frames"; } } // container dscp container lsp-exp { description "Enter the lsp-exp context"; leaf in-profile { type types-qos:lsp-exp-value; description "LSP-EXP marking for in-profile frames"; } leaf out-profile { type types-qos:lsp-exp-value; description "LSP-EXP value for out-of-profile frames"; } leaf exceed { type types-qos:lsp-exp-value; description "LSP-EXP marking for exceed profile frames"; } leaf inplus { type types-qos:lsp-exp-value; description "LSP-EXP marking for inplus profile frames"; } } // container lsp-exp } // list fc } // list egress-remark-policy container match-list { description "Enter the match-list context"; list ip-prefix-list { key "prefix-list-name"; max-elements 512; description "Enter the ip-prefix-list list instance"; leaf prefix-list-name { type types-sros:named-item; description "Specifies the name given to this prefix list."; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list prefix { key "ip-prefix"; max-elements 256; description "Add a list entry for prefix"; leaf ip-prefix { type types-sros:ipv4-prefix; description "Specifies the IPv4 prefix for this prefix list."; } } // list prefix } // list ip-prefix-list list ipv6-prefix-list { key "prefix-list-name"; max-elements 128; description "Enter the ipv6-prefix-list list instance"; leaf prefix-list-name { type types-sros:named-item; description "Specifies the name given to this prefix list."; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list prefix { key "ipv6-prefix"; max-elements 128; description "Add a list entry for prefix"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "Specifies the IPv6 prefix for this prefix list."; } } // list prefix } // list ipv6-prefix-list list port-list { key "port-list-name"; max-elements 16; description "Enter the port-list list instance"; leaf port-list-name { type types-sros:named-item; description "Port list name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list port { key "value"; description "Add a list entry for port"; leaf value { type int32 { range "0..65535"; } description "Port number"; } } // list port list range { key "start end"; description "Add a list entry for range"; leaf start { type int32 { range "0..65534"; } description "Lower bound for the port range"; } leaf end { type int32 { range "1..65535"; } description "Upper bound for the port range"; } } // list range } // list port-list } // container match-list list fp-resource-policy { key "fp-resource-policy-name"; max-elements 16; description "Enter the fp-resource-policy list instance"; leaf fp-resource-policy-name { type types-qos:qos-policy-name; description "FP resource policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container queues { description "Enter the queues context"; leaf ingress-percent-of-total { type decimal64 { range "4.00..97.00"; fraction-digits 2; } sros-ext:card-auto-reset-on-modify; description "Percentage of ingress queues allocated"; } } // container queues } // list fp-resource-policy container packet-byte-offset { description "Enter the packet-byte-offset context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies whether packet byte offset is enabled."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container packet-byte-offset } // container qos container redundancy { description "Enter the redundancy context"; leaf cert-sync { type boolean; default "true"; description "Synchronize redundancy certificate files between the primary and secondary CPMs"; } leaf rollback-sync { type enumeration { enum "rollback-single" { value 2; } enum "rollback-all" { value 3; } } description "Parameters for redundancy rollback synchronization"; } leaf synchronize { type enumeration { enum "config" { value 2; } enum "boot-env" { value 3; } } description "Parameters for redundancy synchronization"; } leaf switchover-exec { type types-sros:url { length "1..100"; } description "Location and name of the CLI script file executed after a redundancy switchover"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mgmt-ethernet { presence "Enter the 'mgmt-ethernet' context"; description "Enable the mgmt-ethernet context"; leaf revert { type uint32 { range "1..300"; } units "seconds"; default "5"; description "Time before reverting standby CPM management Ethernet port to active CPM"; } } // container mgmt-ethernet container multi-chassis { description "Enter the multi-chassis context"; list peer { key "ip-address"; max-elements 20; description "Enter the peer list instance"; leaf ip-address { type types-sros:ip-unicast-address; description "IP address for server"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the peer instance"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..54"; } description "Authentication key used between this node and the multi-chassis peer"; } leaf description { type types-sros:description; description "Text description"; } leaf peer-name { type types-sros:named-item; description "Multi-chassis peer name"; } leaf source-address { type types-sros:ip-unicast-address; description "Source address to communicate with the multi-chassis peer"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container sync { presence "Enter the 'sync' context"; description "Enable the sync context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the synchronization"; } leaf diameter-proxy { type boolean; default "false"; description "Synchronize the Diameter proxy data with the multi-chassis peer"; } leaf igmp { type boolean; default "false"; description "Synchronize IGMP protocol information with the multi-chassis peer"; } leaf igmp-snooping { type boolean; default "false"; description "Synchronize IGMP snooping information"; } leaf ipsec { type boolean; default "false"; description "Synchronize IPsec information"; } leaf l2tp { type boolean; default "false"; description "Synchronize Layer Two Tunnel Protocol (L2TP)"; } leaf local-dhcp-server { type boolean; default "false"; description "Synchronize DHCP Server information"; } leaf mc-ring { type boolean; default "false"; description "Synchronize ring information"; } leaf mld { type boolean; default "false"; description "Synchronize MLD protocol information"; } leaf mld-snooping { type boolean; default "false"; description "Synchronize MLD snooping information"; } leaf python { type boolean; default "false"; description "Synchronize Python"; } leaf srrp { type boolean; default "false"; description "Synchronize SRRP information"; } leaf sub-host-trk { type boolean; default "false"; description "Synchronize subscriber host tracking information"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container nat { presence "Enter the 'nat' context"; description "Enable the nat context"; list nat-group { key "id"; description "Enter the nat-group list instance"; leaf id { type leafref { path "../../../../../../../isa/nat-group/id"; } description "NAT group ID"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "NAT group synchronization tag"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list nat-group } // container nat container pim-snooping { description "Enter the pim-snooping context"; leaf saps { type boolean; default "false"; description "Synchronize PIM snooping data with the multi-chassis peer on SDP endpoints"; } leaf spoke-sdps { type boolean; default "false"; description "Synchronize PIM snooping data with the multi-chassis peer on SDP endpoints"; } } // container pim-snooping container sub-mgmt { description "Enter the sub-mgmt context"; leaf ipoe { type boolean; default "false"; description "Synchronize subscriber management IPoE information"; } leaf pppoe { type boolean; default "false"; description "Synchronize subscriber management PPPoE information"; } } // container sub-mgmt container tags { description "Enter the tags context"; list port { key "id"; description "Enter the port list instance"; leaf id { type leafref { path "../../../../../../../port/port-id"; } description "ID of port to be synchronized with multi-chassis peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list range { key "start end"; description "Enter the range list instance"; leaf start { type types-sros:vlan-encap; description "First encapsulation value"; } leaf end { type types-sros:vlan-encap; description "Last encapsulation value"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Synchronization tag"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list range } // list port list lag { key "lag-name"; description "Enter the lag list instance"; leaf lag-name { type leafref { path "../../../../../../../lag/lag-name"; } description "LAG name"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list range { key "start end"; description "Enter the range list instance"; leaf start { type types-sros:vlan-encap; description "First encapsulation value"; } leaf end { type types-sros:vlan-encap; description "Last encapsulation value"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Synchronization tag"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list range } // list lag list pw-port { key "id"; description "Enter the pw-port list instance"; leaf id { type leafref { path "../../../../../../../pw-port/pw-port-id"; } description "ID of pseudowire port to be synchronized with MC peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list range { key "start end"; description "Enter the range list instance"; leaf start { type types-sros:vlan-encap; description "First encapsulation value"; } leaf end { type types-sros:vlan-encap; description "Last encapsulation value"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Synchronization tag"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list range } // list pw-port list sdp { key "id"; description "Enter the sdp list instance"; leaf id { type types-services:sdp-id; description "ID of SDP to be synchronized with multi-chassis peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; description "Synchronization tag"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list range { key "start end"; description "Enter the range list instance"; leaf start { type types-services:vc-id; description "First virtual circuit ID"; } leaf end { type types-services:vc-id; description "Last virtual circuit ID"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Synchronization tag"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list range } // list sdp } // container tags list tunnel-group { key "tunnel-group-id"; description "Enter the tunnel-group list instance"; leaf tunnel-group-id { type types-redundancy:tunnel-group-id; description "Multi-active tunnel group ID"; } leaf sync-tag { type types-sros:named-item; mandatory true; description "Synchronization tag for this tunnel group on this multi-chassis peer"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list tunnel-group list track-srrp { key "id"; description "Enter the track-srrp list instance"; leaf id { type uint32 { range "1..4294967295"; } description "ID of the tracked SRRP instance"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container l2tp-tunnel-id-range { description "Enter the l2tp-tunnel-id-range context"; leaf start { type types-l2tp:loc-tunnel-id; description "Start value of range"; } leaf end { type types-l2tp:loc-tunnel-id; description "End value of range"; } } // container l2tp-tunnel-id-range } // list track-srrp container diameter-node { presence "Enter the 'diameter-node' context"; description "Enable the diameter-node context"; list node { key "host-name"; description "Enter the node list instance"; leaf host-name { type leafref { path "../../../../../../../aaa/diameter/node/origin-host"; } description "Origin-Host of the node"; } leaf sync-tag { type types-sros:named-item; mandatory true; description "The sync tag to be used for synchronization"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list node } // container diameter-node } // container sync container mc-ipsec { presence "Enter the 'mc-ipsec' context"; description "Enable the mc-ipsec context"; leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf hold-on-neighbor-failure { type uint32 { range "2..25"; } default "3"; description "Hold time on neighbor failure"; } leaf keep-alive-interval { type uint32 { range "5..500"; } units "deciseconds"; default "10"; description "Keepalive interval"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container discovery-interval { description "Enter the discovery-interval context"; leaf interval-secs { type uint32 { range "1..1800"; } units "seconds"; default "300"; description "Maximum discovery interval"; } leaf boot { type uint32 { range "1..1800"; } units "seconds"; default "300"; description "Maximum interval after system bootup"; } } // container discovery-interval list tunnel-group { key "tunnel-group-id"; description "Enter the tunnel-group list instance"; leaf tunnel-group-id { type leafref { path "../../../../../../isa/tunnel-group/id"; } description "Tunnel group ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the peer IPsec tunnel group instance"; } leaf peer-group { type types-redundancy:tunnel-group-id; description "Peer tunnel group"; } leaf priority { type uint32 { range "0..255"; } default "100"; description "Tunnel group priority"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list tunnel-group } // container mc-ipsec container mc-lag { description "Enter the mc-lag context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MC-LAG"; } leaf keep-alive-interval { type uint32 { range "5..500"; } units "deciseconds"; default "10"; description "Keepalive timer value"; } leaf hold-on-neighbor-failure { type uint32 { range "2..25"; } default "3"; description "Intervals before standby node assumes that redundant neighbor node has failed"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list lag { key "lag-name"; description "Enter the lag list instance"; leaf lag-name { type leafref { path "../../../../../../lag/lag-name"; } description "LAG name"; } leaf lacp-key { type uint32 { range "1..65535"; } sros-ext:immutable; description "Key based on the remote MC-LAG"; } leaf system-id { type yang:mac-address; sros-ext:immutable; description "ID based on the remote MC-LAG"; } leaf system-priority { type int32 { range "1..65535"; } sros-ext:immutable; description "Priority based on the remote MC-LAG"; } leaf remote-lag { type types-sros:lag-interface; description "LAG name"; } leaf source-bmac-lsb { type union { type enumeration { enum "use-lacp-key" { value -1; } } type types-services:bmac-lsb; } description "MAC address value to apply to all ingress traffic"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list lag } // container mc-lag container mc-ring { description "Enter the mc-ring context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list ring { key "sync-tag"; description "Enter the ring list instance"; leaf sync-tag { type types-sros:named-item; description "Synchronization tag for this ring on this multi-chassis peer"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the multi-chassis ring"; } leaf type { type enumeration { enum "layer-2" { value 1; } enum "layer-3" { value 2; } } sros-ext:immutable; mandatory true; description "Type of the multi-chassis ring"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container in-band-control-path { description "Enter the in-band-control-path context"; leaf debounce { type boolean; default "true"; description "Exponential back-off timer to use for delay path switching after consecutive failures"; } leaf max-debounce-time { type uint32 { range "5..200"; } units "seconds"; default "10"; description "Maximum delay after a failure when debouncing is active"; } leaf dst-ip { type types-sros:ipv4-unicast-address; description "IP address of the in-band control path peer"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf interface { type types-sros:interface-name; description "Interface to verify in-band control path"; } } // container in-band-control-path container path-b { when "../type = 'layer-2'"; description "Enter the path-b context"; leaf wildcard-saps { type boolean; default "false"; description "Include the SAPs starting with a wildcard '*'"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list range { key "start end"; description "Add a list entry for range"; leaf start { type uint32 { range "0..4094"; } description "First VLAN in the range"; } leaf end { type uint32 { range "0..4094"; } description "Last VLAN in the range"; } } // list range } // container path-b container path-excl { when "../type = 'layer-2'"; description "Enter the path-excl context"; leaf wildcard-saps { type boolean; default "false"; description "Include the SAPs starting with a wildcard '*'"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list range { key "start end"; description "Add a list entry for range"; leaf start { type uint32 { range "0..4094"; } description "First VLAN in the range"; } leaf end { type uint32 { range "0..4094"; } description "Last VLAN in the range"; } } // list range } // container path-excl list srrp-instance { when "../type = 'layer-3'"; key "id"; max-elements 2; description "Add a list entry for srrp-instance"; leaf id { type uint32 { range "1..4294967295"; } description "SRRP ID"; } } // list srrp-instance list ring-node { key "name"; description "Enter the ring-node list instance"; leaf name { type types-sros:named-item; description "Name of a multi-chassis ring access node"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ring node verification"; } leaf interval { type uint32 { range "1..6000"; } units "minutes"; default "5"; description "Connection verification interval"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf dst-ip { type types-sros:ipv4-unicast-address; description "Destination IP address for access node connection"; } leaf src-ip { type types-sros:ipv4-unicast-address; description "Source IP address for access node connection"; } leaf src-mac { type union { type enumeration { enum "system-mac-address" { value 0; } } type types-mcr:ring-node-mac-address; } default "system-mac-address"; description "Source MAC address for the access node connection"; } leaf vlan { type types-sros:ext-vlan-encap; description "VLAN ID for access node connection"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ring-node } // list ring } // container mc-ring } // list peer } // container multi-chassis container bgp-mh { description "Enter the bgp-mh context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container site { description "Enter the site context"; leaf boot-timer { type int32 { range "0..600"; } units "seconds"; default "10"; description "Time that system waits after node reboot and before it runs DF election algorithm"; } leaf activation-timer { type int32 { range "0..100"; } units "seconds"; default "2"; description "Time to keep local sites in standby status before running DF election algorithm"; } leaf min-down-timer { type int32 { range "1..100"; } units "seconds"; description "Minimum downtime for BGP multi-homing site after transition from up to down"; } } // container site } // container bgp-mh container bgp-evpn { description "Enter the bgp-evpn context"; container ethernet-segment { description "Enter the ethernet-segment context"; leaf boot-timer { type uint32 { range "0..600"; } units "seconds"; default "10"; description "Time before running BGP EVPN multi-homing DF election algorithm"; } leaf activation-timer { type uint32 { range "0..100"; } units "seconds"; default "3"; description "Time before activating specified Ethernet segment on specified PE that is elected as DF"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ethernet-segment } // container bgp-evpn } // container redundancy list router { key "router-name"; max-elements 3; description "Enter the router list instance"; leaf router-name { type types-sros:named-item-64 { pattern ".{1,32}" { error-message "vRtrName needs to be extended to 64 to support this name"; } } description "Administrative router name"; } leaf description { when "not(../router-name = 'management')"; type types-sros:description; description "Text description"; } leaf triggered-policy { when "../router-name = 'Base'"; type boolean; default "false"; description "Trigger route policy re-evaluation"; } leaf allow-icmp-redirect { when "../router-name = 'management'"; type boolean; default "false"; description "Allow ICMP redirects on the management interface"; } leaf allow-icmp6-redirect { when "../router-name = 'management'"; type boolean; default "false"; description "Allow IPv6 ICMP redirects on the management interface"; } leaf class-forwarding { when "../router-name = 'Base'"; type boolean; default "false"; description "Allow class-based forwarding over IGP shortcuts"; } leaf icmp-tunneling { when "../router-name = 'Base'"; type boolean; default "false"; description "Allow tunneling of ICMP reply packets over MPLS LSPs"; } leaf fib-telemetry { when "../router-name = 'Base'"; type boolean; default "false"; description "Collect extra state information"; } leaf selective-fib { when "../router-name = 'Base'"; type boolean; default "true"; description "Enable/disable selective FIB. If disabled, all active routes of this routing instance are installed on all line cards."; } leaf autonomous-system { type uint32 { range "1..max"; } description "AS number advertised to peers for this router"; } leaf ecmp { type types-router:ip-ecmp; default "1"; description "Maximum equal-cost routes for routing table instance"; } leaf entropy-label { type boolean; default "false"; description "Use entropy label"; } leaf fib-priority { type enumeration { enum "standard" { value 1; } enum "high" { value 2; } } default "standard"; description "FIB priority for VPRN BGP routes"; } leaf multicast-info-policy { type leafref { path "../../multicast-management/multicast-info-policy/policy-name"; } description "Multicast policy name for virtual router"; } leaf router-id { type types-router:router-id; description "Unique router ID for the router in the AS"; } leaf weighted-ecmp { type enumeration { enum "false" { value 0; } enum "true" { value 1; } enum "strict" { value 2; } } default "false"; description "Allow weighted load-balancing"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container leak-export { when "../router-name = 'Base'"; description "Enter the leak-export context"; leaf-list policy-name { type union { type types-sros:policy-expr-string; type string; } max-elements 5; ordered-by user; description "Attribute policy-name for leak-export."; } leaf leak-export-limit { type uint32 { range "1..10000"; } default "5"; description "Maximum number of routes exported due to leak-export policies."; } } // container leak-export container gtp { when "../router-name = 'Base'"; description "Enter the gtp context"; container s11 { description "Enter the s11 context"; list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type leafref { path "../../../../interface/interface-name"; } description "Name for the S11 interface"; } leaf apn-policy { type leafref { path "../../../../../subscriber-mgmt/gtp/apn-policy/name"; } description "Access point name policy for the S11 interface"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list interface container peer-profile-map { description "Enter the peer-profile-map context"; list prefix { key "peer-prefix"; description "Enter the prefix list instance"; leaf peer-prefix { type types-sros:ip-unicast-prefix; description "IP prefix and prefix length for the subnet"; } leaf peer-profile { type leafref { path "../../../../../../subscriber-mgmt/gtp/peer-profile/name"; } mandatory true; description "GTP peer profile associated with the address prefix"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // container peer-profile-map } // container s11 container upf-data-endpoint { presence "Enter the 'upf-data-endpoint' context"; description "Enable the upf-data-endpoint context"; leaf interface { type leafref { path "../../../interface/interface-name"; } mandatory true; description "The interface on which the data endpoint gtp packets are enabled."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container upf-data-endpoint container uplink { presence "Enter the 'uplink' context"; description "Enable the uplink context"; leaf apn { type string { length "1..80"; pattern "([a-zA-Z0-9]+-+)*([a-zA-Z0-9]+\\.([a-zA-Z0-9]+-+)*)*[a-zA-Z0-9]+" { error-message "wrong format of apn name"; } } description "Network identifier part of the APN for the uplink"; } leaf pdn-type { type enumeration { enum "ipv4" { value 0; } enum "ipv6" { value 1; } enum "ipv4v6" { value 2; } } default "ipv4"; description "Default PDN to be signaled in GTP"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container peer-profile-map { description "Enter the peer-profile-map context"; list prefix { key "peer-prefix"; description "Enter the prefix list instance"; leaf peer-prefix { type types-sros:ip-unicast-prefix; description "IP prefix and prefix length for the subnet"; } leaf peer-profile { type leafref { path "../../../../../../subscriber-mgmt/gtp/peer-profile/name"; } mandatory true; description "GTP peer profile associated with the address prefix"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // container peer-profile-map } // container uplink } // container gtp container bfd { when "../router-name = 'Base'"; description "Enter the bfd context"; container seamless-bfd { description "Enter the seamless-bfd context"; list peer { key "address"; max-elements 8000; description "Enter the peer list instance"; leaf address { type types-sros:ip-unicast-address; description "Address of the remote node"; } leaf discriminator { type uint32 { range "1..4294967295"; } description "Discriminator of the remote node"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer } // container seamless-bfd } // container bfd container dns { when "../router-name = 'Base'"; description "Enter the dns context"; container redirect-vprn { description "Enter the redirect-vprn context"; list service { key "service-name"; max-elements 1; description "Enter the service list instance"; leaf service-name { type leafref { path "../../../../../service/vprn/service-name"; } description "Administrative service name"; } leaf preference { type uint32 { range "0..255"; } description "Service preference"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list service } // container redirect-vprn } // container dns container aggregates { when "../router-name = 'Base'"; description "Enter the aggregates context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list aggregate { key "ip-prefix"; description "Enter the aggregate list instance"; leaf ip-prefix { type types-sros:ip-unicast-prefix; description "Destination IP address prefix of the aggregate route"; } leaf as-set { type boolean; default "false"; description "Use AS_SET path segment type for the aggregate route"; } leaf-list community { type types-sros:community; max-elements 12; ordered-by user; description "Community name that is added to the aggregate route"; } leaf description { type types-sros:description; description "Text description"; } leaf summary-only { type boolean; default "false"; description "Advertise the aggregate route only"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Local preference used when aggregate route is exported"; } leaf discard-component-communities { type boolean; default "false"; description "Advertise aggregate with aggregate route community set"; } leaf policy { type leafref { path "../../../../policy-options/policy-statement/name"; } description "Policy name for the aggregated route"; } leaf tunnel-group { type types-redundancy:tunnel-group-id; description "Tunnel group from which to associate the MC IPSec state"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice next-hop { case blackhole { container blackhole { presence "Enter the 'blackhole' context"; description "Enable the blackhole context"; leaf generate-icmp { type boolean; default "false"; description "Send ICMP unreachable messages for aggregate routes"; } } // container blackhole } case indirect { leaf indirect { type types-sros:ip-unicast-address; sros-ext:immutable; description "Address of the indirect next hop"; } } } container aggregator { description "Enter the aggregator context"; leaf as-number { type uint32 { range "1..max"; } description "Aggregator AS number"; } leaf address { type types-sros:ipv4-unicast-address; description "Aggregator IP address"; } } // container aggregator } // list aggregate } // container aggregates container ipv6-te-router-id { when "../router-name = 'Base'"; description "Enter the ipv6-te-router-id context"; leaf interface { type leafref { path "../../interface/interface-name"; } description "Network IP interface name to obtain IP address"; } } // container ipv6-te-router-id container mc-maximum-routes { description "Enter the mc-maximum-routes context"; leaf value { type int32 { range "1..2147483647"; } description "Maximum number of multicast routes to be configured on this virtual router"; } leaf log-only { type boolean; default "false"; description "Action when the maximum number of multicast routes, held within a VRF context, is reached"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; description "Mid-level water marker for the number of multicast routes which this VRF holds"; } } // container mc-maximum-routes container vrgw { when "../router-name = 'Base'"; description "Enter the vrgw context"; container lanext { presence "Enter the 'lanext' context"; description "Enable the lanext context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Home LAN Extension"; } leaf vxlan-port { type uint32 { range "4789|8472"; } default "4789"; description "UDP port to be used by local or remote VXLAN VTEP"; } leaf wlan-gw-group { type leafref { path "../../../../isa/wlan-gw-group/id"; } sros-ext:immutable; description "WLAN-GW group used for Home LAN Extension"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container vxlan-vtep-range { description "Enter the vxlan-vtep-range context"; leaf start { type types-sros:ip-unicast-without-local-address; description "Start address of this range"; } leaf end { type types-sros:ip-unicast-without-local-address; description "End address of this range"; } } // container vxlan-vtep-range } // container lanext } // container vrgw container wlan-gw { presence "Enter the 'wlan-gw' context"; description "Enable the wlan-gw context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mobility-triggered-accounting { description "Enter the mobility-triggered-accounting context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of mobility-triggered-accounting"; } leaf include-counters { type boolean; default "false"; description "Include counters in interim updates"; } leaf hold-down { type types-sros:time-duration { range "60..86400"; } units "seconds"; description "Hold additional mobility-triggered update until this timer expires"; } } // container mobility-triggered-accounting container distributed-subscriber-mgmt { description "Enter the distributed-subscriber-mgmt context"; leaf ipv6-tcp-mss-adjust { type uint32 { range "160..10240"; } description "Insert or decrease the TCP Maximum Segment Size option to this value for upstream IPv6 SYN messages"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container distributed-subscriber-mgmt container xconnect { description "Enter the xconnect context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the WLAN-GW cross-connect"; } leaf tunnel-source-ip { type types-sros:ipv6-prefix; sros-ext:auto-restart-to-modify; description "IPv6 prefix from which source addresses of cross-connect tunnels will be chosen"; } leaf wlan-gw-group { type leafref { path "../../../../isa/wlan-gw-group/id"; } sros-ext:auto-restart-to-modify; description "ISA WLAN-GW Group"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container xconnect } // container wlan-gw container mss-adjust { presence "Enter the 'mss-adjust' context"; description "Enable the mss-adjust context"; leaf nat-group { type uint32; sros-ext:immutable; mandatory true; description "NAT group (including WLAN Gateway group) that executes the adjustment"; } leaf segment-size { type uint32 { range "160..10240"; } mandatory true; description "Intended value for the Maximum Segment Size (MSS) option in transmitted TCP SYN requests"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mss-adjust container reassembly { presence "Enter the 'reassembly' context"; description "Enable the reassembly context"; leaf nat-group { type uint32; sros-ext:immutable; description "NAT group (including WLAN Gateway group) that executes the reassembly"; } leaf to-base-network { type boolean; default "false"; description "Enable/disable sending reassembled traffic to network interface on base router"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container reassembly container sfm-overload { presence "Enter the 'sfm-overload' context"; description "Enable the sfm-overload context"; leaf holdoff-time { type uint32 { range "1..600"; } units "seconds"; description "The delay between the detection of the SFM condition and the IGP entering the overload state."; } } // container sfm-overload container confederation { when "../router-name = 'Base'"; description "Enter the confederation context"; leaf confed-as-num { type inet:as-number { range "1..4294967295"; } description "Confederation AS number"; } list members { key "as-number"; max-elements 256; description "Add a list entry for members"; leaf as-number { type inet:as-number { range "1..4294967295"; } description "Confederation member AS number"; } } // list members } // container confederation list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Router interface name"; } leaf flavor { when "not(../../router-name = 'management')"; type enumeration { enum "regular" { value 0; description "Creates a regular network interface."; } enum "control-tunnel" { value 1; description "Creates a network interface of control-tunnel type."; } enum "pdn" { value 2; description "Creates a network interface of pdn type."; } enum "unnumbered-mpls-tp" { value 3; description "Creates a network interface of unnumbered-mpls-tp type."; } enum "gmpls-loopback" { value 4; description "Creates a network interface of gmpls-loopback type."; } } sros-ext:immutable; default "regular"; description "Network interface flavor"; } leaf cpu-protection { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel') and not(../flavor = 'pdn')"; type leafref { path "../../../system/security/cpu-protection/policy/policy-id"; } description "CPU protection policy ID for the interface"; } leaf description { when "not(../../router-name = 'management')"; type types-sros:very-long-description; description "Text description"; } leaf ip-mtu { when "not(../../router-name = 'management')"; type types-router:ip-mtu-ext; units "bytes"; description "Interface IP MTU"; } leaf admin-state { when "not(../../router-name = 'management')"; type types-sros:admin-state; description "Administrative state of the interface"; } leaf strip-label { when "../../router-name = 'Base' and not(../flavor = 'pdn') and not(../flavor = 'control-tunnel') and not(../flavor = 'gmpls-loopback') and not(../interface-name = 'system')"; type boolean; default "false"; description "Strip all MPLS labels before packets are handed over for possible filter (PBR) processing"; } leaf dist-cpu-protection { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel') and not(../flavor = 'gmpls-loopback') and not(../flavor = 'pdn') and not(../interface-name = 'system')"; type leafref { path "../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Name of distributed CPU protection policy for interface"; } leaf mac { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel') and not(../flavor = 'pdn')"; type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf tos-marking-state { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel')"; type types-router:tos-marking-state; default "trusted"; description "TOS marking state"; } leaf ingress-stats { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel')"; type boolean; default "false"; description "Collect ingress statistics"; } leaf mac-accounting { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel') and not(../flavor = 'pdn')"; type boolean; default "false"; description "MAC Accounting functionality"; } leaf vas-if-type { when "../../router-name = 'Base' and ../flavor = 'regular' and not(../interface-name = 'system')"; type types-router:vas-if-type; description "VAS interface type"; } leaf gre-termination { when "../../router-name = 'Base' and ../flavor = 'regular' and not(../interface-name = 'system')"; type boolean; default "false"; description "Terminate GRE packets on primary subnet of interface"; } leaf urpf-selected-vprns { when "../../router-name = 'Base' and ../flavor = 'regular' and not(../interface-name = 'system')"; type boolean; default "false"; description "Enable/disable per-VPRN selective URPF treatment. This applies to packets associated with a VPRN."; } leaf accounting-policy { type leafref { path "../../../log/accounting-policy/policy-id"; } description "Configure the accounting policy which applies to the router interface."; } leaf collect-stats { type boolean; default "false"; description "Enable/disable the collection of statistical data on the router interface."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice port-binding { case port-encap { leaf port { type types-router:router-port; description "Port to bind this interface"; } } case loopback { leaf loopback { when "not(../../router-name = 'management') and not(../flavor = 'unnumbered-mpls-tp') and not(../interface-name = 'system')"; type empty; description "Use interface as a loopback interface"; } } } container egress { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel') and not(../interface-name = 'system')"; description "Enter the egress context"; container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/vlan-qos-policy/vlan-qos-policy-name"; } description "Vlan qos policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/egress-remark-policy/egress-remark-policy-name"; } description "Egress remark policy name"; } } // container egress-remark-policy container agg-rate { description "Enter the agg-rate context"; container rate { description "Enter the rate context"; leaf pir { type union { type int32 { range "1..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Administrative CIR"; } } // container rate } // container agg-rate } // container qos } // container egress container ingress { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel') and not(../interface-name = 'system')"; description "Enter the ingress context"; leaf policy-accounting { when "not(../../flavor = 'pdn')"; type leafref { path "../../../../routing-options/policy-accounting/policy-acct-template/name"; } description "Configure ingress policy accounting."; } leaf destination-class-lookup { when "../../flavor = 'regular'"; type boolean; default "false"; description "Enable BGP destination class lookup"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container network-ingress { description "Enter the network-ingress context"; leaf policy-name { type leafref { path "../../../../../../qos/network-ingress/network-ingress-policy-name"; } description "Network ingress qos policy name"; } } // container network-ingress } // container qos } // container ingress container ldp-sync-timer { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel') and not(../flavor = 'pdn') and not(../interface-name = 'system')"; description "Enter the ldp-sync-timer context"; leaf seconds { type types-router:ldp-sync-timer; description "Value for the LDP SYNC timer"; } leaf end-of-lib { type boolean; default "false"; description "Terminate LDP sync timer"; } } // container ldp-sync-timer container load-balancing { when "../../router-name = 'Base' and not(../flavor = 'pdn') and not(../flavor = 'control-tunnel') and not(../interface-name = 'system')"; description "Enter the load-balancing context"; leaf lsr-load-balancing { type types-router:lsr-load-balancing; description "LSR load balancing algorithm"; } leaf ip-load-balancing { type types-router:ip-load-balancing; default "both"; description "Configure IP load balancing algorithm."; } leaf spi-load-balancing { type boolean; default "false"; description "Allow use of SPI (Security Parameter Index) in hashing for ESP/AH encrypted IPv4/IPv6 traffic"; } leaf teid-load-balancing { type boolean; default "false"; description "Include TEID in hashing algorithm for GTP-U/C encapsulated traffic"; } } // container load-balancing container lag { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel') and not(../flavor = 'gmpls-loopback') and not(../flavor = 'pdn') and not(../interface-name = 'system')"; description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { when "not(../../flavor = 'unnumbered-mpls-tp')"; description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container cflowd-parameters { when "../../router-name = 'Base'"; description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type types-router:cflowd-sampling; description "Unicast or multicast traffic"; } leaf type { when "not(../sampling-type = 'both')"; type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } mandatory true; description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sampling } // container cflowd-parameters container hold-time { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel')"; description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 container ipv6 { when "not(../../flavor = 'pdn')"; description "Enter the ipv6 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv6 } // container hold-time container eth-cfm { when "../../router-name = 'Base'"; description "Enter the eth-cfm context"; list mep { key "md-admin-name ma-admin-name mep-id"; max-elements 1; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf facility-fault { type boolean; default "false"; description "Allow the facility MEP to generate a network action"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf-list ccm-tlv-ignore { type types-eth-cfm:ccm-tlv-ignore-type; max-elements 2; description "TLV to ignore on reception"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect for fault alarm generation"; } leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container ipv4 { when "not(../../router-name = 'management')"; description "Enter the ipv4 context"; leaf tcp-mss { when "../../../router-name = 'Base' and not(../../flavor = 'control-tunnel') and not(../../flavor = 'pdn')"; type types-router:ipv4-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf allow-directed-broadcasts { when "../../../router-name = 'Base' and not(../../flavor = 'control-tunnel') and not(../../flavor = 'pdn')"; type boolean; default "false"; description "Forward directed broadcasts"; } leaf local-dhcp-server { when "../../../router-name = 'Base' and not(../../flavor = 'control-tunnel') and not(../../flavor = 'pdn')"; type leafref { path "../../../dhcp-server/dhcpv4/name"; } description "DHCP server for the interface"; } leaf qos-route-lookup { when "../../../router-name = 'Base' and not(../../flavor = 'control-tunnel') and not(../../flavor = 'pdn')"; type types-router:qos-route-lookup; description "Perform QoS Route lookup"; } leaf ip-helper-address { when "../../../router-name = 'Base' and ../../flavor = 'regular' and not(../../interface-name = 'system')"; type types-sros:ipv4-unicast-address; description "IP address of the target UDP broadcast gateway"; } container icmp { when "../../../router-name = 'Base' and not(../../flavor = 'control-tunnel')"; description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container unnumbered { when "../../../router-name = 'Base' and not(../../flavor = 'control-tunnel') and not(../../interface-name = 'system')"; description "Enter the unnumbered context"; choice source { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IP address of the interface"; } } case ip-int-name { leaf ip-int-name { type types-sros:interface-name; description "Interface name"; } } case ip-int-system { leaf system { type empty; description "IP interface as an unnumbered interface"; } } } } // container unnumbered container urpf-check { when "../../../router-name = 'Base' and not(../../flavor = 'control-tunnel') and not(../../flavor = 'pdn') and not(../../interface-name = 'system')"; presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container dhcp { when "../../../router-name = 'Base' and not(../../interface-name = 'system') and not(../../flavor = 'pdn')"; description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf python-policy { type leafref { path "../../../../../python/python-policy/name"; } description "Python policy name"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "IP addresses for DHCP server requests"; } leaf trusted { type boolean; default "false"; description "Relay untrusted packets"; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf relay-plain-bootp { type boolean; default "false"; description "Relay plain BOOTP packets"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the Circuit ID"; } } case ifindex { leaf ifindex { type empty; description "Use the interface index for the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } case port-id { leaf port-id { type empty; description "Use the port ID for the Circuit ID"; } } case if-name { leaf if-name { type empty; description "Use the interface name for the Circuit ID"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf pool-name { type boolean; default "false"; description "Send the pool name in the Vendor Specific Option"; } leaf port-id { type boolean; default "false"; description "Send the port ID in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 } // container dhcp container bfd { when "../../../router-name = 'Base'"; description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd container primary { when "not(../../../router-name = 'management') and not(../../flavor = 'pdn') and not(../../flavor = 'unnumbered-mpls-tp')"; presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; mandatory true; description "Primary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf broadcast { when "../../../../router-name = 'Base'"; type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { when "../../../../router-name = 'Base' and ../../../flavor = 'regular'"; type uint32 { range "1..4294967295"; } description "Track the state of the SRRP instance on this IP address"; } leaf gre-termination { when "../../../../router-name = 'Base' and ../../../flavor = 'regular' and not(../../../interface-name = 'system')"; type boolean; default "false"; description "Configure GRE termination for packets with this destination ipaddress."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container primary list secondary { when "../../../router-name = 'Base' and ../../flavor = 'regular' and not(../../interface-name = 'system')"; key "address"; description "Enter the secondary list instance"; leaf address { type types-sros:ipv4-unicast-address; description "Secondary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf igp-inhibit { type boolean; default "false"; description "Secondary IP address that is not recognized as local interface by the running IGP"; } leaf broadcast { when "../../../../router-name = 'Base'"; type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { when "../../../../router-name = 'Base' and ../../../flavor = 'regular'"; type uint32 { range "1..4294967295"; } description "Track the state of the SRRP instance on this IP address"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list secondary container neighbor-discovery { when "not(../../interface-name = 'system') and not(../../flavor = 'pdn') and not(../../flavor = 'control-tunnel') and not(../../flavor = 'gmpls-loopback')"; description "Enter the neighbor-discovery context"; leaf timeout { when "../../../../router-name = 'Base'"; type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } leaf retry-timer { when "../../../../router-name = 'Base'"; type uint32 { range "1..300"; } units "deciseconds"; default "50"; description "ARP retry interval"; } leaf learn-unsolicited { when "../../../../router-name = 'Base'"; type boolean; default "false"; description "Learn new entries from any received NA message"; } leaf proactive-refresh { when "../../../../router-name = 'Base'"; type boolean; default "false"; description "Send a single refresh message with no retries 30 seconds prior to entry timeout"; } leaf local-proxy-arp { when "../../../../router-name = 'Base'"; type boolean; default "false"; description "Enable local proxy ARP on interface"; } leaf remote-proxy-arp { when "../../../../router-name = 'Base'"; type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { when "../../../../router-name = 'Base'"; type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Proxy ARP policy name"; } container limit { when "../../../../router-name = 'Base'"; description "Enter the limit context"; leaf max-entries { type types-router:ipv4-neighbor-limit; description "Maximum number of entries that can be learned"; } leaf log-only { type boolean; default "false"; description "Apply the limit to log entries only"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message"; } } // container limit container static-neighbor-unnumbered { when "../../../../router-name = 'Base'"; presence "Enter the 'static-neighbor-unnumbered' context"; description "Enable the static-neighbor-unnumbered context"; leaf mac-address { type yang:mac-address; sros-ext:auto-restart-to-modify; mandatory true; description "Media-dependent physical address"; } } // container static-neighbor-unnumbered list static-neighbor { when "../../../../router-name = 'Base'"; key "ipv4-address"; description "Enter the static-neighbor list instance"; leaf ipv4-address { type types-sros:ipv4-address; description "IPv4 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; mandatory true; description "Media-dependent physical address"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list static-neighbor } // container neighbor-discovery list vrrp { when "../../../router-name = 'Base' and not(../../interface-name = 'system')"; key "virtual-router-id"; description "Enter the vrrp list instance"; leaf virtual-router-id { type int32 { range "1..255"; } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Password for simple text authentication"; } leaf-list backup { type types-sros:ipv4-unicast-address; max-elements 16; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "1..2559"; } units "deciseconds"; default "10"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "false"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type leafref { path "../../../../../vrrp/policy/policy-id"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ssh-reply { type boolean; default "false"; description "Allow non-owner master to reply to SSH requests"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type leafref { path "../../../../../service/oper-group/name"; } description "Operational group name associated with VRRP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "Destination IP address to be used for BFD session"; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; mandatory true; description "Name of interface running BFD"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container bfd-liveness } // list vrrp } // container ipv4 container ipv6 { when "../../router-name = 'Base' and not(../flavor = 'control-tunnel') and not(../flavor = 'gmpls-loopback')"; presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf qos-route-lookup { when "../../../router-name = 'Base' and not(../../flavor = 'control-tunnel') and not(../../flavor = 'pdn')"; type types-router:qos-route-lookup; description "Perform QoS Route lookup"; } leaf forward-ipv4-packets { when "../../../router-name = 'Base' and ../../flavor = 'regular' and not(../../interface-name = 'system')"; type boolean; default "false"; description "Forward unencapsulated IPv4 packets"; } leaf tcp-mss { when "../../../router-name = 'Base' and not(../../flavor = 'control-tunnel') and not(../../flavor = 'pdn')"; type types-router:ipv6-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf duplicate-address-detection { when "../../../router-name = 'Base'"; type boolean; default "true"; description "Enable/disable Duplicate Address Detection."; } leaf local-dhcp-server { type leafref { path "../../../dhcp-server/dhcpv6/name"; } description "DHCP server for the interface"; } container icmp6 { description "Enter the icmp6 context"; container packet-too-big { description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of packet-too-big messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of packet-too-big messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit packet-too-big messages"; } } // container packet-too-big container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of param-problem messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of parameter-problem messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit parameter problem messages"; } } // container param-problem container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of redirect messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit redirect messages"; } } // container redirects container time-exceeded { description "Enter the time-exceeded context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the time-exceeded messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of time-exceeded messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit time-exceeded messages"; } } // container time-exceeded container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of unreachable messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit unreachable messages"; } } // container unreachables } // container icmp6 container link-local-address { when "not(../../interface-name = 'system')"; description "Enter the link-local-address context"; leaf address { type types-sros:ipv6-address; description "Link-local IPv6 address of this router interface"; } leaf duplicate-address-detection { type boolean; default "true"; description "Enable/disable Duplicate Address Detection."; } } // container link-local-address container urpf-check { when "../../../router-name = 'Base' and not(../../flavor = 'control-tunnel') and not(../../flavor = 'pdn') and not(../../interface-name = 'system')"; presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "IPv6 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..128"; } mandatory true; description "IPv6 address prefix length"; } leaf eui-64 { type boolean; sros-ext:immutable; default "false"; description "Form complete IPv6 address from supplied prefix and 64-bit interface identifier"; } leaf duplicate-address-detection { type boolean; sros-ext:immutable; default "true"; description "Enable/disable Duplicate Address Detection."; } leaf primary-preference { type uint32 { range "1..4294967295"; } description "Index assigned to the IPv6 address of the interface"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "Track the state of the SRRP instance on this IP address"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address container neighbor-discovery { when "not(../../interface-name = 'system') and not(../../flavor = 'pdn') and not(../../flavor = 'control-tunnel') and not(../../flavor = 'gmpls-loopback')"; description "Enter the neighbor-discovery context"; leaf reachable-time { type types-router:neighbor-discovery-reachable-time; description "Timer for neighbor reachability detection"; } leaf stale-time { type types-router:neighbor-discovery-stale-time; description "Time during which a neighbor discovery cache entry remains stale"; } leaf learn-unsolicited { type types-router:ipv6-address-type-selection; description "Type of entries learned from unsolicited NA messages"; } leaf proactive-refresh { type types-router:ipv6-address-type-selection; description "Neighbor entries to be refreshed proactively"; } leaf local-proxy-nd { type boolean; default "false"; description "Enable neighbor discovery on interface"; } leaf-list proxy-nd-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Name of the proxy Neighbor Discovery policies for the interface"; } container secure-nd { description "Enter the secure-nd context"; leaf allow-unsecured-msgs { type boolean; default "true"; description "Accept unsecured messages"; } leaf public-key-min-bits { type uint32 { range "512..1024"; } default "1024"; description "Minimum acceptable key length for public keys"; } leaf security-parameter { type uint32 { range "0..1"; } default "1"; description "Security parameter in the generation of a cryptographical address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of secure neighbor discovery"; } } // container secure-nd container limit { description "Enter the limit context"; leaf max-entries { type types-router:ipv6-neighbor-limit; description "Maximum number of entries that can be learned on an IP interface"; } leaf log-only { type boolean; default "false"; description "Log warning messages at threshold or when limit is exceeded, however entries are learned above limit"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message to be sent"; } } // container limit list static-neighbor { key "ipv6-address"; description "Enter the static-neighbor list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "IPv6 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; mandatory true; description "Media-dependent physical address"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list static-neighbor } // container neighbor-discovery list vrrp { when "../../../router-name = 'Base' and not(../../interface-name = 'system')"; key "virtual-router-id"; max-elements 1; description "Enter the vrrp list instance"; leaf virtual-router-id { type int32 { range "1..255"; } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf-list backup { type types-sros:ipv6-address; max-elements 4; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "10..4095"; } units "centiseconds"; default "100"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "true"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type leafref { path "../../../../../vrrp/policy/policy-id"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type leafref { path "../../../../../service/oper-group/name"; } description "Operational group name associated with VRRP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv6-address; sros-ext:immutable; mandatory true; description "ip-address."; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; mandatory true; description "Name of interface running BFD"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container bfd-liveness } // list vrrp } // container ipv6 container ip-tunnel { when "../flavor = 'control-tunnel'"; description "Enter the ip-tunnel context"; leaf remote-ip { type types-sros:ipv4-unicast-address; description "IP address of the remote end of the IP tunnel"; } } // container ip-tunnel container qos { description "Enter the qos context"; leaf network-policy { type leafref { path "../../../../qos/network/network-policy-name"; } description "Network policy name associated with a network interface"; } leaf egress-port-redirect-group { type leafref { path "../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "QoS queue group name"; } leaf egress-instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress queue group for this interface"; } leaf ingress-fp-redirect-group { type leafref { path "../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy for this interface"; } leaf ingress-instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress queue group for this interface"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container qos container if-attribute { when "../../router-name = 'Base' and not(../flavor = 'gmpls-loopback') and not(../flavor = 'control-tunnel') and not(../flavor = 'unnumbered-mpls-tp')"; description "Enter the if-attribute context"; leaf-list admin-group { type leafref { path "../../../../routing-options/if-attribute/admin-group/group-name"; } max-elements 32; description "Names of the admin group memberships of the interface"; } list srlg-group { key "name"; description "Add a list entry for srlg-group"; leaf name { type leafref { path "../../../../../routing-options/if-attribute/srlg-group/name"; } description "Shared Risk Link Group name"; } } // list srlg-group container delay { description "Enter the delay context"; leaf static { type int32 { range "1..16777214"; } units "microseconds"; description "Unidirectional link delay"; } } // container delay } // container if-attribute container untrusted { when "../../router-name = 'Base' and ../flavor = 'regular' and not(../interface-name = 'system')"; presence "Enter the 'untrusted' context"; description "Enable the untrusted context"; leaf default-forwarding { type types-router:selective-ilm-default-forwarding; default "forward"; description "Configure the default action for Selective ILM (Incoming Label Map)."; } } // container untrusted container network-domains { when "../../router-name = 'Base'"; description "Enter the network-domains context"; list network-domain { key "domain-name"; max-elements 5; description "Add a list entry for network-domain"; leaf domain-name { type leafref { path "../../../../network-domains/network-domain/domain-name"; } description "Specifies the network-domain name."; } } // list network-domain } // container network-domains } // list interface container ipv6 { description "Enter the ipv6 context"; container neighbor-discovery { when "../../router-name = 'Base'"; description "Enter the neighbor-discovery context"; leaf reachable-time { type types-router:neighbor-discovery-reachable-time; default "30"; description "Timer for neighbor reachability detection"; } leaf stale-time { type types-router:neighbor-discovery-stale-time; default "14400"; description "Neighbor discovery cache entry stale time"; } } // container neighbor-discovery container router-advertisement { when "../../router-name = 'Base'"; description "Enter the router-advertisement context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container dns-options { presence "Enter the 'dns-options' context"; description "Enable the dns-options context"; leaf rdnss-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type int32 { range "0|4..3600"; } } units "seconds"; default "infinite"; description "Maximum time over which the RDNSS address is valid"; } leaf-list server { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "Router advertisements that are forwarded to servers"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dns-options list interface { key "ip-int-name"; description "Enter the interface list instance"; leaf ip-int-name { type types-sros:interface-name; description "Router interface name"; } leaf current-hop-limit { type uint16 { range "0..255"; } default "64"; description "Hop limit to advertise in router advertisement messages"; } leaf managed-configuration { type boolean; default "false"; description "Set the managed address configuration flag"; } leaf max-advertisement-interval { type uint32 { range "4..1800"; } units "seconds"; default "600"; description "Maximum time between sending router advertisement msgs"; } leaf min-advertisement-interval { type uint32 { range "3..1350"; } units "seconds"; default "200"; description "Minimum time between sending router advertisement msgs"; } leaf mtu { type uint32 { range "1280..9800"; } description "MTU for sending packets to the router"; } leaf other-stateful-configuration { type boolean; default "false"; description "Set the other configuration flag"; } leaf reachable-time { type uint32 { range "0..3600000"; } units "milliseconds"; default "0"; description "Time the router is reachable by other hosts or nodes"; } leaf retransmit-time { type uint32 { range "0..1800000"; } units "milliseconds"; default "0"; description "Time to advertise ICMPv6 ND router advertisement msgs"; } leaf router-lifetime { type uint32 { range "0|4..9000"; } units "seconds"; default "1800"; description "Lifetime value in ICMPv6 ND router advertisement msgs"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf use-virtual-mac { type boolean; default "false"; description "Send router advert msg using VRRP virtual MAC addr"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container dns-options { presence "Enter the 'dns-options' context"; description "Enable the dns-options context"; leaf include-rdnss { type boolean; default "true"; description "Include the RDNSS option in the router advertisement"; } leaf rdnss-lifetime { type union { type int32 { range "0|4..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Maximum time over which the RDNSS address 25 is valid"; } leaf-list server { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "Router advertisements that are forwarded to servers"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dns-options list prefix { key "ipv6-prefix"; max-elements 254; description "Enter the prefix list instance"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "IPv6 address prefix"; } leaf autonomous { type boolean; default "true"; description "Set the autonomous flag value"; } leaf on-link { type boolean; default "true"; description "Use prefix for on-link determination"; } leaf preferred-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type uint32 { range "0..4294967294"; } } units "seconds"; default "604800"; description "Remaining time that the prefix remains preferred"; } leaf valid-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type uint32 { range "0..4294967294"; } } units "seconds"; default "2592000"; description "Remaining time in which the prefix is still valid"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // list interface } // container router-advertisement } // container ipv6 container isa-service-chaining { presence "Enter the 'isa-service-chaining' context"; description "Enable the isa-service-chaining context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list nat-group { key "id"; description "Add a list entry for nat-group"; leaf id { type uint32; description "ISA NAT group/ISA WLAN GW group ID for the EVPN pools"; } } // list nat-group container vxlan-vtep-range { presence "Enter the 'vxlan-vtep-range' context"; description "Enable the vxlan-vtep-range context"; leaf start { type types-sros:ip-unicast-without-local-address; mandatory true; description "Start address of the VXLAN VTEP range"; } leaf end { type types-sros:ip-unicast-without-local-address; mandatory true; description "End address of the VXLAN VTEP range"; } } // container vxlan-vtep-range } // container isa-service-chaining container mpls-labels { when "../router-name = 'Base'"; description "Enter the mpls-labels context"; leaf bgp-labels-hold-timer { type uint32 { range "0..255"; } default "0"; description "BGP labels hold timer for the ingress router"; } leaf static-label-range { type uint32 { range "0..1048544"; } default "18400"; description "Static label range on the ingress router"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container sr-labels { description "Enter the sr-labels context"; leaf start { type types-sros:mpls-label; description "Start label value for the SRGB"; } leaf end { type types-sros:mpls-label; description "End label for the SRGB"; } } // container sr-labels list reserved-label-block { key "label-block-name"; max-elements 16; description "Enter the reserved-label-block list instance"; leaf start-label { type uint32 { range "32..1048575"; } description "Start label value for the reserved label block"; } leaf end-label { type uint32 { range "32..1048575"; } description "End label for the reserved label block"; } leaf label-block-name { type types-sros:named-item-64; description "Name for the reserved label block"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list reserved-label-block } // container mpls-labels container mtrace2 { description "Enter the mtrace2 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multicast path tracing"; } leaf udp-port { type uint32 { range "1024..49151"; } default "5000"; description "Destination UDP port for mstat2|mtrace2 test, or unsolicited mstat2|mtrace2 packets"; } } // container mtrace2 container sgt-qos { description "Enter the sgt-qos context"; container dscp { description "Enter the dscp context"; list application { key "dscp-app-name"; description "Enter the application list instance"; leaf dscp-app-name { type types-router:dscp-app-name; description "DSCP application identifier on the NOKIA SR OS router that generates control traffic over IP"; } leaf dscp { type union { type types-qos:dscp-name; type int32 { range "0..63"; } } description "DSCP value to the traffic generated by this application"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list application list dscp-map { when "../../../router-name = 'Base'"; key "dscp-name"; description "Enter the dscp-map list instance"; leaf dscp-name { type types-qos:dscp-name; description "DSCP name mapped to forwarding class"; } leaf fc { type types-sros:fc-name; description "Value for the forwarding class for this mapping"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dscp-map } // container dscp container dot1p { description "Enter the dot1p context"; list application { key "dot1p-app-name"; description "Enter the application list instance"; leaf dot1p-app-name { type types-router:dot1p-app-name; description "Dot1p application identifier on the NOKIA SR OS router that generates control traffic over IP"; } leaf dot1p { type union { type types-sros:fc-name; type int32 { range "0..7"; } } description "Dot1p value to the traffic generated by this application"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list application } // container dot1p } // container sgt-qos container tunnel-interface { when "../router-name = 'Base'"; description "Enter the tunnel-interface context"; list rsvp-p2mp-root { key "lsp-name"; description "Enter the rsvp-p2mp-root list instance"; leaf lsp-name { type types-sros:named-item; description "LSP name of the P2MP RSVP tunnel interface"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list rsvp-p2mp-root list rsvp-p2mp-leaf { key "lsp-name sender-address"; description "Enter the rsvp-p2mp-leaf list instance"; leaf lsp-name { type types-sros:named-item; description "LSP name of the P2MP RSVP tunnel interface"; } leaf sender-address { type types-sros:ipv4-unicast-address; description "Address of a sender for the P2MP RSVP tunnel interface instance"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list rsvp-p2mp-leaf list ldp-p2mp-root { key "p2mp-id sender-address"; description "Enter the ldp-p2mp-root list instance"; leaf p2mp-id { type uint32 { range "1..8192"; } description "Identifier used for signaling MLDP P2MP LSP"; } leaf sender-address { type types-sros:ipv4-unicast-address; description "Address of an LDP sender for the P2MP RSVP tunnel interface instance"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ldp-p2mp-root list ldp-p2mp-leaf { key "p2mp-id sender-address"; description "Enter the ldp-p2mp-leaf list instance"; leaf p2mp-id { type uint32; description "Identifier used for signaling MLDP P2MP LSP"; } leaf sender-address { type types-sros:ipv4-unicast-address; description "Address of an LDP sender for the P2MP RSVP tunnel interface instance"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ldp-p2mp-leaf } // container tunnel-interface container lsp-bfd { when "../router-name = 'Base'"; description "Enter the lsp-bfd context"; leaf bfd-sessions { type uint32 { range "1..max"; } description "Maximum number of the dynamically created LSP BFD session tail-ends"; } container tail-end { description "Enter the tail-end context"; leaf transmit-interval { type uint32 { range "100..1000"; } units "milliseconds"; default "1000"; description "The BFD transmit interval for LSP tail-end"; } leaf receive-interval { type uint32 { range "100..1000"; } units "milliseconds"; default "1000"; description "The BFD receive interval for LSP tail-end"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "The number of consecutive BFD messages that must be missed from the peer before the BFD session state is changed to down and the upper level protocols are notified of the fault"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container tail-end } // container lsp-bfd container ttl-propagate { when "../router-name = 'Base'"; description "Enter the ttl-propagate context"; leaf label-route-local { type types-router:ttl-propagate-type; default "none"; description "TTL propagation from IP header into label stack for local packets"; } leaf label-route-transit { type types-router:ttl-propagate-type; default "none"; description "TTL propagation from IP header into label stack for transit packets"; } leaf lsr-label-route { type types-router:ttl-propagate-type; default "none"; description "TTL propagation from IP header into label stack"; } leaf vprn-local { type types-router:router-vprn-ttl-propagate; default "vc-only"; description "TTL propagation from IP header into label stack for VPRN local packets"; } leaf vprn-transit { type types-router:router-vprn-ttl-propagate; default "vc-only"; description "TTL propagation from IP header into label stack for VPRN transit packets"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ttl-propagate container flowspec { when "../router-name = 'Base'"; description "Enter the flowspec context"; leaf ip-filter-max-size { type uint32 { range "0..262143"; } default "512"; description "Maximum number of flowspec rule entries in IPv4 filter"; } leaf ipv6-filter-max-size { type uint32 { range "0..262143"; } default "512"; description "Maximum number of flowspec rule entries in IPv6 filter"; } leaf filter-cam-type { type enumeration { enum "normal" { value 0; } enum "packet-length" { value 2; } } default "normal"; description "Filter policy type for FlowSpec embedding"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container flowspec container pcp { when "../router-name = 'Base'"; description "Enter the pcp context"; list server { key "name"; max-elements 8; description "Enter the server list instance"; leaf name { type types-sros:named-item; description "PCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this PCP server"; } leaf description { type types-sros:description; description "Text description"; } leaf dual-stack-lite-address { type types-sros:ipv6-unicast-address; description "Inside Dual Stack Lite AFTR address"; } leaf fwd-inside-router { type string; description "PCP forwarding inside virtual router instance"; } leaf policy { type leafref { path "../../../../service/nat/pcp-server-policy/name"; } description "PCP server policy"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list interface { key "name"; max-elements 32; description "Add a list entry for interface"; leaf name { type leafref { path "../../../../interface/interface-name"; } description "Interface name"; } } // list interface } // list server } // container pcp container network-domains { when "../router-name = 'Base'"; description "Enter the network-domains context"; list network-domain { key "domain-name"; max-elements 5; description "Enter the network-domain list instance"; leaf domain-name { type types-sros:named-item; description "Specifies the network-domain name."; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list network-domain } // container network-domains container bgp { presence "Enter the 'bgp' context"; description "Enable the bgp context"; leaf description { type types-sros:description; description "Text description"; } leaf connect-retry { type int32 { range "1..65535"; } default "120"; description "BGP connect retry timer value"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP instance"; } leaf keepalive { type int32 { range "0..21845"; } default "30"; description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; default "false"; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type uint32; default "100"; description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; default "ignore-loop"; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } default "0"; description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type uint32 { range "384..9746"; } description "TCP maximum segment size override"; } leaf selective-label-ipv4-install { type boolean; default "false"; description "Enable/Disable selective download for bgp label-ipv4 routes."; } leaf min-route-advertisement { type int16 { range "1..255"; } default "30"; description "Minimum time before a prefix can be advertised to peer"; } leaf aggregator-id-zero { type boolean; default "false"; description "Set router ID in the BGP AGGREGATOR attribute to 0"; } leaf preference { type uint32 { range "1..255"; } default "170"; description "Route preference for routes learned from all peers"; } leaf block-prefix-sid { type boolean; default "false"; description "Block the prefix SID attribute"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; default "true"; description "Allow client reflection of routes by route reflector"; } leaf vpn-apply-export { type boolean; default "false"; description "Apply base-instance BGP export policies to VPN routes"; } leaf vpn-apply-import { type boolean; default "false"; description "Apply base-instance import route policies to VPN routes"; } leaf asn-4-byte { type boolean; default "true"; description "Advertise support for 4-byte ASNs"; } leaf path-mtu-discovery { type boolean; default "false"; description "Enable Path MTU Discovery"; } leaf enforce-first-as { type boolean; default "false"; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; default "false"; description "Send BGP updates as soon as session comes up"; } leaf router-id { type types-sros:ipv4-address; description "Router ID for the BGP instance in the AS"; } leaf inter-as-vpn { type boolean; default "false"; description "Allow advertisement of VPN routes across AS boundaries"; } leaf purge-timer { type uint32 { range "1..60"; } default "10"; description "Maximum time before stale routes are purged"; } leaf route-table-install { type boolean; default "true"; description "Install all IPv4 and IPv6 BGP routes in FIB and RTM"; } leaf ibgp-multipath { type boolean; default "false"; description "Enable IBGP multipath load balancing"; } leaf rr-vpn-forwarding { type boolean; default "false"; description "Allow route reflector to forward VPN-IP routes"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf fast-external-failover { type boolean; default "true"; description "Drop external BGP session immediately when link fails"; } leaf advertise-inactive { type boolean; default "false"; description "Advertise inactive BGP routes to peers"; } leaf authentication-keychain { type leafref { path "../../../system/security/keychains/keychain/keychain-name"; } description "TCP authentication keychain for the session"; } leaf mvpn-vrf-import-subtype-new { type boolean; default "false"; description "Encode the IANA value of 0x010b in advertised routes"; } leaf rapid-withdrawal { type boolean; default "false"; description "Send BGP withdrawal UPDATE messages immediately"; } leaf mp-bgp-keep { type boolean; default "false"; description "Keep rejected VPN-IP routes in RIB-IN"; } leaf peer-ip-tracking { type boolean; default "false"; description "Enable BGP peer tracking"; } leaf split-horizon { type boolean; default "false"; description "Prevent routes being reflected back to best-route peer"; } leaf override-tunnel-elc { type boolean; default "false"; description "Enable entropy label capability on BGP tunnels"; } leaf link-state-route-export { type boolean; default "false"; description "Allow the export of the TED NLRI database"; } leaf link-state-route-import { type boolean; default "false"; description "Allow the import of the TED NLRI database"; } leaf third-party-nexthop { type boolean; default "false"; description "Apply third-party next-hop processing to EBGP peers"; } leaf dynamic-neighbor-limit { type uint32 { range "1..8192"; } description "Max dynamic BGP sessions to accept from remote peers"; } leaf label-preference { type uint32 { range "1..255"; } default "170"; description "Route preference for routes from labeled-unicast peers"; } leaf peer-tracking-policy { type leafref { path "../../../policy-options/policy-statement/name"; } description "Policy for BGP peer tracking on router instance"; } leaf def-recv-evpn-encap { type types-bgp:encap; default "mpls"; description "Default EVPN encapsulation type"; } leaf sr-policy-import { type boolean; default "false"; description "Import all segment routing policies into the BGP RIB"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } default "90"; description "Maximum time BGP waits between successive messages"; } leaf minimum-hold-time { type int32 { range "0|3..65535"; } default "0"; description "Minimum hold time between successive messages"; } } // container hold-time container family { description "Enter the family context"; leaf ipv4 { type boolean; default "true"; description "Advertise MP-BGP support for the IPv4 address family"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for IPv4 VPN address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf vpn-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for IPv6 VPN address family"; } leaf l2-vpn { type boolean; default "false"; description "Advertise MP-BGP support for the L2-VPN address family"; } leaf mvpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 MCAST VPN address family"; } leaf mdt-safi { type boolean; default "false"; description "Advertise MP-BGP support for MDT-SAFI address family"; } leaf ms-pw { type boolean; default "false"; description "Advertise support for multi-segment PW address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf route-target { type boolean; default "false"; description "Advertise MP-BGP support for RT constraint routes"; } leaf mcast-vpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 VPN MCAST address family"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 MCAST VPN address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf evpn { type boolean; default "false"; description "Advertise MP-BGP support for the EVPN address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise support for the label-IPv6 address family"; } leaf bgp-ls { type boolean; default "false"; description "Advertise MP-BGP support for the BGP-LS address family"; } leaf mcast-vpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 VPN MCAST address family"; } leaf sr-policy-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv4 family"; } leaf sr-policy-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv6 family"; } } // container family container label-allocation { description "Enter the label-allocation context"; container label-ipv6 { description "Enter the label-ipv6 context"; leaf explicit-null { type boolean; default "true"; description "Apply advertised label and associated programming rules"; } } // container label-ipv6 } // container label-allocation container send-default { description "Enter the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable IPv4 family type"; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } default "0"; description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } default "0"; description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } default "0"; description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } default "0"; description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if AS-PATH contains eBGP peer's ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } leaf orr-location { type uint32 { range "1..255"; } description "Optimal route reflection location for the cluster"; } leaf allow-local-fallback { type boolean; default "false"; description "Allow fallback to RR topology location for ORR"; } } // container cluster container ebgp-default-reject-policy { description "Enter the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global AS when advertising routes to BGP peer"; } } // container local-as container best-path-selection { description "Enter the best-path-selection context"; leaf compare-origin-validation-state { type boolean; default "false"; description "Compare RPKI origin validation state of usable routes"; } leaf deterministic-med { type boolean; default "false"; description "Group paths based on AS before MED attribute comparison"; } leaf origin-invalid-unusable { type boolean; default "false"; description "Deem invalid routes unusable for best-path selection"; } leaf ignore-nh-metric { type boolean; default "false"; description "Ignore next-hop distance in best path selection"; } container always-compare-med { description "Enter the always-compare-med context"; leaf med-value { type types-bgp:med-value; default "off"; description "Action for a missing MED attribute"; } leaf strict-as { type boolean; default "true"; description "Compare MED only for routes from same neighbor AS"; } } // container always-compare-med container as-path-ignore { description "Enter the as-path-ignore context"; leaf ipv4 { type boolean; default "false"; description "Ignore AS path length for unlabeled unicast IPv4 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Ignore AS path length for VPN IPv4 (SAFI 128) routes"; } leaf ipv6 { type boolean; default "false"; description "Ignore AS path length for unlabeled unicast IPv6 routes"; } leaf mcast-ipv4 { type boolean; default "false"; description "Ignore AS path length for IPv4 multicast routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Ignore AS path length for VPN IPv6 (SAFI 128) routes"; } leaf l2-vpn { type boolean; default "false"; description "Ignore AS path length for L2-VPN routes"; } leaf mvpn-ipv4 { type boolean; default "false"; description "Ignore AS path length for IPv4 MVPN routes"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Ignore AS path length for IPv6 MVPN routes"; } leaf mcast-ipv6 { type boolean; default "false"; description "Ignore AS path length for IPv6 multicast routes"; } leaf label-ipv4 { type boolean; default "false"; description "Ignore AS path length for labeled-unicast IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Ignore AS path length for labeled-unicast IPv6 routes"; } } // container as-path-ignore container ignore-router-id { presence "Enter the 'ignore-router-id' context"; description "Enable the ignore-router-id context"; container include-internal { description "Enter the include-internal context"; leaf mvpn-ipv4 { type boolean; default "false"; description "Ignore the router IDs of MVPN-IPv4 routes"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Ignore the router IDs of MVPN-IPv6 routes"; } } // container include-internal } // container ignore-router-id container ebgp-ibgp-equal { description "Enter the ebgp-ibgp-equal context"; leaf ipv4 { type boolean; default "false"; description "Consider EBGP and IBGP IPv4 routes equal"; } leaf ipv6 { type boolean; default "false"; description "Consider EBGP and IBGP IPv6 routes equal"; } leaf vpn-ipv4 { type boolean; default "false"; description "Consider EBGP and IBGP VPN-IPv4 routes equal"; } leaf vpn-ipv6 { type boolean; default "false"; description "Consider EBGP and IBGP VPN-IPv6 routes equal"; } leaf label-ipv4 { type boolean; default "false"; description "Consider EBGP and IBGP label-IPv4 routes equal"; } leaf label-ipv6 { type boolean; default "false"; description "Consider EBGP and IBGP label-IPv6 routes equal"; } } // container ebgp-ibgp-equal } // container best-path-selection container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; default "true"; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; default "true"; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; default "true"; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; default "false"; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container rapid-update { description "Enter the rapid-update context"; leaf vpn-ipv4 { type boolean; default "false"; description "Include VPN IPv4 address family routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Include VPN IPv6 address family routes"; } leaf l2-vpn { type boolean; default "false"; description "Include L2 VPN address family routes"; } leaf mvpn-ipv4 { type boolean; default "false"; description "Include MVPN IPv4 address family routes"; } leaf mdt-safi { type boolean; default "false"; description "Include MDT SAFI address family routes"; } leaf mcast-vpn-ipv4 { type boolean; default "false"; description "Include multicast VPN IPv4 address family routes"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Include MVPN IPv6 address family routes"; } leaf evpn { type boolean; default "false"; description "Include EVPN address family routes"; } leaf label-ipv4 { type boolean; default "false"; description "Include labeled IPv4 address family routes"; } leaf label-ipv6 { type boolean; default "false"; description "Include labeled IPv6 address family routes"; } leaf mcast-vpn-ipv6 { type boolean; default "false"; description "Include multicast VPN IPv6 address family routes"; } } // container rapid-update container advertise-external { description "Enter the advertise-external context"; leaf ipv4 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Enable support for labeled-unicast IPv6 routes"; } } // container advertise-external container backup-path { description "Enter the backup-path context"; leaf ipv4 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Enable support for labeled-unicast IPv6 routes"; } } // container backup-path container flowspec { description "Enter the flowspec context"; leaf validate-dest-prefix { type boolean; default "false"; description "Validate destination prefix in FlowSpec-IPv4/IPv6 route"; } leaf validate-redirect-ip { type boolean; default "false"; description "Validate the redirect-to-IPv4 action in FlowSpec route"; } } // container flowspec container neighbor-trust { description "Enter the neighbor-trust context"; leaf vpn-ipv4 { type boolean; default "false"; description "Enable inter-AS label security for the VPN-IPv4 family"; } leaf vpn-ipv6 { type boolean; default "false"; description "Enable inter-AS label security for the VPN-IPv6 family"; } } // container neighbor-trust container convergence { description "Enter the convergence context"; leaf min-wait-to-advertise { type uint32 { range "0..3600"; } default "0"; description "Minimum wait time before advertising routes"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } } description "Address family for which convergence selection applies"; } leaf max-wait-to-advertise { type uint32 { range "0..3600"; } default "0"; description "Maximum wait time before advertising routes"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list family } // container convergence container add-paths { presence "Enter the 'add-paths' context"; description "Enable the add-paths context"; container ipv4 { description "Enter the ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Max paths advertised per unlabeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per unlabeled IPv4 prefix"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Max paths advertised per unlabeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per unlabeled IPv6 prefix"; } } // container ipv6 container label-ipv4 { description "Enter the label-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Max paths advertised per labeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv4 prefix"; } } // container label-ipv4 container label-ipv6 { description "Enter the label-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Max paths advertised per labeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv6 prefix"; } } // container label-ipv6 container vpn-ipv4 { description "Enter the vpn-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths advertised per VPN-IPv4 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv4 prefix"; } } // container vpn-ipv4 container vpn-ipv6 { description "Enter the vpn-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths advertised per VPN-IPv6 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv6 prefix"; } } // container vpn-ipv6 container mvpn-ipv4 { description "Enter the mvpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths advertised per multicast VPN IPv4 NRLI"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per multicast VPN IPv4 NRLI"; } } // container mvpn-ipv4 container mvpn-ipv6 { description "Enter the mvpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths advertised per multicast VPN IPv6 NRLI"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per multicast VPN IPv6 NRLI"; } } // container mvpn-ipv6 container mcast-vpn-ipv4 { description "Enter the mcast-vpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths advertised per multicast IPv4 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv4 VPN prefix"; } } // container mcast-vpn-ipv4 container mcast-vpn-ipv6 { description "Enter the mcast-vpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths advertised per multicast IPv6 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv6 VPN prefix"; } } // container mcast-vpn-ipv6 } // container add-paths container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "BGP import policy name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "List of export policy names"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container export container extended-nh-encoding { description "Enter the extended-nh-encoding context"; leaf vpn-ipv4 { type boolean; default "false"; description "Advertise encoding capability for VPN-IPv4 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise encoding capability for label-IPv4 routes"; } leaf ipv4 { type boolean; default "false"; description "Advertise encoding capability for IPv4 routes"; } } // container extended-nh-encoding container advertise-ipv6-next-hops { description "Enter the advertise-ipv6-next-hops context"; leaf vpn-ipv6 { type boolean; default "false"; description "Advertise VPN IPv6 route with IPv6 next-hop address"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise label IPv6 route with IPv6 next-hop address"; } leaf evpn { type boolean; default "false"; description "Advertise EVPN route with IPv6 next-hop address"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise VPN IPv4 route with IPv6 next-hop address"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise label IPv4 route with IPv6 next-hop address"; } leaf ipv4 { type boolean; default "false"; description "Advertise IPv4 route with IPv6 next-hop address"; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "120"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform Graceful Restart procedures"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type types-bgp:llgr-family-identifiers; description "Family type for family-specific LLGR configuration"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list family } // container long-lived } // container graceful-restart container optimal-route-reflection { description "Enter the optimal-route-reflection context"; container spf-wait { description "Enter the spf-wait context"; leaf max-wait { type uint32 { range "1..600"; } default "60"; description "Maximum interval between consecutive SPF calculations"; } leaf initial-wait { type uint32 { range "1..300"; } default "5"; description "Initial SPF calculation delay after a topology change"; } leaf second-wait { type uint32 { range "1..300"; } default "15"; description "Delay between first and second SPF calculation"; } } // container spf-wait list location { key "location-id"; description "Enter the location list instance"; leaf location-id { type uint32 { range "1..255"; } description "Optimal route reflection location ID"; } leaf primary-ip-address { type types-sros:ipv4-unicast-address; description "Primary IPv4 address of the reference location for ORR"; } leaf secondary-ip-address { type types-sros:ipv4-unicast-address; description "Secondary IPv4 address of reference location for ORR"; } leaf tertiary-ip-address { type types-sros:ipv4-unicast-address; description "Tertiary IPv4 address of the reference location for ORR"; } leaf primary-ipv6-address { type types-sros:ipv6-unicast-address; description "Primary IPv6 address of the reference location for ORR"; } leaf secondary-ipv6-address { type types-sros:ipv6-unicast-address; description "Secondary IPv6 address of reference location for ORR"; } leaf tertiary-ipv6-address { type types-sros:ipv6-unicast-address; description "Tertiary IPv6 address of the reference location for ORR"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list location } // container optimal-route-reflection container next-hop-resolution { description "Enter the next-hop-resolution context"; leaf use-bgp-routes { type boolean; default "false"; description "Use BGP routes to resolve BGP next hops"; } leaf weighted-ecmp { type boolean; default "false"; description "Use weighted ECMP for next-hop tunnel selection for 6PE"; } leaf allow-unresolved-leaking { type boolean; default "false"; description "Allow unresolved BGP routes to be leaked to VPRN routes"; } leaf policy { type leafref { path "../../../../policy-options/policy-statement/name"; } description "Policy that filters routes for BGP next-hop resolution"; } leaf vpn-family-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } description "Policy to filter routes for next-hop resolution"; } container shortcut-tunnel { description "Enter the shortcut-tunnel context"; list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } } description "Address family type for shortcut tunnel selection"; } leaf resolution { type enumeration { enum "none" { value 0; } enum "filter" { value 1; } enum "any" { value 2; } } default "none"; description "Resolution mode for binding BGP routes to tunnel types"; } leaf disallow-igp { type boolean; default "false"; description "Do not perform route table lookup to resolve BGP route"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Consider only LSPs with an admin-tag for next hop"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable flexible algorithm fallback"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; default "false"; description "Use BGP tunneling for next-hop resolution"; } leaf ldp { type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // list family } // container shortcut-tunnel container labeled-routes { description "Enter the labeled-routes context"; leaf allow-static { type boolean; default "false"; description "Allow static routes to resolve BGP next-hop"; } leaf rr-use-route-table { type boolean; default "false"; description "Use RTM to resolve BGP next-hop if TTM resolution fails"; } container use-bgp-routes { description "Enter the use-bgp-routes context"; leaf label-ipv6-explicit-null { type boolean; default "false"; description "Use BGP routes to resolve address family routes"; } } // container use-bgp-routes container transport-tunnel { description "Enter the transport-tunnel context"; list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type enumeration { enum "vpn" { value 2; } enum "label-ipv4" { value 17; } enum "label-ipv6" { value 18; } } description "Address family type for LLGR"; } leaf resolution { type enumeration { enum "none" { value 0; } enum "filter" { value 1; } enum "any" { value 2; } } default "filter"; description "Resolution mode for binding BGP routes to tunnel types"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Consider only LSPs with an admin-tag for next hop"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable flexible algorithm fallback"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; description "Use BGP tunneling for next-hop resolution"; } leaf ldp { type boolean; default "true"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // list family } // container transport-tunnel } // container labeled-routes } // container next-hop-resolution container multipath { description "Enter the multipath context"; leaf max-paths { type types-router:ip-ecmp; default "1"; description "Maximum multipaths per prefix"; } leaf ebgp { type types-router:ip-ecmp; description "Maximum multipaths per prefix for EBGP learned routes"; } leaf ibgp { type types-router:ip-ecmp; description "Maximum multipaths per prefix for IBGP learned routes"; } leaf restrict { type types-bgp:restrict; default "same-as-path-length"; description "AS path restriction for the non-best path"; } leaf unequal-cost { type boolean; default "false"; description "Ignore differences in the next-hop cost for multipath"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } enum "label-ipv4" { value 17; } enum "label-ipv6" { value 18; } } description "Address family for which multipath selection applies"; } leaf max-paths { type types-router:ip-ecmp; description "Maximum multipaths per prefix or NLRI"; } leaf ebgp { type types-router:ip-ecmp; description "Attribute ebgp-max-paths for multipath."; } leaf ibgp { type types-router:ip-ecmp; description "Attribute ibgp-max-paths for multipath."; } leaf restrict { type types-bgp:restrict; default "same-as-path-length"; description "AS path restriction for the non-best path"; } leaf unequal-cost { type boolean; default "false"; description "Ignore differences in the next-hop cost for multipath"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list family } // container multipath list route-target-list { key "community-name"; description "Add a list entry for route-target-list"; leaf community-name { type types-sros:named-item; description "Route target community name"; } } // list route-target-list container outbound-route-filtering { presence "Enter the 'outbound-route-filtering' context"; description "Enable the outbound-route-filtering context"; container extended-community { presence "Enter the 'extended-community' context"; description "Enable the extended-community context"; leaf accept-orf { type boolean; default "false"; description "Negotiate with peer to accept BGP ORF filters"; } container send-orf { presence "Enter the 'send-orf' context"; description "Enable the send-orf context"; list route-target { key "community-name"; description "Add a list entry for route-target"; leaf community-name { type types-sros:named-item; description "Route target community name"; } } // list route-target } // container send-orf } // container extended-community } // container outbound-route-filtering container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type leafref { path "../../../../../bmp/station/name"; } description "BMP monitoring station"; } } // list station } // container monitor container rib-management { description "Enter the rib-management context"; container ipv4 { description "Enter the ipv4 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type leafref { path "../../../../../../policy-options/policy-statement/name"; } description "Name of policy that controls route importation into RIB"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container leak-import } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type leafref { path "../../../../../../policy-options/policy-statement/name"; } description "Name of policy that controls route importation into RIB"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container leak-import } // container ipv6 container label-ipv4 { description "Enter the label-ipv4 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type leafref { path "../../../../../../policy-options/policy-statement/name"; } description "Name of policy that controls route importation into RIB"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container leak-import } // container label-ipv4 container label-ipv6 { description "Enter the label-ipv6 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type leafref { path "../../../../../../policy-options/policy-statement/name"; } description "Name of policy that controls route importation into RIB"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container route-table-import } // container label-ipv6 } // container rib-management container segment-routing { description "Enter the segment-routing context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container prefix-sid-range { presence "Enter the 'prefix-sid-range' context"; description "Enable the prefix-sid-range context"; choice type { case global { leaf global { type empty; description "Use global SR range"; } } case local { leaf start-label { type uint32 { range "0..524287"; } sros-ext:auto-restart-to-modify; default "0"; description "Value for the local label starting offset"; } leaf max-index { type uint32 { range "0..524287"; } sros-ext:auto-restart-to-modify; default "1"; description "Maximum local SID index"; } } } } // container prefix-sid-range } // container segment-routing list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type types-sros:named-item-64; description "BGP peer group name"; } leaf description { type types-sros:description; description "Text description"; } leaf connect-retry { type int32 { range "1..65535"; } description "BGP connect retry timer value"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP group"; } leaf static-group { type boolean; default "true"; description "Use group for static peers"; } leaf keepalive { type int32 { range "0..21845"; } description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type union { type uint32 { range "384..9746"; } type enumeration { enum "ip-stack" { value 0; } } } description "TCP maximum segment size override"; } leaf selective-label-ipv4-install { type boolean; description "Enable/Disable selective download for bgp label-ipv4 routes."; } leaf min-route-advertisement { type int16 { range "1..255"; } description "Minimum time before a prefix can be advertised to peer"; } leaf aggregator-id-zero { type boolean; description "Set router ID in the BGP AGGREGATOR attribute to zero"; } leaf preference { type uint32 { range "1..255"; } description "Route preference for routes learned from all peers"; } leaf block-prefix-sid { type boolean; default "false"; description "Block the prefix SID attribute"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; description "Allow cluster RR to advertise routes to its clients"; } leaf vpn-apply-export { type boolean; description "Apply base-instance BGP export policies to VPN routes"; } leaf vpn-apply-import { type boolean; description "Apply base-instance BGP import policies to VPN routes"; } leaf as-override { type boolean; default "false"; description "Replace the peer's ASN with the local ASN in AS Path"; } leaf asn-4-byte { type boolean; description "Advertise the use of 4-byte ASNs"; } leaf path-mtu-discovery { type boolean; description "Enable Path MTU Discovery"; } leaf next-hop-self { type boolean; default "false"; description "Advertise routes with local address as next-hop address"; } leaf passive { type boolean; default "false"; description "Enable passive mode for BGP communication"; } leaf type { type types-bgp:peer-type; default "no-type"; description "BGP peer type"; } leaf peer-as { type uint32 { range "1..4294967295"; } description "Peer AS number"; } leaf capability-negotiation { type boolean; default "true"; description "Enable capability negotiation"; } leaf enforce-first-as { type boolean; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; description "Send BGP updates as soon as the session comes up"; } leaf local-address { type types-bgp:local-address; description "Local IP address used when communicating with BGP peers"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for an incoming BGP packet"; } leaf default-route-target { type boolean; default "false"; description "Send default RTC route (zero prefix length) to peers"; } leaf aigp { type boolean; default "false"; description "Add AIGP attribute to advertised routes"; } leaf advertise-inactive { type boolean; description "Advertise an inactive BGP route to peers"; } leaf authentication-keychain { type leafref { path "../../../../system/security/keychains/keychain/keychain-name"; } description "TCP authentication keychain for the session"; } leaf bfd-liveness { type boolean; description "Enable BFD"; } leaf fast-external-failover { type boolean; description "Drop external BGP session immediately when link fails"; } leaf peer-ip-tracking { type boolean; description "Enable BGP peer tracking"; } leaf dynamic-neighbor-limit { type uint32 { range "1..8192"; } description "Maximum dynamic BGP sessions to accept from remote peer"; } leaf split-horizon { type boolean; description "Prevent routes being reflected back to best-route peer"; } leaf third-party-nexthop { type boolean; description "Apply third-party next-hop processing to EBGP peers"; } leaf label-preference { type uint32 { range "1..255"; } description "Route preference for routes from labeled-unicast peers"; } leaf def-recv-evpn-encap { type types-bgp:encap; description "Default EVPN encapsulation type"; } leaf multipath-eligible { type boolean; default "false"; description "Allow routes from group peers in multipath eligibility"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } description "Maximum time BGP waits between successive messages"; } leaf minimum-hold-time { type int32 { range "0|3..65536"; } default "0"; description "Minimum hold time between successive messages"; } } // container hold-time container family { presence "Enter the 'family' context"; description "Enable the family context"; leaf ipv4 { type boolean; default "false"; description "Add support for the IPv4 address family"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for IPv4 VPN address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf vpn-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for IPv6 VPN address family"; } leaf l2-vpn { type boolean; default "false"; description "Advertise MP-BGP support for the L2-VPN address family"; } leaf mvpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 MCAST VPN address family"; } leaf mdt-safi { type boolean; default "false"; description "Advertise MP-BGP support for MDT-SAFI address family"; } leaf ms-pw { type boolean; default "false"; description "Advertise support for multi-segment PW address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf route-target { type boolean; default "false"; description "Advertise MP-BGP support for RT constraint routes"; } leaf mcast-vpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 VPN MCAST address family"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 MCAST VPN address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf evpn { type boolean; default "false"; description "Advertise MP-BGP support for the EVPN address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise support for the label-IPv6 address family"; } leaf bgp-ls { type boolean; default "false"; description "Advertise MP-BGP support for the BGP-LS address family"; } leaf mcast-vpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 VPN MCAST address family"; } leaf sr-policy-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv4 family"; } leaf sr-policy-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv6 family"; } } // container family container send-default { presence "Enter the 'send-default' context"; description "Enable the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if it is the same as the BGP peer ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } leaf orr-location { type uint32 { range "1..255"; } description "Optimal route reflection location for the cluster"; } leaf allow-local-fallback { type boolean; default "false"; description "Allow fallback to RR topology location"; } } // container cluster container ebgp-default-reject-policy { presence "Enter the 'ebgp-default-reject-policy' context"; description "Enable the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global ASN when advertising routes to BGP peer"; } } // container local-as container next-hop-unchanged { description "Enter the next-hop-unchanged context"; leaf label-ipv4 { type boolean; default "false"; description "Advertise label-IPv4 routes with unchanged BGP next hop"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise label-IPv6 routes with unchanged BGP next hop"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise VPN IPv4 routes with unchanged BGP next hop"; } leaf vpn-ipv6 { type boolean; default "false"; description "Advertise VPN IPv6 routes with unchanged BGP next hop"; } leaf evpn { type boolean; default "false"; description "Advertise EVPN routes with unchanged BGP next hop"; } } // container next-hop-unchanged container origin-validation { description "Enter the origin-validation context"; leaf ipv4 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Enable support for labeled-unicast IPv6 routes"; } } // container origin-validation container link-bandwidth { description "Enter the link-bandwidth context"; container accept-from-ebgp { description "Enter the accept-from-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container accept-from-ebgp container add-to-received-ebgp { description "Enter the add-to-received-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container add-to-received-ebgp container aggregate-used-paths { description "Enter the aggregate-used-paths context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container aggregate-used-paths container send-to-ebgp { description "Enter the send-to-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container send-to-ebgp } // container link-bandwidth container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each repeated session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container add-paths { presence "Enter the 'add-paths' context"; description "Enable the add-paths context"; container ipv4 { description "Enter the ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per unlabeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv4 prefix"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per unlabeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per IPv6 prefix"; } } // container ipv6 container label-ipv4 { description "Enter the label-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per labeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv4 prefix"; } } // container label-ipv4 container label-ipv6 { description "Enter the label-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per labeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv6 prefix"; } } // container label-ipv6 container vpn-ipv4 { description "Enter the vpn-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per VPN-IPv4 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv4 prefix"; } } // container vpn-ipv4 container vpn-ipv6 { description "Enter the vpn-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per VPN-IPv6 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv6 prefix"; } } // container vpn-ipv6 container mvpn-ipv4 { description "Enter the mvpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast VPN IPv4 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast VPN routes per IPv4 prefix"; } } // container mvpn-ipv4 container mvpn-ipv6 { description "Enter the mvpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast VPN IPv6 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast VPN routes per IPv6 prefix"; } } // container mvpn-ipv6 container mcast-vpn-ipv4 { description "Enter the mcast-vpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast IPv4 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv4 VPN prefix"; } } // container mcast-vpn-ipv4 container mcast-vpn-ipv6 { description "Enter the mcast-vpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast IPv6 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv6 VPN prefix"; } } // container mcast-vpn-ipv6 } // container add-paths container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "BGP import policy name"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "BGP export policy name"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container export container extended-nh-encoding { presence "Enter the 'extended-nh-encoding' context"; description "Enable the extended-nh-encoding context"; leaf vpn-ipv4 { type boolean; default "false"; description "Advertise encoding capability for VPN-IPv4 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise encoding capability for label-IPv4 routes"; } leaf ipv4 { type boolean; default "false"; description "Advertise encoding capability for IPv4 routes"; } } // container extended-nh-encoding container advertise-ipv6-next-hops { presence "Enter the 'advertise-ipv6-next-hops' context"; description "Enable the advertise-ipv6-next-hops context"; leaf vpn-ipv6 { type boolean; default "false"; description "Advertise VPN IPv6 route with IPv6 next-hop address"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise label IPv6 route with IPv6 next-hop address"; } leaf evpn { type boolean; default "false"; description "Advertise EVPN route with IPv6 next-hop address"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise VPN IPv4 route with IPv6 next-hop address"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise label IPv4 route with IPv6 next-hop address"; } leaf ipv4 { type boolean; default "false"; description "Advertise IPv4 route with IPv6 next-hop address"; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "300"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform graceful restart procedures after NOTIFICATION"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "Advertised long-lived stale time for LLGR routes"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type types-bgp:llgr-family-identifiers; description "Family type for family-specific LLGR configuration"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777216"; } default "16777216"; description "Locally-configured stale routes override time"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list family } // container long-lived } // container graceful-restart container outbound-route-filtering { presence "Enter the 'outbound-route-filtering' context"; description "Enable the outbound-route-filtering context"; container extended-community { presence "Enter the 'extended-community' context"; description "Enable the extended-community context"; leaf accept-orf { type boolean; description "Negotiate with peer to accept BGP ORF filters"; } container send-orf { presence "Enter the 'send-orf' context"; description "Enable the send-orf context"; list route-target { key "community-name"; description "Add a list entry for route-target"; leaf community-name { type types-sros:named-item; description "Route target community name"; } } // list route-target } // container send-orf } // container extended-community } // container outbound-route-filtering list prefix-limit { key "family"; description "Enter the prefix-limit list instance"; leaf family { type types-bgp:ip-family-identifier; description "Address family to which the limit applies"; } leaf maximum { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of routes to be learned from a peer"; } leaf log-only { type boolean; default "false"; description "Send warning message at threshold instead of take-down"; } leaf threshold { type uint32 { range "1..100"; } default "90"; description "Percentage threshold that triggers a warning message"; } leaf idle-timeout { type int32 { range "1..1024"; } description "Time which BGP peering remains idle before reconnecting"; } leaf post-import { type boolean; default "false"; description "Apply limit only to routes accepted by import policies"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix-limit container dynamic-neighbor { description "Enter the dynamic-neighbor context"; container match { description "Enter the match context"; list prefix { key "ip-prefix"; description "Enter the prefix list instance"; leaf ip-prefix { type types-sros:ip-prefix; description "Dynamic peer prefix for the group"; } leaf-list allowed-peer-as { type string { pattern "(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))|(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])\\.\\.([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))"; } max-elements 32; ordered-by user; description "Allowed peer AS range"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // container match } // container dynamic-neighbor container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type leafref { path "../../../../../../bmp/station/name"; } description "BMP monitoring station"; } } // list station } // container monitor } // list group list neighbor { key "ip-address"; description "Enter the neighbor list instance"; leaf ip-address { type types-sros:ip-address-with-zone; description "IP address of the BGP peer router"; } leaf advertise-ldp-prefix { type boolean; default "false"; description "Advertise active /32 LDP FEC prefixes to BGP peers"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for an incoming BGP packet"; } leaf default-route-target { type boolean; description "Send default RTC route (zero prefix length) to peers"; } leaf aigp { type boolean; description "Add AIGP attribute to advertised routes"; } leaf advertise-inactive { type boolean; description "Advertise an inactive BGP route to peers"; } leaf authentication-keychain { type leafref { path "../../../../system/security/keychains/keychain/keychain-name"; } description "TCP authentication keychain for the session"; } leaf bfd-liveness { type boolean; description "Enable BFD"; } leaf fast-external-failover { type boolean; description "Drop external BGP session immediately when link fails"; } leaf peer-ip-tracking { type boolean; description "Enable BGP peer tracking"; } leaf split-horizon { type boolean; description "Prevent routes being reflected back to best-route peer"; } leaf third-party-nexthop { type boolean; description "Apply third-party next-hop processing to EBGP peers"; } leaf label-preference { type uint32 { range "1..255"; } description "Route preference for routes from labeled-unicast peers"; } leaf def-recv-evpn-encap { type types-bgp:encap; description "Default EVPN encapsulation type"; } leaf multipath-eligible { type boolean; description "Allow routes from this peer in multipath eligibility"; } leaf group { type leafref { path "../../group/group-name"; } sros-ext:immutable; mandatory true; description "BGP peer group"; } leaf peer-creation-type { type types-bgp:peer-creation-type; default "static"; description "Peer creation type"; } leaf connect-retry { type int32 { range "1..65535"; } description "BGP connect retry timer value"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP neighbor"; } leaf keepalive { type int32 { range "0..21845"; } description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type union { type uint32 { range "384..9746"; } type enumeration { enum "ip-stack" { value 0; } } } description "TCP maximum segment size override"; } leaf selective-label-ipv4-install { type boolean; description "Enable/Disable selective download for bgp label-ipv4 routes."; } leaf min-route-advertisement { type int16 { range "1..255"; } description "Minimum interval between successive prefix updates"; } leaf aggregator-id-zero { type boolean; description "Set router ID in the BGP AGGREGATOR attribute to zero"; } leaf preference { type uint32 { range "1..255"; } description "Route preference for routes learned from all peers"; } leaf block-prefix-sid { type boolean; default "false"; description "Block the prefix SID attribute"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; description "Allow cluster RR to advertise routes to its clients"; } leaf vpn-apply-export { type boolean; description "Apply base-instance BGP export policies to VPN routes"; } leaf vpn-apply-import { type boolean; description "Apply base-instance BGP import policies to VPN routes"; } leaf as-override { type boolean; description "Replace the peer's ASN with the local ASN in AS Path"; } leaf asn-4-byte { type boolean; description "Advertise the use of 4-byte ASNs"; } leaf path-mtu-discovery { type boolean; description "Enable path MTU discovery"; } leaf local-address { type types-bgp:local-address; description "Local IP address used when communicating with BGP peers"; } leaf l2vpn-cisco-interop { type boolean; default "false"; description "Allow translation from Cisco non-compliant NLRI format"; } leaf next-hop-self { type boolean; description "Advertise routes with local address as next-hop address"; } leaf passive { type boolean; description "Use passive mode for BGP communication"; } leaf type { type types-bgp:peer-type; description "BGP peer type"; } leaf peer-as { type uint32 { range "1..4294967295"; } description "Peer AS number"; } leaf capability-negotiation { type boolean; description "Enable capability negotiation"; } leaf enforce-first-as { type boolean; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; description "Send BGP updates as soon as the session comes up"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container next-hop-unchanged { presence "Enter the 'next-hop-unchanged' context"; description "Enable the next-hop-unchanged context"; leaf label-ipv4 { type boolean; default "false"; description "Advertise label-IPv4 routes with unchanged BGP next hop"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise label-IPv6 routes with unchanged BGP next hop"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise VPN IPv4 routes with unchanged BGP next hop"; } leaf vpn-ipv6 { type boolean; default "false"; description "Advertise VPN IPv6 routes with unchanged BGP next hop"; } leaf evpn { type boolean; default "false"; description "Advertise EVPN routes with unchanged BGP next hop"; } } // container next-hop-unchanged container origin-validation { presence "Enter the 'origin-validation' context"; description "Enable the origin-validation context"; leaf ipv4 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Enable support for labeled-unicast IPv6 routes"; } } // container origin-validation container link-bandwidth { description "Enter the link-bandwidth context"; container accept-from-ebgp { presence "Enter the 'accept-from-ebgp' context"; description "Enable the accept-from-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container accept-from-ebgp container add-to-received-ebgp { presence "Enter the 'add-to-received-ebgp' context"; description "Enable the add-to-received-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container add-to-received-ebgp container aggregate-used-paths { presence "Enter the 'aggregate-used-paths' context"; description "Enable the aggregate-used-paths context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container aggregate-used-paths container send-to-ebgp { presence "Enter the 'send-to-ebgp' context"; description "Enable the send-to-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf vpn-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv4 routes"; } leaf vpn-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in VPN-IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } leaf label-ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv6 routes"; } } // container send-to-ebgp } // container link-bandwidth container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each repeated session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } description "BGP hold time"; } leaf minimum-hold-time { type int32 { range "0|3..65536"; } default "0"; description "Minimum time BGP waits between successive messages"; } } // container hold-time container family { presence "Enter the 'family' context"; description "Enable the family context"; leaf ipv4 { type boolean; default "false"; description "Add support for the IPv4 address family"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for IPv4 VPN address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf vpn-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for IPv6 VPN address family"; } leaf l2-vpn { type boolean; default "false"; description "Advertise MP-BGP support for the L2-VPN address family"; } leaf mvpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 MCAST VPN address family"; } leaf mdt-safi { type boolean; default "false"; description "Advertise MP-BGP support for MDT-SAFI address family"; } leaf ms-pw { type boolean; default "false"; description "Advertise support for multi-segment PW address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf route-target { type boolean; default "false"; description "Advertise MP-BGP support for RT constraint routes"; } leaf mcast-vpn-ipv4 { type boolean; default "false"; description "Advertise support for the IPv4 VPN MCAST address family"; } leaf mvpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 MCAST VPN address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf evpn { type boolean; default "false"; description "Advertise MP-BGP support for the EVPN address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise support for the label-IPv6 address family"; } leaf bgp-ls { type boolean; default "false"; description "Advertise MP-BGP support for the BGP-LS address family"; } leaf mcast-vpn-ipv6 { type boolean; default "false"; description "Advertise support for the IPv6 VPN MCAST address family"; } leaf sr-policy-ipv4 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv4 family"; } leaf sr-policy-ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the SR-policy-IPv6 family"; } } // container family container send-default { presence "Enter the 'send-default' context"; description "Enable the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable IPv4 family type"; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if it is the same as the BGP peer ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } leaf orr-location { type uint32 { range "1..255"; } description "Optimal route reflection location for cluster ID"; } leaf allow-local-fallback { type boolean; default "false"; description "Allow fallback to RR topology"; } } // container cluster container ebgp-default-reject-policy { presence "Enter the 'ebgp-default-reject-policy' context"; description "Enable the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global ASN when advertising routes to BGP peer"; } } // container local-as container add-paths { presence "Enter the 'add-paths' context"; description "Enable the add-paths context"; container ipv4 { description "Enter the ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per unlabeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv4 prefix"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per unlabeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per IPv6 prefix"; } } // container ipv6 container label-ipv4 { description "Enter the label-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per labeled IPv4 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv4 prefix"; } } // container label-ipv4 container label-ipv6 { description "Enter the label-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per labeled IPv6 unicast prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple labeled-unicast routes per IPv6 prefix"; } } // container label-ipv6 container vpn-ipv4 { description "Enter the vpn-ipv4 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per VPN-IPv4 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv4 prefix"; } } // container vpn-ipv4 container vpn-ipv6 { description "Enter the vpn-ipv6 context"; leaf send { type types-bgp:add-paths-send-limit; description "Maximum paths per VPN-IPv6 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple routes per VPN-IPv6 prefix"; } } // container vpn-ipv6 container mvpn-ipv4 { description "Enter the mvpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast VPN IPv4 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast VPN routes per IPv4 prefix"; } } // container mvpn-ipv4 container mvpn-ipv6 { description "Enter the mvpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast VPN IPv6 prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast VPN routes per IPv6 prefix"; } } // container mvpn-ipv6 container mcast-vpn-ipv4 { description "Enter the mcast-vpn-ipv4 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast IPv4 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv4 VPN prefix"; } } // container mcast-vpn-ipv4 container mcast-vpn-ipv6 { description "Enter the mcast-vpn-ipv6 context"; leaf send { type int32 { range "1..16"; } description "Maximum paths per multicast IPv6 VPN prefix"; } leaf receive { type boolean; default "false"; description "Receive multiple multicast routes per IPv6 VPN prefix"; } } // container mcast-vpn-ipv6 } // container add-paths container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Names of the BGP import policies"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "BGP export policy name"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container export container extended-nh-encoding { presence "Enter the 'extended-nh-encoding' context"; description "Enable the extended-nh-encoding context"; leaf vpn-ipv4 { type boolean; default "false"; description "Advertise encoding capability for VPN-IPv4 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise encoding capability for label-IPv4 routes"; } leaf ipv4 { type boolean; default "false"; description "Advertise encoding capability for IPv4 routes"; } } // container extended-nh-encoding container advertise-ipv6-next-hops { presence "Enter the 'advertise-ipv6-next-hops' context"; description "Enable the advertise-ipv6-next-hops context"; leaf vpn-ipv6 { type boolean; default "false"; description "Advertise VPN IPv6 route with IPv6 next-hop address"; } leaf label-ipv6 { type boolean; default "false"; description "Advertise label IPv6 route with IPv6 next-hop address"; } leaf evpn { type boolean; default "false"; description "Advertise EVPN route with IPv6 next-hop address"; } leaf vpn-ipv4 { type boolean; default "false"; description "Advertise VPN IPv4 route with IPv6 next-hop address"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise label IPv4 route with IPv6 next-hop address"; } leaf ipv4 { type boolean; default "false"; description "Advertise IPv4 route with IPv6 next-hop address"; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "300"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform graceful restart procedures after NOTIFICATION"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "Advertised long-lived stale time for LLGR routes"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type types-bgp:llgr-family-identifiers; description "Family type for family-specific LLGR configuration"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777216"; } default "16777216"; description "Locally-configured stale routes override time"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list family } // container long-lived } // container graceful-restart container outbound-route-filtering { presence "Enter the 'outbound-route-filtering' context"; description "Enable the outbound-route-filtering context"; container extended-community { presence "Enter the 'extended-community' context"; description "Enable the extended-community context"; leaf accept-orf { type boolean; description "Negotiate with peer to accept BGP ORF filters"; } container send-orf { presence "Enter the 'send-orf' context"; description "Enable the send-orf context"; list route-target { key "community-name"; description "Add a list entry for route-target"; leaf community-name { type types-sros:named-item; description "Route target community name"; } } // list route-target } // container send-orf } // container extended-community } // container outbound-route-filtering container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type leafref { path "../../../../../../bmp/station/name"; } description "BMP monitoring station"; } } // list station } // container monitor list prefix-limit { key "family"; description "Enter the prefix-limit list instance"; leaf family { type types-bgp:ip-family-identifier; description "Address family to which the limit applies"; } leaf maximum { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of routes to be learned from a peer"; } leaf log-only { type boolean; default "false"; description "Send warning message at threshold instead of take-down"; } leaf threshold { type uint32 { range "1..100"; } default "90"; description "Percentage threshold that triggers a warning message"; } leaf idle-timeout { type int32 { range "1..1024"; } description "Time which BGP peering remains idle before reconnecting"; } leaf post-import { type boolean; default "false"; description "Apply limit only to routes accepted by import policies"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix-limit } // list neighbor container bgp-tunnel-metric { description "Enter the bgp-tunnel-metric context"; leaf value { type uint32 { range "0..4294967295"; } default "1000"; description "BGP tunnel metric value"; } leaf prefer-aigp { type boolean; default "false"; description "Use the AIGP attribute as tunnel metric when present"; } } // container bgp-tunnel-metric } // container bgp container bier { presence "Enter the 'bier' context"; description "Enable the bier context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BIER"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list template { key "template-name"; description "Enter the template list instance"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the BIER template"; } leaf template-name { type types-sros:named-item; description "BIER template name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list sub-domain { key "start end"; description "Enter the sub-domain list instance"; leaf start { type inet:as-number { range "0..255"; } description "Configure sub-domain start value."; } leaf end { type inet:as-number { range "0..255"; } description "Configure sub-domain end value."; } leaf bfr-id { type inet:as-number { range "1..4096"; } description "Configure BIER sub domain BFR ID."; } leaf multi-topology { type enumeration { enum "ipv4-unicast" { value 0; } enum "ipv6-unicast" { value 2; } enum "ipv4-multicast" { value 3; } enum "ipv6-multicast" { value 4; } } default "ipv4-unicast"; description "Configure BIER sub domain ISIS multi topology."; } leaf prefix { type types-sros:ipv4-unicast-address; default "0.0.0.0"; description "Configure BIER sub domain prefix."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sub-domain } // list template } // container bier container dhcp-server { when "../router-name = 'Base'"; description "Enter the dhcp-server context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list dhcpv4 { key "name"; description "Enter the dhcpv4 list instance"; leaf name { type types-sros:named-item; description "DHCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP server"; } leaf description { type types-sros:description; description "Text description"; } leaf user-db { type leafref { path "../../../../subscriber-mgmt/local-user-db/name"; } description "Local user database for authentication"; } leaf user-identification { type enumeration { enum "mac-circuit-id" { value 1; } enum "duid" { value 2; } enum "interface-id" { value 3; } enum "interface-id-link-local" { value 4; } enum "client-id" { value 5; } enum "mac" { value 6; } enum "circuit-id" { value 7; } enum "remote-id" { value 8; } } sros-ext:auto-restart-to-modify; default "mac-circuit-id"; description "User identification method for the DHCP server"; } leaf force-renews { type boolean; default "false"; description "Send FORCERENEW messages to force renewals of leases"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pool-selection { description "Enter the pool-selection context"; container use-gi-address { presence "Enter the 'use-gi-address' context"; description "Enable the use-gi-address context"; leaf scope { type enumeration { enum "subnet" { value 0; } enum "pool" { value 1; } } default "subnet"; description "GI address-matching scope"; } } // container use-gi-address container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type types-sros:string-not-all-spaces { length "1"; } description "Delimiter to combine primary and secondary pool names"; } } // container use-pool-from-client } // container pool-selection container lease-hold { description "Enter the lease-hold context"; leaf time { type types-sros:time-duration { range "1..631152000"; } units "seconds"; description "Lease hold time"; } container additional-scenarios { description "Enter the additional-scenarios context"; leaf internal-lease-ipsec { type boolean; default "false"; description "Enable lease hold timer for internal IPsec clients"; } leaf solicited-release { type boolean; default "false"; description "Enable lease hold timer for solicited releases"; } } // container additional-scenarios } // container lease-hold container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "120"; description "Time between initialization and assuming active role"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type leafref { path "../../../../../../redundancy/multi-chassis/peer/ip-address"; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Tag that identifies synchronizing server or pool pairs"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer } // container failover list pool { key "pool-name"; description "Enter the pool list instance"; leaf pool-name { type types-sros:named-item; description "DHCP server pool name"; } leaf description { type types-sros:description; description "Text description"; } leaf min-lease-time { type types-sros:time-duration { range "10..315446399"; } units "seconds"; default "600"; description "Minimum lease time"; } leaf max-lease-time { type types-sros:time-duration { range "10..315446399"; } units "seconds"; default "864000"; description "Maximum lease time"; } leaf offer-time { type types-sros:time-duration { range "10..600"; } units "seconds"; default "60"; description "Time interval during which a DHCP offer remains valid"; } leaf nak-non-matching-subnet { type boolean; default "false"; description "Send NAK if no match for request address pool range"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container minimum-free { description "Enter the minimum-free context"; leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when addresses are depleted"; } choice value { default "absolute"; case absolute { leaf absolute { type uint32 { range "0..255"; } default "1"; description "Minimum number of free addresses in this pool or subnet"; } } case percent { leaf percent { type uint32 { range "0..100"; } default "1"; description "Minimum free addresses as a percentage"; } } } } // container minimum-free container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } description "DHCP option to send identification strings to client"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { when "../number = 46 or ../number = 'netbios-node-type'"; type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option specified as a NetBIOS node type"; } } case duration { leaf duration { when "../number = 51 or ../number = 'lease-time' or ../number = 58 or ../number = 'lease-renew-time' or ../number = 59 or ../number = 'lease-rebind-time'"; type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time duration"; } } case ipv4-address { leaf-list ipv4-address { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv4 addresses"; } } case empty { leaf empty { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type empty; description "Remove DHCP option from configuration"; } } } } // list option } // container options container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "120"; description "Time between initialization and assuming active role"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type leafref { path "../../../../../../../redundancy/multi-chassis/peer/ip-address"; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Tag that identifies synchronizing server or pool pairs"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer } // container failover list subnet { key "ipv4-prefix"; description "Enter the subnet list instance"; leaf ipv4-prefix { type types-sros:ipv4-unicast-prefix; description "IPv4 prefix for the subnet"; } leaf drain { type boolean; default "false"; description "Prevent new lease assignment from this subnet"; } leaf maximum-declined { type uint32; default "64"; description "Maximum number of declined addresses allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container minimum-free { description "Enter the minimum-free context"; leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when addresses are depleted"; } choice value { default "absolute"; case absolute { leaf absolute { type uint32 { range "0..255"; } default "1"; description "Minimum number of free addresses in this pool or subnet"; } } case percent { leaf percent { type uint32 { range "0..100"; } default "1"; description "Minimum free addresses as a percentage"; } } } } // container minimum-free container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } description "DHCP option to send identification strings to client"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { when "../number = 46 or ../number = 'netbios-node-type'"; type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option specified as a NetBIOS node type"; } } case duration { leaf duration { when "../number = 51 or ../number = 'lease-time' or ../number = 58 or ../number = 'lease-renew-time' or ../number = 59 or ../number = 'lease-rebind-time'"; type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv4-address { leaf-list ipv4-address { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv4 addresses"; } } case empty { leaf empty { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type empty; description "Empty DHCP option"; } } } } // list option } // container options list address-range { key "start end"; description "Enter the address-range list instance"; leaf start { type types-sros:ipv4-unicast-address; description "Start address of this range"; } leaf end { type types-sros:ipv4-unicast-address; description "End address of this range"; } leaf failover-control-type { type types-dhcp:failover-control-type; sros-ext:immutable; default "local"; description "Failover control type for this range"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address-range list exclude-addresses { key "start end"; description "Add a list entry for exclude-addresses"; leaf start { type types-sros:ipv4-unicast-address; description "Start address of this range"; } leaf end { type types-sros:ipv4-unicast-address; description "End address of this range"; } } // list exclude-addresses } // list subnet } // list pool } // list dhcpv4 list dhcpv6 { key "name"; description "Enter the dhcpv6 list instance"; leaf name { type types-sros:named-item; description "DHCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP server"; } leaf auto-provisioned { type boolean; sros-ext:immutable; default "false"; description "Auto-provision the pools of this server"; } leaf description { type types-sros:description; description "Text description"; } leaf user-identification { when "../auto-provisioned = 'false'"; type enumeration { enum "mac-circuit-id" { value 1; } enum "duid" { value 2; } enum "interface-id" { value 3; } enum "interface-id-link-local" { value 4; } enum "client-id" { value 5; } enum "mac" { value 6; } enum "circuit-id" { value 7; } enum "remote-id" { value 8; } } sros-ext:auto-restart-to-modify; default "duid"; description "User identification method for the DHCP server"; } leaf ignore-rapid-commit { type boolean; default "false"; description "Ignore Rapid Commit option"; } leaf interface-id-mapping { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Map hosts within interface-to-prefix combinations"; } leaf lease-query { when "../auto-provisioned = 'false'"; type boolean; default "false"; description "Handle and reply to lease query messages"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pool-selection { when "../auto-provisioned = 'false'"; description "Enter the pool-selection context"; container use-link-address { presence "Enter the 'use-link-address' context"; description "Enable the use-link-address context"; leaf scope { type enumeration { enum "subnet" { value 0; } enum "pool" { value 1; } } default "subnet"; description "Scope of the IP address selection"; } } // container use-link-address container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type types-sros:string-not-all-spaces { length "1"; } description "Delimiter to combine primary and secondary pool names"; } } // container use-pool-from-client } // container pool-selection container lease-hold { when "../auto-provisioned = 'false'"; description "Enter the lease-hold context"; leaf time { type types-sros:time-duration { range "1..631152000"; } units "seconds"; description "Lease hold time"; } container additional-scenarios { description "Enter the additional-scenarios context"; leaf internal-lease-ipsec { type boolean; default "false"; description "Enable lease hold timer for internal IPsec clients"; } leaf solicited-release { type boolean; default "false"; description "Enable lease hold timer for solicited releases"; } } // container additional-scenarios } // container lease-hold container server-id { when "../auto-provisioned = 'false'"; description "Enter the server-id context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { default "duid-link-local"; case duid-link-local { leaf duid-link-local { type empty; description "Derive DUID server ID from a system link-layer address"; } } case duid-enterprise { container duid-enterprise { description "Enter the duid-enterprise context"; choice duid-enterprise-value { case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..58"; } description "DUID enterprise server ID specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..118"; } description "DUID enterprise server ID specified as a hex string"; } } } } // container duid-enterprise } } } // container server-id container failover { when "../auto-provisioned = 'false'"; description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "120"; description "Time between initialization and assuming active role"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type leafref { path "../../../../../../redundancy/multi-chassis/peer/ip-address"; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Tag that identifies synchronizing server or pool pairs"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer } // container failover container defaults { when "../auto-provisioned = 'true'"; description "Enter the defaults context"; leaf preferred-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "3600"; description "Time this lease remains preferred"; } leaf valid-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "86400"; description "Time for the lease to remain valid"; } leaf renew-time { type types-sros:time-duration { range "0..604800"; } units "seconds"; default "1800"; description "Renew time for the lease"; } leaf rebind-time { type types-sros:time-duration { range "0..1209600"; } units "seconds"; default "2880"; description "Rebind time for the lease"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } description "DHCP option number"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options } // container defaults list pool { when "../auto-provisioned = 'false'"; key "pool-name"; description "Enter the pool list instance"; leaf pool-name { type types-sros:named-item; description "DHCP server pool name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container delegated-prefix { description "Enter the delegated-prefix context"; leaf length { type uint32 { range "48..127"; } default "64"; description "Prefix length for pool if unspecified by client"; } leaf minimum { type uint32 { range "48..127"; } default "48"; description "Minimum delegated prefix length for this pool"; } leaf maximum { type uint32 { range "48..127"; } default "64"; description "Maximum delegated prefix length for this pool"; } } // container delegated-prefix container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "120"; description "Time between initialization and assuming active role"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type leafref { path "../../../../../../../redundancy/multi-chassis/peer/ip-address"; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Tag that identifies synchronizing server or pool pairs"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer } // container failover list prefix-length-threshold { key "prefix-length"; max-elements 8; description "Enter the prefix-length-threshold list instance"; leaf prefix-length { type uint32 { range "1..128"; } description "Delegated prefix length for pool thresholds"; } leaf minimum-free-percent { type uint32 { range "0..100"; } default "0"; description "Percentage of free prefixes for this prefix length"; } leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when this pool is depleted"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix-length-threshold container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } description "DHCP option number"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "IPv6 prefix to be excluded from available pool prefixes"; } leaf failover-control-type { type types-dhcp:failover-control-type; sros-ext:immutable; default "local"; description "Failover control type for this range"; } leaf preferred-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "3600"; description "Time this lease remains preferred"; } leaf valid-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "86400"; description "Time for the lease to remain valid"; } leaf renew-time { type types-sros:time-duration { range "0..604800"; } units "seconds"; default "1800"; description "Renew time for the lease"; } leaf rebind-time { type types-sros:time-duration { range "0..1209600"; } units "seconds"; default "2880"; description "Rebind time for the lease"; } leaf drain { type boolean; default "false"; description "No new leases can be assigned"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container prefix-type { description "Enter the prefix-type context"; leaf pd { type boolean; sros-ext:immutable; default "true"; description "Allocate IA-PD prefixes from this prefix pool"; } leaf wan-host { type boolean; sros-ext:immutable; default "true"; description "Allocate IA-NA or SLAAC prefixes from this prefix pool"; } } // container prefix-type container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } description "DHCP option number"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options list prefix-length-threshold { key "prefix-length"; max-elements 8; description "Enter the prefix-length-threshold list instance"; leaf prefix-length { type uint32 { range "1..128"; } description "Delegated prefix length for pool thresholds"; } leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when this pool is depleted"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { case absolute { leaf absolute { type uint32 { range "1..4294967295"; } description "Minimum number of free prefixes for this prefix length"; } } case percent { leaf percent { type uint32 { range "1..100"; } description "Minimum percentage of free prefixes for prefix length"; } } } } // list prefix-length-threshold } // list prefix list exclude-prefix { key "ipv6-prefix"; description "Add a list entry for exclude-prefix"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "IPv6 prefix to be excluded from available pool prefixes"; } } // list exclude-prefix } // list pool } // list dhcpv6 } // container dhcp-server container firewall { when "../router-name = 'Base'"; description "Enter the firewall context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list domain { key "name"; max-elements 1024; description "Enter the domain list instance"; leaf name { type types-sros:named-item; description "Firewall domain name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the firewall domain"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice isa { mandatory true; case nat { leaf nat-group { type leafref { path "../../../../isa/nat-group/id"; } sros-ext:immutable; description "NAT group for this domain"; } } case wlan-gw { leaf wlan-gw-group { type leafref { path "../../../../isa/wlan-gw-group/id"; } sros-ext:immutable; description "WLAN GW group used for NAT in this domain"; } } } container dhcpv6-server { description "Enter the dhcpv6-server context"; leaf router-instance { type string; sros-ext:auto-restart-to-modify; description "Router name"; } leaf name { type types-sros:named-item; sros-ext:auto-restart-to-modify; description "DHCPv6 server name"; } } // container dhcpv6-server list prefix { key "ip-prefix"; max-elements 4096; description "Enter the prefix list instance"; leaf ip-prefix { type types-sros:ipv6-unicast-prefix; description "IP prefix and prefix length for the domain firewall"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // list domain } // container firewall container gtm { when "../router-name = 'Base'"; description "Enter the gtm context"; leaf mvpn { type boolean; default "false"; description "Configure multicast VPN."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container provider-tunnel { description "Enter the provider-tunnel context"; container inclusive { description "Enter the inclusive context"; container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of P2MP RSVP as provider tunnel"; } leaf lsp-template { type leafref { path "../../../../../../router/mpls/lsp-template/template-name"; } description "Specify the Lsp Template."; } } // container rsvp } // container inclusive container selective { description "Enter the selective context"; leaf data-delay-interval { type uint32 { range "3..180"; } default "3"; description "The data delay interval."; } leaf maximum-p2mp-spmsi { type uint32 { range "1..4000"; } default "10"; description "Specify the maximum number of p2mp s-pmsi tunnels for the mvpn."; } container data-threshold { description "Enter the data-threshold context"; list group-prefix { key "ip-group-prefix"; description "Enter the group-prefix list instance"; leaf ip-group-prefix { type types-sros:ip-multicast-prefix; description "Multicast group-prefix."; } leaf threshold { type uint32 { range "1..4294967294"; } units "kilobps"; mandatory true; description "Configure threshold in kbps for a group prefix."; } leaf pe-threshold-add { type uint32 { range "1..65535"; } default "65535"; description "Configure threshold."; } leaf pe-threshold-delete { type uint32 { range "2..65535"; } default "65535"; description "Configure threshold."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list group-prefix } // container data-threshold container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of P2MP RSVP as provider tunnel"; } leaf lsp-template { type leafref { path "../../../../../../router/mpls/lsp-template/template-name"; } description "Specify the Lsp Template."; } } // container rsvp } // container selective } // container provider-tunnel } // container gtm container igmp { presence "Enter the 'igmp' context"; description "Enable the igmp context"; leaf group-if-query-source-address { type types-sros:ipv4-unicast-address; description "Default query-source address for all group interfaces"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } units "seconds"; default "1"; description "Time between group-specific query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..10"; } default "2"; description "Number of retries after message loss"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv4-multicast-address; description "IP address that specifies the start of the group range"; } leaf end { type types-sros:ipv4-multicast-address; description "IP address that specifies the end of the group range"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } // list group-range } // container ssm-translate list interface { key "ip-interface-name"; description "Enter the interface list instance"; leaf ip-interface-name { type types-sros:interface-name; description "IP interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf subnet-check { type boolean; default "true"; description "Allow subnet checking"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf redundant-mcast { type boolean; default "false"; description "Use interface as a redundant-pair member for multicast"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type types-mcast-cac:constraints-level; description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } mandatory true; description "Bandwidth available for this level"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type uint32 { range "1..64"; } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; mandatory true; description "Level ID to associate with number of down LAG ports"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list number-down } // container mc-constraints container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv4-multicast-address; description "IP address that specifies the start of the group range"; } leaf end { type types-sros:ipv4-multicast-address; description "IP address that specifies the end of the group range"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } // list group-range } // container ssm-translate container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv4-multicast-address; description "Group address of static IGMP multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "Add a starg (*,G) address entry for the group range"; } } } } // list group list group-range { key "start end step"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv4-multicast-address; description "IP address for the start of the static group range"; } leaf end { type types-sros:ipv4-multicast-address; description "IP address for the end of the static group range"; } leaf step { type types-sros:ipv4-address; description "Step interval in the group-range address"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "Add a starg (*,G) address entry for the group range"; } } } } // list group-range } // container static } // list interface list group-interface { key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type leafref { path "../../../../service/ies/subscriber-interface/group-interface/group-interface-name"; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf subnet-check { type boolean; default "true"; description "Allow subnet checking"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow IGMP traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv4-unicast-address; description "Source address for IGMP queries"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list group-interface container tunnel-interface { description "Enter the tunnel-interface context"; list rsvp-p2mp-root { key "lsp-name"; description "Enter the rsvp-p2mp-root list instance"; leaf lsp-name { type leafref { path "../../../../tunnel-interface/rsvp-p2mp-root/lsp-name"; } description "LSP name for the RSVP P2MP LSP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv4-multicast-address; description "Group address of static IGMP multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "Add a starg (*,G) address entry for the group range"; } } } } // list group } // container static } // list rsvp-p2mp-root list ldp-p2mp-root { key "p2mp-id sender-address"; description "Enter the ldp-p2mp-root list instance"; leaf p2mp-id { type leafref { path "../../../../tunnel-interface/ldp-p2mp-root[sender-address=current()/../sender-address]/p2mp-id"; } description "The identifier of the RSVP P2MP LSP"; } leaf sender-address { type leafref { path "../../../../tunnel-interface/ldp-p2mp-root[p2mp-id=current()/../p2mp-id]/sender-address"; } description "System address of the ingress LER for the P2MP RSVP LSP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv4-multicast-address; description "Group address of static IGMP multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "Add a starg (*,G) address entry for the group range"; } } } } // list group } // container static } // list ldp-p2mp-root } // container tunnel-interface } // container igmp list isis { key "isis-instance"; description "Enter the isis list instance"; leaf isis-instance { type int32 { range "0..127"; } description "Instance ID for IS-IS instance"; } leaf authentication-keychain { type leafref { path "../../../system/security/keychains/keychain/keychain-name"; } description "The keychain used to sign and/or authenticate."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication key to verify PDUs sent by neighboring routers"; } leaf authentication-type { type types-isis:auth-type; description "Authentication type"; } leaf csnp-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of complete sequence number PDU (CSNP) type"; } leaf psnp-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of partial sequence number PDU (PSNP) type"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IS-IS instance"; } leaf advertise-passive-only { type boolean; default "false"; description "Advertise prefixes that belong to passive interfaces"; } leaf advertise-router-capability { type enumeration { enum "area" { value 2; } enum "as" { value 3; } } description "Advertise router capabilities to neighbors"; } leaf advertise-tunnel-link { type boolean; default "false"; description "Allow use of forwarding adjacency"; } leaf all-l1isis { type yang:mac-address; default "01:80:C2:00:00:14"; description "Destination MAC address for all L1 IS-IS routers"; } leaf all-l2isis { type yang:mac-address; default "01:80:C2:00:00:15"; description "Destination MAC address for all L2 IS-IS routers"; } leaf authentication-check { type boolean; default "true"; description "Perform authentication check to reject PDUs that do not match the type or key requirements"; } leaf default-route-tag { type uint32 { range "1..max"; } description "Route tag for default route"; } leaf ldp-sync { type boolean; default "true"; description "Use IGP-LDP synchronization feature on all interfaces participating in IS-IS routing protocol"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf ignore-attached-bit { type boolean; default "false"; description "Ignore attached bit on received L1 LSPs to disable installation of default routes"; } leaf ignore-lsp-errors { type boolean; default "false"; description "Ignore LSP packets with errors"; } leaf ignore-narrow-metric { type boolean; default "false"; description "Ignore links with narrow metrics when wide-metrics support is enabled"; } leaf iid-tlv { type boolean; default "false"; description "Use IID TLVs with IS-IS multi-instance (MI)"; } leaf ipv4-multicast-routing { type types-isis:routing-topology; default "native"; description "IS-IS topology for IPv4 multicast routing"; } leaf ipv4-routing { type boolean; default "true"; description "Support IPv4 routing for IS-IS instance"; } leaf ipv6-multicast-routing { type types-isis:routing-topology; description "Topology to populate the IPv6 multicast RTM"; } leaf ipv6-routing { type types-isis:routing-topology; default "false"; description "Routing topology for IPv6"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf ldp-over-rsvp { type boolean; default "false"; description "Allow LDP over RSVP processing"; } leaf level-capability { type types-isis:level; description "Routing level for instance"; } leaf lsp-lifetime { type uint32 { range "350..65535"; } units "seconds"; sros-ext:manual-restart-to-modify; default "1200"; description "Amount of time during which an LSP is considered valid"; } leaf lsp-minimum-remaining-lifetime { type uint32 { range "350..65535"; } units "seconds"; description "Minimum value for the Remaining Lifetime of an LSP"; } leaf lsp-mtu-size { type types-isis:lsp-buffer-ext-size; units "bytes"; sros-ext:manual-restart-to-modify; default "1492"; description "LSP MTU size"; } leaf overload-export-interlevel { type boolean; default "false"; description "Advertise the inter-level routes when router is overloaded"; } leaf overload-export-external { type boolean; default "false"; description "Advertise the external routes when router is in overloaded"; } leaf poi-tlv { type boolean; default "false"; description "Purge Originator Identification TLV"; } leaf prefix-attributes-tlv { type boolean; default "false"; description "Use IS-IS Prefix Attributes TLV to exchange extended IPv4 and IPv6 reachability information"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; description "Reference bandwidth for bandwidth relative costing"; } leaf router-id { type types-igp:router-id; sros-ext:auto-restart-to-modify; description "Unique router ID for the ISIS instance"; } leaf standard-multi-instance { type boolean; default "false"; description "Enable RFC standards compliant multi-instance behavior"; } leaf strict-adjacency-check { type boolean; default "false"; description "Enable strict checking of address families for IS-IS adjacencies"; } leaf suppress-attached-bit { type boolean; default "false"; description "Allow IS-IS to suppress setting the attached bit on LSPs"; } leaf system-id { type types-igp:system-id; sros-ext:manual-restart-to-modify; description "System ID"; } leaf traffic-engineering { type boolean; default "false"; description "Traffic engineering for router"; } leaf-list export-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf-list area-address { type types-isis:area-address; max-elements 3; description "Area address portion of NSAP address"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } mandatory true; description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for IS-IS"; } } // container graceful-restart container entropy-label { description "Enter the entropy-label context"; leaf override-tunnel-elc { type boolean; default "false"; description "Received entropy label capability advertisement to override"; } } // container entropy-label container multi-topology { presence "Enter the 'multi-topology' context"; description "Enable the multi-topology context"; leaf ipv6-unicast { type boolean; default "false"; description "Support multi-topology TLVs"; } leaf ipv4-multicast { type boolean; default "false"; description "Support IPv4 topology (MT3)"; } leaf ipv6-multicast { type boolean; default "false"; description "Support IPv6 topology (MT4)"; } } // container multi-topology container multicast-import { description "Enter the multicast-import context"; leaf ipv4 { type boolean; default "false"; description "Submit IPv4 routes into the multicast RPF of the RTM"; } leaf ipv6 { type boolean; default "false"; description "Submit IPv6 routes into the multicast RPF of the RTM"; } } // container multicast-import container overload { presence "Enter the 'overload' context"; description "Enable the overload context"; leaf max-metric { type boolean; default "false"; description "Advertise transit links with maximum metric instead of setting overload bit"; } } // container overload container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "60..1800"; } units "seconds"; description "Time during which the router operates in overload state after reboot"; } leaf max-metric { type boolean; default "false"; description "Advertise transit links with maximum metric instead of setting overload bit"; } } // container overload-on-boot container prefix-limit { presence "Enter the 'prefix-limit' context"; description "Enable the prefix-limit context"; leaf limit { type uint32 { range "1..max"; } mandatory true; description "Maximum number of prefixes for IS-IS instance"; } leaf log-only { type boolean; default "false"; description "Send warning message at specified threshold or when limit is reached, without going into overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Specifies the percentage of the value defined by prefix-limit, at which a warning log message and SNMP notification would be sent. This would only be a warning and additional prefixes will be learned up to 100% of prefix-limit. A value of 0 indicates that the threshold is disabled and no log message or SNMP notification will be sent."; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Time router remains in overload after prefix limit is exceeded before restarting"; } } // container prefix-limit container lsp-refresh { description "Enter the lsp-refresh context"; leaf interval { type uint32 { range "150..65535"; } units "seconds"; default "600"; description "Refresh timer interval"; } leaf half-lifetime { type boolean; default "true"; description "Set the refresh interval to always be half the LSP lifetime"; } } // container lsp-refresh container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; choice type { case prefix-list { leaf prefix-list { type leafref { path "../../../../../policy-options/prefix-list/name"; } description "List used to select routes processed at higher priority through OSPF route calculation process"; } } case tag { leaf tag { type uint32 { range "1..max"; } description "Value that matches IS-IS routes processed at higher priority through route calculation process"; } } } } // container high } // container rib-priority container timers { description "Enter the timers context"; container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between first and second SPF calculations"; } } // container spf-wait container lsp-wait { description "Enter the lsp-wait context"; leaf lsp-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of LSP generation"; } leaf lsp-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "10"; description "Initial LSP generation delay"; } leaf lsp-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Delay between first and second LSP generation"; } } // container lsp-wait } // container timers container unicast-import { description "Enter the unicast-import context"; leaf ipv4 { type boolean; default "true"; description "Submit IPv4 routes into unicast RTM"; } leaf ipv6 { type boolean; default "true"; description "Submit IPv6 routes into unicast RTM"; } } // container unicast-import container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; leaf augment-route-table { type boolean; default "false"; description "Attach Remote LFA information to RTM entries"; } container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude container remote-lfa { presence "Enter the 'remote-lfa' context"; description "Enable the remote-lfa context"; leaf max-pq-cost { type uint32; default "4261412864"; description "Maximum cost of destination node during reverse SPF calculation"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; leaf max-pq-nodes { type uint32 { range "1..32"; } default "16"; description "Specifies the maximum number of PQ nodes."; } } // container node-protect } // container remote-lfa container ti-lfa { presence "Enter the 'ti-lfa' context"; description "Enable the ti-lfa context"; leaf max-sr-frr-labels { type uint32 { range "0..3"; } default "2"; description "Maximum number of labels that TI-LFA backup next hop can use"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; } // container node-protect } // container ti-lfa } // container loopfree-alternate container database-export { presence "Enter the 'database-export' context"; description "Enable the database-export context"; leaf igp-identifier { type uint64; description "Unique identifier of the IGP instance in the BGP-LS NLRI"; } container bgp-ls-identifier { presence "Enter the 'bgp-ls-identifier' context"; description "Enable the bgp-ls-identifier context"; leaf value { type uint32; default "0"; description "BGP-LS identifier that is sent in the BGP-LS NLRI"; } } // container bgp-ls-identifier } // container database-export container flexible-algorithms { description "Enter the flexible-algorithms context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of flexible algorithms support"; } list flex-algo { key "flex-algo-id"; max-elements 5; description "Enter the flex-algo list instance"; leaf flex-algo-id { type uint32 { range "128..255"; } description "Flexible Algorithm ID"; } leaf participate { type boolean; default "false"; description "Allow participation in the Flexible Algorithm"; } leaf advertise { type leafref { path "../../../../../routing-options/flexible-algorithm-definitions/flex-algo/flex-algo-name"; } description "Flexible Algorithm Definition to advertise"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; } // container loopfree-alternate } // list flex-algo } // container flexible-algorithms container traffic-engineering-options { description "Enter the traffic-engineering-options context"; leaf ipv6 { type boolean; default "false"; description "Advertise IS-IS IPv6 Traffic Engineering"; } container application-link-attributes { presence "Enter the 'application-link-attributes' context"; description "Enable the application-link-attributes context"; leaf legacy { type boolean; default "false"; description "Advertise legacy TE attributes"; } } // container application-link-attributes } // container traffic-engineering-options container segment-routing { description "Enter the segment-routing context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing"; } leaf adj-sid-hold { type types-igp:adj-sid-hold-type; units "seconds"; default "15"; description "Adjacency SID hold time"; } leaf class-forwarding { type boolean; default "false"; description "Allow CBF with ECMP over RSVP-TE LSPs as IGP shortcuts"; } leaf entropy-label { type boolean; description "Entropy label capability"; } leaf export-tunnel-table { type enumeration { enum "ldp" { value 1; } } description "Tunnel table export policies to export tunneled routes"; } leaf srlb { type leafref { path "../../../mpls-labels/reserved-label-block/label-block-name"; } description "Segment routing local block"; } leaf tunnel-mtu { type types-router:ip-mtu-ext; description "Tunnel MTU size"; } leaf tunnel-table-pref { type uint32 { range "1..255"; } default "11"; description "Preference of SR tunnels created by the IGP instance"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container micro-loop-avoidance { presence "Enter the 'micro-loop-avoidance' context"; description "Enable the micro-loop-avoidance context"; leaf fib-delay { type uint32 { range "1..300"; } units "deciseconds"; default "15"; description "FIB delay before programming new primary next-hops"; } } // container micro-loop-avoidance container prefix-sid-range { presence "Enter the 'prefix-sid-range' context"; description "Enable the prefix-sid-range context"; choice type { case global { leaf global { type empty; description "Allows BGP global SR range"; } } case local { leaf start-label { type uint32 { range "0..524287"; } sros-ext:auto-restart-to-modify; default "0"; description "Lower bound value for the local label offset"; } leaf max-index { type uint32 { range "0..524287"; } sros-ext:auto-restart-to-modify; default "1"; description "Upper bound value for the local SID index"; } } } } // container prefix-sid-range container maximum-sid-depth { description "Enter the maximum-sid-depth context"; leaf override-bmi { type int32 { range "0..12"; } description "Value to override the announced node MSD-BMI value"; } leaf override-erld { type int32 { range "0..15"; } description "Value to override the announced node MSD-ERLD value"; } } // container maximum-sid-depth list adjacency-set { key "id"; description "Enter the adjacency-set list instance"; leaf id { type uint32 { range "1..max"; } description "Identifier for specified adjacency set"; } leaf family { type types-sros:adjacency-set-family-type; default "ipv4"; description "Address family for the adjacency set"; } leaf parallel { type boolean; default "true"; description "Require all members of the adjacency set to terminate on the same neighboring node"; } leaf advertise { type boolean; default "true"; description "Advertise the adjacency set when all links terminate on the same neighboring node"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container sid { presence "Enter the 'sid' context"; description "Enable the sid context"; choice type { case label { leaf label { type int64 { range "1..1048575"; } description "Adjacency SID"; } } } } // container sid } // list adjacency-set container egress-statistics { description "Enter the egress-statistics context"; leaf adj-set { type boolean; default "false"; description "Enable statistics on Adjacency Sets"; } leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container egress-statistics container ingress-statistics { description "Enter the ingress-statistics context"; leaf adj-set { type boolean; default "false"; description "Enable statistics on Adjacency Sets"; } leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container ingress-statistics container mapping-server { description "Enter the mapping-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ISIS segment routing mapping server"; } list node-sid-map { key "sid-index"; description "Enter the node-sid-map list instance"; leaf sid-index { type uint32; description "SID index of a mapping server Prefix-SID"; } leaf ip-prefix { type types-sros:ipv4-unicast-prefix; mandatory true; description "Prefix of a mapping server Prefix-SID"; } leaf range { type uint32 { range "0..65535"; } default "1"; description "Range of addresses and their associated prefix SIDs"; } leaf level-capability { type types-isis:level; description "Flags to assign in SID Label Binding TLV advertised by Segment Routing Mapping Server"; } leaf clear-n-flag { type boolean; default "false"; description "Clear the node-sid flag (N-flag)"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container set-flags { description "Enter the set-flags context"; leaf bit-s { type boolean; default "false"; description "SID Label Binding TLV to be flooded across the entire routing domain"; } } // container set-flags } // list node-sid-map } // container mapping-server } // container segment-routing container igp-shortcut { description "Enter the igp-shortcut context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RSVP-TE or SR-TE shortcut"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container tunnel-next-hop { sros-ext:auto-restart-to-modify; description "Enter the tunnel-next-hop context"; list family { key "family-type"; sros-ext:auto-restart-to-modify; description "Enter the family list instance"; leaf family-type { type types-isis:tunnel-next-hop-family-type; description "Address family type for tunnel next-hop"; } leaf resolution { type types-sros:resolution-type; sros-ext:auto-restart-to-modify; description "Resolution state for IGP shortcut tunnels"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container resolution-filter { sros-ext:auto-restart-to-modify; description "Enter the resolution-filter context"; leaf rsvp { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-te { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } } // container resolution-filter } // list family } // container tunnel-next-hop } // container igp-shortcut list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Router interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of interface"; } leaf hello-authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication key or hash string for Hello PDUs"; } leaf hello-authentication-keychain { type leafref { path "../../../../system/security/keychains/keychain/keychain-name"; } description "Authentication keychain to use for the session."; } leaf hello-authentication-type { type types-isis:auth-type; description "Hello authentication type"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf passive { type boolean; default "false"; description "Passive interface"; } leaf csnp-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time interval between successive CSN PDUs sent from interface"; } leaf default-instance { type boolean; default "false"; description "Allow non-MI capable router to establish an adjacency and operate with a router in non-zero instance"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf interface-type { type types-isis:interface-type; description "Interface type to broadcast, point-to-point, or to be default"; } leaf ipv4-multicast { type boolean; default "true"; description "Clear IPv4 multicast routing for interface"; } leaf ipv6-multicast { type boolean; default "true"; description "Clear IPv4 multicast routing for interface"; } leaf ipv6-unicast { type boolean; default "true"; description "Clear IPv4 multicast routing for interface"; } leaf level-capability { type types-isis:level; description "IS-IS levels for this interface"; } leaf load-balancing-weight { type uint32; description "Load balancing weight"; } leaf lsp-pacing-interval { type uint32 { range "0..65535"; } units "milliseconds"; default "100"; description "Interval for sending LSPs from interface"; } leaf retransmit-interval { type uint32 { range "1..65535"; } units "seconds"; default "5"; description "Minimum time between LSP PDU retransmissions on point-to-point interface"; } leaf sid-protection { type boolean; default "true"; description "Allow adjacency SID protection by LFA and remote LFA"; } leaf tag { type uint32 { range "1..max"; } description "Route tag for IP address of interface"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4-adjacency-sid { presence "Enter the 'ipv4-adjacency-sid' context"; description "Enable the ipv4-adjacency-sid context"; choice type { case label { leaf label { type int64 { range "1..1048575"; } description "Adjacency SID"; } } } } // container ipv4-adjacency-sid container ipv6-adjacency-sid { presence "Enter the 'ipv6-adjacency-sid' context"; description "Enable the ipv6-adjacency-sid context"; choice type { case label { leaf label { type int64 { range "1..1048575"; } description "Adjacency SID"; } } } } // container ipv6-adjacency-sid container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable Loopfree Alternative at interface level."; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type leafref { path "../../../../../../routing-options/route-next-hop-policy/template/template-name"; } mandatory true; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate container mesh-group { presence "Enter the 'mesh-group' context"; description "Enable the mesh-group context"; choice type { case value { leaf value { type int32 { range "1..2000000000"; } description "Mesh group for the interface"; } } case blocked { leaf blocked { type empty; description "Prevent the interface from flooding LSPs"; } } } } // container mesh-group container bfd-liveness { description "Enter the bfd-liveness context"; container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf include-bfd-tlv { type boolean; default "false"; description "BFD-enabled TLV for IPv4 to include on this IS-IS interface"; } } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf include-bfd-tlv { type boolean; default "false"; description "BFD-enabled TLV for IPv4 to include on this IS-IS interface"; } } // container ipv6 } // container bfd-liveness container ipv4-node-sid { presence "Enter the 'ipv4-node-sid' context"; description "Enable the ipv4-node-sid context"; leaf clear-n-flag { type boolean; default "false"; description "Clear the node-sid flag (N-flag)"; } choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container ipv4-node-sid container ipv6-node-sid { presence "Enter the 'ipv6-node-sid' context"; description "Enable the ipv6-node-sid context"; leaf clear-n-flag { type boolean; default "false"; description "Clear the node-sid flag (N-flag)"; } choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container ipv6-node-sid list adjacency-set { key "id"; description "Add a list entry for adjacency-set"; leaf id { type leafref { path "../../../segment-routing/adjacency-set/id"; } description "Adjacency set identity"; } } // list adjacency-set list flex-algo { key "flex-algo-id"; max-elements 5; description "Enter the flex-algo list instance"; leaf flex-algo-id { type uint32 { range "128..255"; } description "Flexible Algorithm ID"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4-node-sid { presence "Enter the 'ipv4-node-sid' context"; description "Enable the ipv4-node-sid context"; choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container ipv4-node-sid container ipv6-node-sid { presence "Enter the 'ipv6-node-sid' context"; description "Enable the ipv6-node-sid context"; choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container ipv6-node-sid } // list flex-algo list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type enumeration { enum "1" { value 1; } enum "2" { value 2; } } description "IS-IS protocol level to which these attributes apply"; } leaf hello-authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication or hash key string."; } leaf hello-authentication-keychain { type leafref { path "../../../../../system/security/keychains/keychain/keychain-name"; } description "Authentication keychain to use for the session."; } leaf hello-authentication-type { type types-isis:auth-type; description "Hello-authentication-type to be enabled."; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf passive { type boolean; default "false"; description "Passive interface"; } leaf hello-interval { type uint32 { range "1..20000"; } units "seconds"; default "9"; description "Interval between Hello messages sent on this level"; } leaf hello-multiplier { type int32 { range "2..100"; } default "3"; description "Hello messages missed from neighbor before router declares adjacency down"; } leaf ipv4-multicast-metric { type types-isis:metric; description "IS-IS interface metric applied for IPv4 multicast"; } leaf ipv6-multicast-metric { type types-isis:metric; description "IS-IS interface metric applied for IPv6 multicast"; } leaf ipv6-unicast-metric { type types-isis:metric; description "IS-IS interface metric applied for IPv6 unicast"; } leaf metric { type types-isis:metric; description "IS-IS interface metric applied for IPv4 unicast"; } leaf priority { type uint32 { range "0..127"; } default "64"; description "Router to become the designated router on a multi-access network"; } leaf sd-offset { type types-isis:metric; description "Value of the signal degrade offset"; } leaf sf-offset { type types-isis:metric; description "Value of the signal fail offset"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level } // list interface list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type enumeration { enum "1" { value 1; } enum "2" { value 2; } } description "IS-IS protocol level to which these attributes apply"; } leaf authentication-keychain { type leafref { path "../../../../system/security/keychains/keychain/keychain-name"; } description "The keychain used to sign and/or authenticate."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication or hash key string."; } leaf authentication-type { type types-isis:auth-type; description "Configure the authentication type to be used."; } leaf csnp-authentication { type boolean; default "true"; description "Enable/disable authentication on received ISIS protocol packets of type CSNP."; } leaf psnp-authentication { type boolean; default "true"; description "Enable/disable authentication on received ISIS protocol packets of type PSNP."; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf database-export-exclude { type boolean; default "false"; description "Exclude IGP link-state information of a specific IS-IS level from being exported into extended TE-DB"; } leaf default-ipv4-multicast-metric { type types-isis:metric; default "10"; description "Default metric for IPv4 unicast"; } leaf default-ipv6-multicast-metric { type types-isis:metric; default "10"; description "Default metric for IPv6 unicast"; } leaf default-ipv6-unicast-metric { type types-isis:metric; default "10"; description "Default metric for IPv6 unicast"; } leaf default-metric { type types-isis:metric; default "10"; description "Default metric"; } leaf external-preference { type uint32 { range "1..255"; } description "External route preference for IS-IS level"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude interface participating in specific IS-IS level in SPF LFA computation"; } leaf lsp-mtu-size { type types-isis:lsp-buffer-ext-size; units "bytes"; sros-ext:manual-restart-to-modify; default "1492"; description "LSP MTU size"; } leaf preference { type uint32 { range "1..255"; } description "External route preference at level"; } leaf wide-metrics-only { type boolean; default "false"; description "Use wide metrics advertisements in the LSPs"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bier { description "Enter the bier context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BIER"; } leaf template { type leafref { path "../../../../bier/template/template-name"; } description "Specify BIER template name."; } } // container bier } // list level list link-group { key "link-group-name"; description "Enter the link-group list instance"; leaf link-group-name { type types-sros:named-item; description "Link group name for the IS-IS protocol"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type enumeration { enum "1" { value 1; } enum "2" { value 2; } } description "IS-IS protocol level to which these attributes apply"; } leaf ipv4-multicast-metric-offset { type types-isis:metric; description "Offset value for the IPv4 multicast address family"; } leaf ipv4-unicast-metric-offset { type types-isis:metric; description "Offset value for the IPv4 unicast address family"; } leaf ipv6-multicast-metric-offset { type types-isis:metric; description "Offset value for the IPv6 multicast address family"; } leaf ipv6-unicast-metric-offset { type types-isis:metric; description "Offset value for the IPv6 unicast address family"; } leaf oper-members { type uint32 { range "1..8"; } description "Minimum number of operational links"; } leaf revert-members { type uint32 { range "1..8"; } description "Minimum number of operational links to return link group to normal state and remove offsets"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list member { key "interface-name"; max-elements 8; description "Add a list entry for member"; leaf interface-name { type leafref { path "../../../../interface/interface-name"; } description "Router interface name for this link group"; } } // list member } // list level } // list link-group list summary-address { key "ip-prefix"; description "Enter the summary-address list instance"; leaf ip-prefix { type types-sros:ip-prefix; description "Summary IP prefix"; } leaf level-capability { type types-isis:level; description "IS-IS Level from which the prefix should be summarized"; } leaf route-tag { type uint32 { range "1..max"; } description "Route tag assigned to the summary address"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list summary-address } // list isis container l2tp { presence "Enter the 'l2tp' context"; description "Enable the l2tp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of L2TP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:base-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:base-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:base-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:base-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:base-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:base-max-retries; description "Maximum retries for unestablished tunnels"; } leaf rtm-debounce-time { type types-l2tp:rtm-debounce-time; description "Debounce timer that declares L2TP action for route table management events"; } leaf radius-accounting-policy { type leafref { path "../../../aaa/radius/l2tp-accounting-policy/name"; } description "RADIUS accounting policy"; } leaf peer-address-change-policy { type types-l2tp:peer-address-change-policy-option; description "Reaction when a L2TP response is received from a different address"; } leaf local-name { type types-l2tp:host-name; description "Local host name"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TP password"; } leaf challenge { type boolean; default "false"; description "Use challenge-response authentication"; } leaf avp-hiding { type types-l2tp:base-avp-hiding; description "Attribute of the Value Pair (AVP) hiding algorithm"; } leaf session-limit { type types-l2tp:base-session-limit; description "L2TP session limit of this router"; } leaf group-session-limit { type types-l2tp:base-session-limit; description "L2TP session limit for each group of this router"; } leaf tunnel-session-limit { type types-l2tp:base-tunnel-session-limit; description "L2TP session limit for each tunnel of this router"; } leaf session-assign-method { type types-l2tp:base-session-assign-method; description "Session assignment method"; } leaf next-attempt { type enumeration { enum "same-preference-level" { value 0; } enum "next-preference-level" { value 1; } } default "next-preference-level"; description "Tunnel that is selected when previous session setup failed"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container exclude-avps { description "Enter the exclude-avps context"; leaf calling-number { type boolean; default "false"; description "Calling Number AVP to exclude"; } leaf initial-rx-lcp-conf-req { type boolean; default "false"; description "Exclude the Initial Received LCP CONFREQ AVP"; } } // container exclude-avps container ignore-avps { description "Enter the ignore-avps context"; leaf sequencing-required { type boolean; default "false"; description "Ignore Sequencing Required AVP"; } } // container ignore-avps container replace-result-code { description "Enter the replace-result-code context"; leaf cdn-invalid-dst { type boolean; default "false"; description "Replace result code with general error code"; } leaf cdn-permanent-no-facilities { type boolean; default "false"; description "Replace result code with general error"; } leaf cdn-temporary-no-facilities { type boolean; default "false"; description "Replace result code with general error"; } } // container replace-result-code container lac { description "Enter the lac context"; leaf df-bit { type boolean; default "true"; description "Send all L2TP packets with DF bit set to 1"; } leaf calling-number-format { type types-sros:ascii-specification { length "1..255"; pattern "([^%]+|%[Scrsl%])+"; } default "%S %s"; description "Calling Number AVP for L2TP control messages"; } container cisco-nas-port { description "Enter the cisco-nas-port context"; leaf ethernet { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[smpoi])+"; } description "L2TP Cisco NAS port AVP with binary patterns for Ethernet"; } } // container cisco-nas-port } // container lac container tunnel-selection-blacklist { description "Enter the tunnel-selection-blacklist context"; leaf max-time { type int32 { range "1..60"; } units "minutes"; default "5"; description "Max time that a tunnel or peer can remain in denylist"; } leaf max-list-length { type union { type int32 { range "1..65535"; } type enumeration { enum "infinite" { value -1; } } } default "infinite"; description "Tunnels or peers in the denylist"; } leaf timeout-action { type enumeration { enum "remove-from-blacklist" { value 0; } enum "try-one-session" { value 1; } } default "remove-from-blacklist"; description "Action when a tunnel or peer exceeds time in denylist"; } container add-tunnel-on { description "Enter the add-tunnel-on context"; leaf address-change-timeout { type boolean; default "false"; description "Enable a timed-out tunnel to be forced to the denylist"; } leaf cdn-err-code { type boolean; default "false"; description "Add to deny if CDN is received with code: General error"; } leaf cdn-invalid-dst { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 6"; } leaf cdn-permanent-no-facilities { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 5"; } leaf cdn-temporary-no-facilities { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 4"; } leaf stop-ccn-err-code { type boolean; default "false"; description "Add to denylist if received with general error code"; } leaf stop-ccn-other { type boolean; default "false"; description "Add to denylist if StopCCN received with general error"; } leaf tx-cdn-not-established-in-time { type boolean; default "false"; description "Add to denylist if CDN transmitted with result code"; } } // container add-tunnel-on } // container tunnel-selection-blacklist container failover { description "Enter the failover context"; leaf recovery-method { type types-l2tp:base-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:base-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } leaf recovery-max-session-lifetime { type uint32 { range "2..4294967295"; } units "centiseconds"; default "2"; description "Subset of sessions that this system attempts to synchronize in the Session State Synchronization phase"; } list track-srrp { key "id"; description "Enter the track-srrp list instance"; leaf id { type leafref { path "../../../../../redundancy/multi-chassis/peer/sync/track-srrp/id"; } description "SRRP instance ID for multi-chassis redundancy failover"; } leaf peer { type leafref { path "../../../../../redundancy/multi-chassis/peer/ip-address"; } mandatory true; description "Multi-chassis peer address"; } leaf sync-tag { type types-sros:named-item; mandatory true; description "Synchronization tag on the multi-chassis peer"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list track-srrp } // container failover container l2tpv3 { description "Enter the l2tpv3 context"; leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TPv3 password"; } leaf cookie-length { type types-l2tp:base-v3-cookie-length; description "Cookie field length"; } leaf digest-type { type types-l2tp:base-v3-digest-type; description "Hashing algorithm that calculates the message digest"; } leaf nonce-length { type types-l2tp:base-v3-nonce-length; description "Length of the local L2TPv3 nonce (random number)"; } leaf public-tcp-mss-adjust { type types-l2tp:base-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:base-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } container transport-type { description "Enter the transport-type context"; leaf ip { type boolean; default "false"; description "Use IP as the transport type for the L2TPv3 tunnel"; } } // container transport-type } // container l2tpv3 container ethernet-tunnel { description "Enter the ethernet-tunnel context"; leaf reconnect-timeout { type types-l2tp:base-v3-reconnect-timeout; description "Timeout for a session setup retry"; } } // container ethernet-tunnel list group { key "tunnel-group-name"; description "Enter the group list instance"; leaf tunnel-group-name { type types-sros:named-item-64 { length "1..63"; } description "Tunnel group name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2TP tunnel group"; } leaf description { type types-sros:description; description "Text description"; } leaf protocol { type types-l2tp:protocol-version; sros-ext:immutable; description "Protocol version"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:child-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:child-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:child-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:child-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:child-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:child-max-retries; description "Maximum retries for unestablished tunnels"; } leaf radius-accounting-policy { type leafref { path "../../../../aaa/radius/l2tp-accounting-policy/name"; } description "RADIUS accounting policy"; } leaf local-name { type types-l2tp:host-name; description "The local host name."; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "The password."; } leaf challenge { type types-sros:bool-with-inherit; description "Enable/disable the use of challenge-response authentication."; } leaf avp-hiding { type types-l2tp:child-avp-hiding; description "The AVP hiding algorithm"; } leaf session-limit { type types-l2tp:child-session-limit; description "Session limit"; } leaf session-assign-method { type types-l2tp:child-session-assign-method; description "Session assignment method"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container failover { when "../protocol = 'v2'"; description "Enter the failover context"; leaf recovery-method { type types-l2tp:child-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:child-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } } // container failover container lac { when "../protocol = 'v2'"; description "Enter the lac context"; leaf df-bit { type types-sros:bool-with-inherit; description "DF (do not fragment) bit in data traffic transmitted as LAC"; } } // container lac container l2tpv3 { when "not(../protocol = 'v2')"; description "Enter the l2tpv3 context"; leaf rem-router-id { type types-sros:ipv4-address; default "0.0.0.0"; description "Filter on remote router ID"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TPv3 password"; } leaf track-password-change { type boolean; default "false"; description "Enable tracking of password changes"; } leaf cookie-length { type types-l2tp:child-v3-cookie-length; description "Cookie field length"; } leaf digest-type { type types-l2tp:child-v3-digest-type; description "Hashing algorithm that calculates the message digest"; } leaf nonce-length { type types-l2tp:child-v3-nonce-length; description "Length for the local L2TPv3 nonce (random number)"; } leaf public-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP Maximum Segment Size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } container pw-cap-list { description "Enter the pw-cap-list context"; leaf ethernet { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Advertise Ethernet pseudowire type"; } leaf ethernet-vlan { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Advertise Ethernet VLAN pseudowire type"; } } // container pw-cap-list } // container l2tpv3 container ethernet-tunnel { when "not(../protocol = 'v2')"; description "Enter the ethernet-tunnel context"; leaf reconnect-timeout { type types-l2tp:child-v3-reconnect-timeout; description "Timeout for a session setup retry at group level"; } } // container ethernet-tunnel container lns { when "../protocol = 'v2'"; description "Enter the lns context"; leaf load-balance-method { type types-l2tp:base-load-balance-method; default "per-session"; description "New sessions for L2TP ISA MDA"; } leaf lns-group { type leafref { path "../../../../../isa/lns-group/id"; } description "ISA LNS group"; } container ppp { description "Enter the ppp context"; leaf authentication-policy { type types-sros:named-item; description "Authentication policy when a DHCP message is received"; } leaf user-db { type types-sros:named-item; description "Local user database for PPP PAP and CHAP authentication"; } leaf proxy-lcp { type boolean; default "false"; description "Proxy LCP AVPs that are received from LAC"; } leaf lcp-ignore-magic-numbers { type boolean; default "false"; description "Check Magic-Number field in LCP Echo-Request and LCP Echo-Reply messages"; } leaf lcp-force-ack-accm { type boolean; default "false"; description "Force acknowledgement of the LCP Asynchronous Control Character Map (ACCM) option"; } leaf reject-disabled-ncp { type boolean; default "false"; description "Enable/disable rejection of disabled Network Control Protocols (NCP)"; } leaf mtu { type types-l2tp:base-ppp-mtu; default "1500"; description "Maximum PPP MTU size"; } leaf proxy-authentication { type boolean; default "false"; description "Use authentication AVPs that are received from LAC"; } leaf authentication { type types-l2tp:base-ppp-auth-protocol; default "pref-chap"; description "PPP authentication protocol to negotiate"; } leaf ipcp-subnet-negotiation { type boolean; default "false"; description "Allow IPCP subnet negotiation for PPPoE hosts"; } container default-group-interface { description "Enter the default-group-interface context"; leaf interface { type types-sros:named-item; description "Group interface"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } } // container default-group-interface container keepalive { description "Enter the keepalive context"; leaf interval { type types-l2tp:base-lcp-keepalive-interval; default "30"; description "PPP keepalive interval"; } leaf multiplier { type types-l2tp:base-lcp-keepalive-multiplier; default "3"; description "PPP keepalive multiplier"; } } // container keepalive container chap-challenge-length { description "Enter the chap-challenge-length context"; leaf start { type types-l2tp:base-chap-challenge-length; default "32"; description "Minimum PPP CHAP challenge length"; } leaf end { type types-l2tp:base-chap-challenge-length; default "64"; description "Maximum PPP CHAP challenge length"; } } // container chap-challenge-length } // container ppp container mlppp { description "Enter the mlppp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MLPPP in this L2TP tunnel group"; } leaf max-links { type types-l2tp:base-mlppp-max-links; default "1"; description "Maximum MLPPP links"; } leaf interleave { type boolean; default "false"; description "Enable link fragmentation and interleaving"; } leaf max-fragment-delay { type types-l2tp:base-mlppp-max-frag-delay; default "no-fragmentation"; description "Maximum fragment delay caused by transmission on a link"; } leaf reassembly-timeout { type types-l2tp:base-mlppp-reassembly-timeout; default "1000"; description "Reassembly timeout"; } leaf short-sequence-numbers { type boolean; default "false"; description "Request a peer to send short sequence numbers"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container endpoint { description "Enter the endpoint context"; choice endpoint { case ip { leaf ip { type types-ppp:mlppp-ip-endpoint; description "Endpoint ID as an IP address"; } } case mac { leaf mac { type types-ppp:mlppp-mac-endpoint; description "Endpoint ID as a MAC address"; } } } } // container endpoint } // container mlppp } // container lns list tunnel { key "tunnel-name"; max-elements 31; description "Enter the tunnel list instance"; leaf tunnel-name { type types-sros:named-item { length "1..32"; } description "Tunnel name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2TP tunnel"; } leaf description { type types-sros:description; description "Text description"; } leaf preference { type uint32 { range "0..16777215"; } default "50"; description "Tunnel preference number with its group"; } leaf auto-establish { type boolean; default "false"; description "Allow the tunnel to be automatically set up by the system"; } leaf peer { type types-sros:ipv4-unicast-address; description "Peer address"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:child-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:child-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:child-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:child-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:child-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:child-max-retries; description "Maximum retries for unestablished tunnels"; } leaf radius-accounting-policy { type leafref { path "../../../../../aaa/radius/l2tp-accounting-policy/name"; } description "RADIUS accounting policy"; } leaf remote-name { type types-l2tp:host-name; description "Remote host name for tunnel"; } leaf local-name { type types-l2tp:host-name; description "The local host name."; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "The password."; } leaf challenge { type types-sros:bool-with-inherit; description "Enable/disable the use of challenge-response authentication."; } leaf avp-hiding { type types-l2tp:child-avp-hiding; description "The AVP hiding algorithm"; } leaf session-limit { type types-l2tp:child-tunnel-session-limit; description "L2TP session limit for each tunnel of this router"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container failover { when "../../protocol = 'v2'"; description "Enter the failover context"; leaf recovery-method { type types-l2tp:child-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:child-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } } // container failover container lac { when "../../protocol = 'v2'"; description "Enter the lac context"; leaf df-bit { type types-sros:bool-with-inherit; description "DF (do not fragment) bit in data traffic transmitted as LAC"; } } // container lac container l2tpv3 { when "not(../../protocol = 'v2')"; description "Enter the l2tpv3 context"; leaf public-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } } // container l2tpv3 container lns { when "../../protocol = 'v2'"; description "Enter the lns context"; leaf load-balance-method { type types-l2tp:child-load-balance-method; description "New sessions for L2TP ISA MDA"; } leaf lns-group { type leafref { path "../../../../../../isa/lns-group/id"; } description "ISA LNS group"; } container ppp { description "Enter the ppp context"; leaf authentication-policy { type types-sros:named-item; description "Authentication policy when a DHCP message is received"; } leaf user-db { type types-sros:named-item; description "Local user database for PPP PAP and CHAP authentication"; } leaf proxy-lcp { type types-sros:bool-with-inherit; description "Use the Proxy LCP AVPs that are received from the LAC"; } leaf lcp-ignore-magic-numbers { type types-sros:bool-with-inherit; description "Magic-Number field in LCP Echo-Request and LCP Echo-Reply messages that are checked"; } leaf lcp-force-ack-accm { type types-sros:bool-with-inherit; description "Forced acknowledgement of the LCP Asynchronous Control Character Map (ACCM) option"; } leaf reject-disabled-ncp { type types-sros:bool-with-inherit; description "Enable/disable rejection of disabled Network Control Protocols (NCP)"; } leaf mtu { type types-l2tp:child-ppp-mtu; description "Maximum PPP MTU size"; } leaf proxy-authentication { type types-sros:bool-with-inherit; description "Authentication AVPs that are received from LAC"; } leaf authentication { type types-l2tp:child-ppp-auth-protocol; description "PPP authentication protocol to negotiate"; } leaf ipcp-subnet-negotiation { type types-sros:bool-with-inherit; description "Use of IPCP subnet negotiation for PPPoE hosts"; } container default-group-interface { description "Enter the default-group-interface context"; leaf interface { type types-sros:named-item; description "Group interface"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } } // container default-group-interface container keepalive { description "Enter the keepalive context"; leaf interval { type types-l2tp:child-lcp-keepalive-interval; description "PPP keepalive interval"; } leaf multiplier { type types-l2tp:child-lcp-keepalive-multiplier; description "PPP keepalive multiplier"; } } // container keepalive container chap-challenge-length { description "Enter the chap-challenge-length context"; leaf start { type types-l2tp:child-chap-challenge-length; description "Minimum PPP CHAP challenge length"; } leaf end { type types-l2tp:child-chap-challenge-length; description "Minimum PPP CHAP challenge length"; } } // container chap-challenge-length } // container ppp container mlppp { description "Enter the mlppp context"; leaf admin-state { type types-sros:admin-state-with-inherit; description "Administrative state of MLPPP in the L2TP tunnel"; } leaf max-links { type types-l2tp:child-mlppp-max-links; description "Maximum MLPPP links"; } leaf interleave { type types-sros:bool-with-inherit; description "Use of Link fragmentation and interleaving"; } leaf max-fragment-delay { type types-l2tp:child-mlppp-max-frag-delay; description "Maximum fragment delay caused by transmission on a link"; } leaf reassembly-timeout { type types-l2tp:child-mlppp-reassembly-timeout; description "Reassembly timeout"; } leaf short-sequence-numbers { type types-sros:bool-with-inherit; description "Request a peer to send short sequence numbers"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container endpoint { description "Enter the endpoint context"; choice endpoint { case ip { leaf ip { type types-ppp:mlppp-ip-endpoint; description "Endpoint ID as an IP address"; } } case mac { leaf mac { type types-ppp:mlppp-mac-endpoint; description "Endpoint ID as a MAC address"; } } } } // container endpoint } // container mlppp } // container lns } // list tunnel } // list group } // container l2tp container ldp { presence "Enter the 'ldp' context"; description "Enable the ldp context"; leaf class-forwarding { type enumeration { enum "lsr" { value 1; description "class-forwarding for LSR/SWAP only"; } enum "ler" { value 2; description "class-forwarding for LER/PUSH only"; } enum "lsr-and-ler" { value 3; description "class-forwarding for LER/PUSH and LSR/SWAP"; } } description "Allow class-based forwarding for LDP over RSVP"; } leaf entropy-label-capability { type boolean; default "false"; description "Allow receiving and processing of the entropy label and ELI on incoming packets of LDP LSPs"; } leaf implicit-null-label { type boolean; default "false"; description "Signal the implicit null label value for all LDP FECs for which the node is the egress LER"; } leaf consider-system-ip-in-gep { type boolean; default "false"; description "Use Global Export Policies to determine whether to create a FEC for the system IP addresses"; } leaf label-withdrawal-delay { type uint32 { range "3..120"; } units "seconds"; description "Time interval during which LDP delays for the withdrawal of FEC-label binding"; } leaf legacy-ipv4-lsr-interop { type boolean; default "false"; description "Allow interoperability with legacy IPv4 LSR implementations"; } leaf mcast-upstream-frr { type boolean; default "false"; description "Use fast upstream switchover for mLDP FECs"; } leaf mp-mbb-time { type uint32 { range "0..10"; } units "seconds"; default "3"; description "MP MBB time"; } leaf shortcut-local-ttl-propagate { type boolean; default "true"; description "Propagate TTL over LSP shortcut for local packets"; } leaf shortcut-transit-ttl-propagate { type boolean; default "true"; description "Enable/disable TTL propagation over LSP shortcut for transit packets."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the LDP instance"; } leaf tunnel-down-damp-time { type uint32 { range "0..20"; } units "seconds"; default "3"; description "Time interval for an LDP to damp a tunnel down event before posting to the Route Table Manager (RTM)"; } leaf prefer-tunnel-in-tunnel { type boolean; default "true"; description "Preference tunnel-in-tunnel over a simple LDP tunnel"; } leaf prefer-mcast-tunnel-in-tunnel { type boolean; default "true"; description "Use T-LDP session to the peer for FEC resolution"; } leaf mcast-upstream-asbr-frr { type boolean; default "false"; description "Enable ASBR MoFRR to allow local leaf to perform MoFRR for multiple ASBRs"; } leaf generate-basic-fec-only { type boolean; default "false"; description "Ability for mLDP to generate a basic FEC despite the actual root node being resolved using BGP"; } leaf resolve-root-using { type enumeration { enum "ucast-rtm" { value 1; } enum "mcast-rtm" { value 2; } } default "ucast-rtm"; description "Resolution route table for multicast FECs"; } leaf weighted-ecmp { type boolean; default "false"; description "Allow weighted load-balancing"; } leaf max-ecmp-routes { type uint32 { range "1..64"; } default "32"; description "Maximum ECMP value for LDP"; } leaf-list import-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Import policies to filter LDP label bindings received from LDP peers"; } leaf-list export-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "First export policies to filter LDP label bindings advertised to LDP peers"; } leaf-list export-tunnel-table { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Tunnel table export policies to export tunneled routes"; } leaf-list import-tunnel-table { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Tunnel table import policies to control the insertion of non-host prefixes resolved by LDP"; } leaf-list import-mcast-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Specifies import multicast policies used for controlling which multicast FECs are accepted from downtream peers for resolution. Up to 5 policies can be specified."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container aggregate-prefix-match { presence "Enter the 'aggregate-prefix-match' context"; description "Enable the aggregate-prefix-match context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the LDP aggregate prefix match"; } leaf-list prefix-exclude { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Import policies to filter LDP label bindings received from LDP peers"; } } // container aggregate-prefix-match container fast-reroute { presence "Enter the 'fast-reroute' context"; description "Enable the fast-reroute context"; leaf backup-sr-tunnel { type boolean; default "false"; description "Use SR tunnel as a remote LFA backup tunnel next-hop by an LDP FEC"; } } // container fast-reroute container graceful-restart { description "Enter the graceful-restart context"; leaf helper-mode { type boolean; default "false"; description "Enable graceful restart helper"; } leaf maximum-recovery-time { type uint32 { range "15..1800"; } units "seconds"; default "120"; description "Value for the local maximum recovery time"; } leaf neighbor-liveness-time { type uint32 { range "5..300"; } units "seconds"; default "120"; description "Value for the neighbor liveness timer"; } } // container graceful-restart container ldp-shortcut { description "Enter the ldp-shortcut context"; leaf ipv4 { type boolean; default "false"; description "Forward IPv4 packets by using LDP shortcuts"; } leaf ipv6 { type boolean; default "false"; description "Forward IPv6 packets by using LDP shortcuts"; } } // container ldp-shortcut container import-pmsi-routes { description "Enter the import-pmsi-routes context"; leaf mvpn { type boolean; default "false"; description "Enable/disable import of BGP MVPN inter-AS routes."; } leaf mvpn-no-export-community { type boolean; default "false"; description "Enable/disable import of BGP MVPN intra-AS routes."; } } // container import-pmsi-routes list fec-originate { key "fec-prefix"; description "Enter the fec-originate list instance"; leaf fec-prefix { type types-sros:ip-prefix; description "Static FEC IP prefix"; } leaf advertised-label { type types-sros:mpls-label; description "Label that is advertised to upstream peer"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice swap-or-pop { case swap { leaf next-hop { type types-sros:ip-address; description "IP address of the next hop"; } leaf interface { type types-sros:named-item-or-empty; description "Interface name for this static FEC prefix"; } leaf swap-label { type uint32 { range "6..1048575"; } description "Value mapped to egress label associated with next-hop entry that LSR uses to swap incoming label"; } } case pop { leaf pop { type boolean; description "Pop the label and transmit without the label"; } } } } // list fec-originate container egress-statistics { description "Enter the egress-statistics context"; list fec-prefix { key "ip-prefix"; description "Enter the fec-prefix list instance"; leaf ip-prefix { type types-sros:ip-prefix; description "IP prefix"; } leaf accounting-policy { type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Accounting policy ID"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the LDP egress statistics"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list fec-prefix } // container egress-statistics list lsp-bfd { key "prefix-list"; max-elements 16; description "Enter the lsp-bfd list instance"; leaf prefix-list { type leafref { path "../../../../policy-options/prefix-list/name"; } description "Name of a router policy options prefix list"; } leaf bfd-template { type leafref { path "../../../../bfd/bfd-template/name"; } description "BFD template to apply to BFD sessions associated with the prefix list"; } leaf failure-action { type enumeration { enum "down" { value 1; } } description "Reaction to BFD session failure for the prefix list"; } leaf lsp-ping-interval { type union { type uint32 { range "60..300"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "60"; description "LSP ping transmit interval for periodic verification"; } leaf priority { type uint32 { range "1..99"; } default "1"; description "Prefix list to control the search order"; } leaf source-address { type types-sros:ip-unicast-address; description "Source address in LSP ping packets and BFD control packets associated with prefix list"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD on LDP LSPs with FECs that match the prefix list"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list lsp-bfd container session-parameters { description "Enter the session-parameters context"; list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type types-sros:ip-address; description "IP address for server"; } leaf adv-adj-addr-only { type boolean; default "false"; description "Distribute only the local addresses used to establish the Hello adjacencies with a peer"; } leaf adv-local-lsr-id { type boolean; default "false"; description "Advertise local LSR ID over a specified LDP session"; } leaf dod-label-distribution { type boolean; default "false"; description "Use LDP Downstream-on-Demand (DoD) label distribution procedures"; } leaf fec129-cisco-interop { type boolean; default "false"; description "Allow translation between non-compliant FEC 129 formats of Cisco"; } leaf pe-id-mac-flush-interop { type boolean; default "false"; description "LDP to send the non-standard PE-ID TLV in an address withdraw message"; } leaf community { type types-ldp:policy-string; description "Community string associated with a session to a specified peer"; } leaf-list export-addresses { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Export policies to determine which local addresses should be distributed to this peer"; } leaf-list export-prefixes { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Export policies to determine which FEC prefixes are redistributed to LDP and TLDP peers"; } leaf-list import-prefixes { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "FEC prefixes to be redistributed to this LDP peer"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container fec-limit { description "Enter the fec-limit context"; leaf limit { type uint32 { range "0|1..4294967295"; } default "0"; description "Maximum number of FECs to be accepted from this peer LSR"; } leaf log-only { type boolean; default "false"; description "Trap and syslog message to generate when reaching the threshold and limit"; } leaf threshold { type uint32 { range "1..100"; } default "90"; description "Threshold when a trap and a syslog message are generated as warning and when limit is reached"; } } // container fec-limit container fec-type-capability { description "Enter the fec-type-capability context"; leaf p2mp { type boolean; default "true"; description "Enable P2MP FEC capability for the session"; } leaf prefix-ipv4 { type boolean; default "true"; description "Enable IPv4 prefix FEC capability for the session"; } leaf prefix-ipv6 { type boolean; default "true"; description "Enable IPv6 prefix FEC capability"; } } // container fec-type-capability } // list peer } // container session-parameters container tcp-session-parameters { description "Enter the tcp-session-parameters context"; leaf authentication-keychain { type leafref { path "../../../../system/security/keychains/keychain/keychain-name"; } description "TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "Authentication key for the peer"; } list peer-transport { key "ip-address"; description "Enter the peer-transport list instance"; leaf ip-address { type types-sros:ip-address; description "IP address of an LDP peer"; } leaf authentication-keychain { type leafref { path "../../../../../system/security/keychains/keychain/keychain-name"; } description "TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "Authentication key for the peer"; } leaf path-mtu-discovery { type boolean; default "false"; description "Allow Path MTU Discovery for associated TCP connections"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for incoming BGP packet"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer-transport } // container tcp-session-parameters container interface-parameters { description "Enter the interface-parameters context"; container ipv4 { description "Enter the ipv4 context"; leaf transport-address { type enumeration { enum "interface" { value 1; } enum "system" { value 2; } } default "system"; description "Transport address to set up the LDP TCP sessions"; } container hello { description "Enter the hello context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "15"; description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Value for the Hello factor"; } } // container hello container keepalive { description "Enter the keepalive context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "30"; description "Timeout value for keepalive"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Value for the keep-alive factor"; } } // container keepalive } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf transport-address { type enumeration { enum "interface" { value 1; } enum "system" { value 2; } } default "system"; description "Transport address to set up the LDP TCP sessions"; } container hello { description "Enter the hello context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "15"; description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Value for the Hello factor"; } } // container hello container keepalive { description "Enter the keepalive context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "30"; description "Timeout value for keepalive"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Value for the keep-alive factor"; } } // container keepalive } // container ipv6 list interface { key "ip-int-name"; description "Enter the interface list instance"; leaf ip-int-name { type leafref { path "../../../../interface/interface-name"; } description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LDP"; } leaf load-balancing-weight { type uint32; description "Load balancing weight for the LDP interface"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bfd-liveness { description "Enter the bfd-liveness context"; leaf ipv4 { type boolean; default "false"; description "Allow BFD tracking of IPv4 LDP Session for interface"; } leaf ipv6 { type boolean; default "false"; description "Allow BFD tracking of IPv4 LDP Session for interface"; } } // container bfd-liveness container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LDP"; } leaf transport-address { type enumeration { enum "interface" { value 1; } enum "system" { value 2; } } description "Transport address to set up the LDP TCP sessions"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hello { presence "Enter the 'hello' context"; description "Enable the hello context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for Hello"; } } // container hello container keepalive { presence "Enter the 'keepalive' context"; description "Enable the keepalive context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Time that LDP waits before tearing down session"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for keepalive"; } } // container keepalive container fec-type-capability { description "Enter the fec-type-capability context"; leaf p2mp-ipv4 { type boolean; default "true"; description "Enable IPv4 P2MP FEC capability"; } leaf p2mp-ipv6 { type boolean; default "true"; description "Enable IPv6 P2MP FEC capability"; } leaf prefix-ipv4 { type boolean; default "true"; description "Enable IPv4 prefix FEC capability"; } leaf prefix-ipv6 { type boolean; default "true"; description "Enable IPv6 prefix FEC capability"; } } // container fec-type-capability container local-lsr-id { description "Enter the local-lsr-id context"; leaf interface-name { type leafref { path "../../../../../../interface/interface-name"; } description "Name of network IP interface from which to obtain IP address to use as LSR-ID of LDP LSP"; } } // container local-lsr-id } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LDP"; } leaf transport-address { type enumeration { enum "interface" { value 1; } enum "system" { value 2; } } description "Transport address to set up the LDP TCP sessions"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hello { presence "Enter the 'hello' context"; description "Enable the hello context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for Hello"; } } // container hello container keepalive { presence "Enter the 'keepalive' context"; description "Enable the keepalive context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Time that LDP waits before tearing down session"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for keepalive"; } } // container keepalive container fec-type-capability { description "Enter the fec-type-capability context"; leaf p2mp-ipv4 { type boolean; default "true"; description "Enable IPv4 P2MP FEC capability"; } leaf p2mp-ipv6 { type boolean; default "true"; description "Enable IPv6 P2MP FEC capability"; } leaf prefix-ipv4 { type boolean; default "true"; description "Enable IPv4 prefix FEC capability"; } leaf prefix-ipv6 { type boolean; default "true"; description "Enable IPv6 prefix FEC capability"; } } // container fec-type-capability container local-lsr-id { description "Enter the local-lsr-id context"; leaf interface-name { type leafref { path "../../../../../../interface/interface-name"; } description "Name of network IP interface from which to obtain IP address to use as LSR-ID of LDP LSP"; } leaf format-32bit { type boolean; default "false"; description "Use IPv4 address of local LSR-ID interface as LSR-ID of the LDP LSR"; } } // container local-lsr-id } // container ipv6 } // list interface } // container interface-parameters container targeted-session { description "Enter the targeted-session context"; leaf sdp-auto-targeted-session { type boolean; default "true"; description "Allow auto-creation of targeted sessions by SDP"; } leaf-list export-prefixes { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Export route policy to determine which routes are exported to this targeted LDP session"; } leaf-list import-prefixes { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Import route policy to determine which routes are accepted from targeted LDP neighbors"; } container ipv4 { description "Enter the ipv4 context"; container hello { description "Enter the hello context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "45"; description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Factor value for Hello"; } } // container hello container keepalive { description "Enter the keepalive context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "40"; description "Timeout value for keepalive"; } leaf factor { type uint32 { range "1..255"; } default "4"; description "Factor value for keepalive"; } } // container keepalive container hello-reduction { description "Enter the hello-reduction context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of suppression of periodic targeted Hello messages between LDP peers"; } leaf factor { type uint32 { range "3..20"; } default "3"; description "Hello reduction dampening factor"; } } // container hello-reduction } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container hello { description "Enter the hello context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "45"; description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } default "3"; description "Factor value for Hello"; } } // container hello container keepalive { description "Enter the keepalive context"; leaf timeout { type uint32 { range "3..65535"; } units "seconds"; default "40"; description "Timeout value for keepalive"; } leaf factor { type uint32 { range "1..255"; } default "4"; description "Factor value for keepalive"; } } // container keepalive container hello-reduction { description "Enter the hello-reduction context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of suppression of periodic targeted Hello messages between LDP peers"; } leaf factor { type uint32 { range "3..20"; } default "3"; description "Hello reduction dampening factor"; } } // container hello-reduction } // container ipv6 list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type types-sros:ip-address; description "IP address of the peer"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD tracking of LDP session for the peer"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the peer"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container local-lsr-id { description "Enter the local-lsr-id context"; leaf interface-name { type leafref { path "../../../../../interface/interface-name"; } description "Name of network IP interface from which to obtain IP address to use as LSR-ID of LDP LSP"; } leaf format-32bit { type boolean; default "false"; description "Use IPv4 address of local LSR-ID interface as LSR-ID of the LDP LSR"; } } // container local-lsr-id container hello { presence "Enter the 'hello' context"; description "Enable the hello context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for Hello"; } } // container hello container keepalive { presence "Enter the 'keepalive' context"; description "Enable the keepalive context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Time that LDP waits before tearing down session"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for keepalive"; } } // container keepalive container hello-reduction { presence "Enter the 'hello-reduction' context"; description "Enable the hello-reduction context"; leaf admin-state { type types-sros:admin-state-with-inherit; description "Administrative state of suppression of Hello messages"; } leaf factor { type uint32 { range "3..20"; } description "Hello reduction dampening factor"; } } // container hello-reduction container tunneling { presence "Enter the 'tunneling' context"; description "Enable the tunneling context"; list lsp { key "lsp-name"; max-elements 4; description "Add a list entry for lsp"; leaf lsp-name { type types-sros:named-item-64; description "LSP name"; } } // list lsp } // container tunneling container mcast-tunneling { presence "Enter the 'mcast-tunneling' context"; description "Enable the mcast-tunneling context"; list lsp { key "lsp-name"; max-elements 4; description "Add a list entry for lsp"; leaf lsp-name { type types-sros:named-item-64; description "LSP name"; } } // list lsp } // container mcast-tunneling } // list peer list peer-template { key "template-name"; max-elements 500; description "Enter the peer-template list instance"; leaf template-name { type types-sros:named-item; description "Name for the targeted peer template"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the peer template"; } leaf adv-local-lsr-id { type boolean; default "false"; description "Advertise local LSR ID over a specified LDP session"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD tracking of LDP session for sessions created by peer template"; } leaf community { type types-ldp:policy-string; description "Community string associated with a session to a specified peer"; } leaf tunneling { type boolean; default "false"; description "Allow LDP over tunnels for sessions created by peer template"; } leaf mcast-tunneling { type boolean; default "false"; description "Enable MLDP over RSVP-TE tunnels for the template"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hello { presence "Enter the 'hello' context"; description "Enable the hello context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Timeout value for Hello"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for Hello"; } } // container hello container hello-reduction { presence "Enter the 'hello-reduction' context"; description "Enable the hello-reduction context"; leaf admin-state { type types-sros:admin-state-with-inherit; description "Administrative state of suppression of Hello messages"; } leaf factor { type uint32 { range "3..20"; } description "Hello reduction dampening factor"; } } // container hello-reduction container keepalive { presence "Enter the 'keepalive' context"; description "Enable the keepalive context"; leaf timeout { type types-sros:time-duration { range "3..65535"; } description "Time that LDP waits before tearing down session"; } leaf factor { type uint32 { range "1..255"; } description "Factor value for keepalive"; } } // container keepalive container local-lsr-id { description "Enter the local-lsr-id context"; leaf interface-name { type leafref { path "../../../../../interface/interface-name"; } description "Name of network IP interface from which to obtain IP address to use as LSR-ID of LDP LSP"; } } // container local-lsr-id } // list peer-template list peer-template-map { key "template-map-name"; max-elements 500; description "Enter the peer-template-map list instance"; leaf template-map-name { type leafref { path "../../peer-template/template-name"; } description "Name to identify the targeted peer template"; } leaf-list policy-map { type leafref { path "../../../../../policy-options/policy-statement/name"; } min-elements 1; max-elements 5; ordered-by user; description "Targeted peer template to apply to the given policies"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer-template-map container auto-tx { description "Enter the auto-tx context"; container ipv4 { description "Enter the ipv4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IPv4 capabilities for peers"; } leaf tunneling { type boolean; default "false"; description "Enable tunneling for targeted peers"; } } // container ipv4 } // container auto-tx container auto-rx { description "Enter the auto-rx context"; container ipv4 { description "Enter the ipv4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IPv4 capabilities for peers"; } leaf tunneling { type boolean; default "false"; description "Enable tunneling for targeted peers"; } } // container ipv4 } // container auto-rx } // container targeted-session } // container ldp container mld { presence "Enter the 'mld' context"; description "Enable the mld context"; leaf group-if-query-source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source address in queries for group interfaces when not configured at group interface level"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } units "seconds"; default "1"; description "Time between group-specific query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..10"; } default "2"; description "Robust count to tune for the expected packet loss on a subnet"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MLD operation"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv6-multicast-address; description "Start of group range"; } leaf end { type types-sros:ipv6-multicast-address; description "End of group range"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } // list group-range } // container ssm-translate list interface { key "ip-interface-name"; description "Enter the interface list instance"; leaf ip-interface-name { type types-sros:interface-name; description "Interface name."; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } description "Import policy to filter MLD packets"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type types-mcast-cac:constraints-level; description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } mandatory true; description "Bandwidth available for this level"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type uint32 { range "1..64"; } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; mandatory true; description "Level ID to associate with number of down LAG ports"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list number-down } // container mc-constraints container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv6-multicast-address; description "Start of group range"; } leaf end { type types-sros:ipv6-multicast-address; description "End of group range"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } // list group-range } // container ssm-translate container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv6-multicast-address; description "Group address of multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group list group-range { key "start end step"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv6-multicast-address; description "Start of group range of multicast channel"; } leaf end { type types-sros:ipv6-multicast-address; description "End of group range for multicast channel"; } leaf step { type types-sros:ipv6-address; description "Step interval for the group-range addresses"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group-range } // container static } // list interface list group-interface { key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type leafref { path "../../../../service/ies/subscriber-interface/group-interface/group-interface-name"; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } description "Import policy to filter MLD packets"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } leaf subnet-check { type boolean; default "true"; description "Enable subnet checking"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow MLD traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source address for MLD queries"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list group-interface } // container mld container mpls { presence "Enter the 'mpls' context"; description "Enable the mpls context"; leaf admin-group-frr { type boolean; default "false"; description "Use admin group constraints for FRR path computation"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MPLS instance"; } leaf bypass-resignal-timer { type uint32 { range "1..10080"; } units "minutes"; description "Resignal timer for bypass"; } leaf cspf-on-loose-hop { type boolean; default "false"; description "Calculate CSPF until next loose hop on LSR"; } leaf dynamic-bypass { type boolean; default "true"; description "Create dynamic bypass LSPs in FRR"; } leaf exponential-backoff-retry { type boolean; default "false"; description "Use exponential back-off timer when retrying an LSP"; } leaf frr-object { type boolean; default "true"; description "Signal with fast reroute object"; } leaf hold-timer { type uint32 { range "0..1000"; } units "seconds"; default "1"; description "Hold timer value"; } leaf least-fill-min-thd { type types-sros:percent; default "5"; description "Percentage of the least fill minimum threshold value"; } leaf least-fill-reoptim-thd { type types-sros:percent; default "10"; description "Percentage of the least fill reoptimization threshold value"; } leaf logger-event-bundling { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Merge and bundle MPLS traps"; } leaf lsp-init-retry-timeout { type uint32 { range "10..600"; } units "seconds"; default "30"; description "LSP initial retry timeout"; } leaf max-bypass-associations { type uint32 { range "100..131072"; } default "1000"; description "Maximum number of LSPs to be associated with a bypass tunnel"; } leaf max-bypass-plr-associations { type uint32 { range "1..16"; } default "16"; description "Maximum number of PLRs per RSVP-TE bypass LSP"; } leaf mbb-prefer-current-hops { type boolean; default "false"; description "Select preference to use the current hops for Make-Before-Break (MBB)"; } leaf p2mp-resignal-timer { type uint32 { range "60..10080"; } units "minutes"; description "Resignal timer for P2MP LSPs"; } leaf p2mp-s2l-fast-retry { type uint32 { range "1..10"; } units "seconds"; description "Fast retry timer for P2MP S2L paths"; } leaf p2p-active-path-fast-retry { type uint32 { range "1..10"; } units "seconds"; description "Fast retry timer for P2P active paths"; } leaf resignal-timer { type uint32 { range "30..10080"; } units "minutes"; description "Resignal timer for RSVP LSPs"; } leaf retry-on-igp-overload { type boolean; default "false"; description "Tear down LSPs when IGP is in overload state"; } leaf secondary-fast-retry-timer { type uint32 { range "1..10"; } units "seconds"; description "Fast retry timer for secondary paths"; } leaf shortcut-local-ttl-propagate { type boolean; default "true"; description "Propagate TTL over LSP shortcut for local packets"; } leaf shortcut-transit-ttl-propagate { type boolean; default "true"; description "Propagate TTL over LSP shortcut for local packets for transit packets"; } leaf srlg-frr { type enumeration { enum "loose" { value 1; } enum "strict" { value 2; } } description "Use of Shared Risk Link Group (SRLG) constraint for FRR path computation"; } leaf static-lsp-fast-retry { type uint32 { range "1..30"; } units "seconds"; default "30"; description "Fast retry timer for static LSPs"; } leaf user-srlg-db { type boolean; default "false"; description "Enable/disable use of user SRLG database."; } leaf resignal-on-igp-overload { type boolean; default "false"; description "Resignal all RSVP-TE LSPs upon IGP overload"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container lsp-self-ping { description "Enter the lsp-self-ping context"; leaf interval { type uint32 { range "1..10"; } default "1"; description "MPLS periodic LSP Self Ping interval"; } leaf rsvp-te { type boolean; default "false"; description "Activate LSP Self Ping on RSVP-TE LSPs"; } leaf timeout { type uint32 { range "3..3600"; } default "300"; description "MPLS LSP Self Ping timeout"; } leaf timeout-action { type enumeration { enum "retry" { value 1; } enum "switch" { value 2; } } default "retry"; description "Action taken when LSP Self Ping timer expires"; } } // container lsp-self-ping container auto-bandwidth-multipliers { description "Enter the auto-bandwidth-multipliers context"; leaf sample-multiplier { type uint32 { range "1..511"; } default "1"; description "Collection intervals in a sample interval"; } leaf adjust-multiplier { type uint32 { range "1..16383"; } default "288"; description "Collection intervals in a sample interval"; } } // container auto-bandwidth-multipliers container entropy-label { description "Enter the entropy-label context"; leaf rsvp-te { type boolean; description "Apply entropy labels to RSVP-TE LSPs"; } leaf sr-te { type boolean; description "Apply entropy labels to SR-TE LSPs"; } } // container entropy-label container pce-report { description "Enter the pce-report context"; leaf sr-te { type boolean; default "false"; description "Allow PCE reporting for all TE LSPs of SR-TE type"; } leaf rsvp-te { type boolean; default "false"; description "Allow PCE reporting for all TE LSPs of RSVP-TE type"; } } // container pce-report container srlg-database { description "Enter the srlg-database context"; list router-id { key "router-address"; description "Enter the router-id list instance"; leaf router-address { type types-sros:ipv4-address; description "Specifies a unique identifier of the router in the Autonomous System."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the interface"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list interface { key "interface-address srlg-group"; description "Add a list entry for interface"; leaf interface-address { type types-sros:ipv4-address; description "Indicates the IP address of the interface."; } leaf srlg-group { type leafref { path "../../../../../../routing-options/if-attribute/srlg-group/name"; } description "SRLG group name"; } } // list interface } // list router-id } // container srlg-database list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type leafref { path "../../../interface/interface-name"; } description "Router interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MPLS"; } leaf te-metric { type uint32 { range "1..16777215"; } description "TE metric for the interface"; } leaf-list admin-group { type leafref { path "../../../../routing-options/if-attribute/admin-group/group-name"; } max-elements 32; description "Name of the admin group membership of the MPLS interface"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list srlg-group { key "name"; max-elements 64; description "Add a list entry for srlg-group"; leaf name { type leafref { path "../../../../../routing-options/if-attribute/srlg-group/name"; } description "Shared Risk Link Group (SRLG) name"; } } // list srlg-group list label-map { key "in-label"; description "Enter the label-map list instance"; leaf in-label { type types-sros:mpls-label; description "Match the incoming MPLS label"; } leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the label map"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } choice label-map-choice { case pop { leaf pop { type empty; sros-ext:immutable; sros-ext:auto-restart-to-modify; description "Pop (remove) the incoming label and forward packet based on service header"; } } case swap { container swap { presence "Enter the 'swap' context"; sros-ext:auto-restart-to-modify; description "Enable the swap context"; leaf out-label { type union { type uint32 { range "16..1048575"; } type enumeration { enum "implicit-null-label" { value 3; } } } sros-ext:auto-restart-to-modify; mandatory true; description "Push specific label onto the top of the outgoing packet's label stack"; } leaf next-hop { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; mandatory true; description "IP address for the next hop"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // container swap } } } // list label-map } // list interface list class-forwarding-policy { key "policy-name"; max-elements 15; description "Enter the class-forwarding-policy list instance"; leaf policy-name { type types-sros:named-item; description "Name of class forwarding policy"; } leaf default-set { type uint32 { range "1..6"; } default "1"; description "Default forwarding set ID"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class name for LSP"; } leaf forwarding-set { type uint32 { range "1..6"; } default "1"; description "Forwarding set ID for forwarding classes"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list fc } // list class-forwarding-policy list path { key "path-name"; max-elements 65535; description "Enter the path list instance"; leaf path-name { type types-sros:named-item-64; description "Name for this LSP path"; } leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of this tunnel"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } list hop { key "hop-index"; max-elements 255; sros-ext:auto-restart-to-modify; description "Enter the hop list instance"; leaf hop-index { type int32 { range "1..1024"; } description "Index to identify a particular hop"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } choice hop-info { mandatory true; case hop-ip-address { leaf ip-address { type types-sros:ip-address; sros-ext:immutable; sros-ext:auto-restart-to-modify; description "IPv4 address of this hop"; } leaf type { type enumeration { enum "strict" { value 1; } enum "loose" { value 2; } } sros-ext:auto-restart-to-modify; description "Tunnel hop type"; } } case hop-sid { leaf sid-label { type uint32 { range "32..1048575"; } sros-ext:auto-restart-to-modify; description "MPLS label for tunnel hop in the path of an SR-TE LSP"; } } } } // list hop } // list path list lsp-template { key "template-name"; max-elements 4096; description "Enter the lsp-template list instance"; leaf template-name { type types-sros:named-item; description "Name of the LSP template to automatically create and signal multiple LSP instances"; } leaf type { type enumeration { enum "p2mp-rsvp" { value 1; } enum "p2p-rsvp-one-hop" { value 2; } enum "p2p-rsvp-mesh" { value 3; } enum "p2p-sr-te-one-hop" { value 4; } enum "p2p-sr-te-mesh" { value 5; } enum "p2p-sr-te-pce-init" { value 6; } } sros-ext:immutable; sros-ext:auto-restart-to-modify; mandatory true; description "Configure type of the LSP template."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of LSP template"; } leaf backup-class-type { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type types-mpls:class-type; sros-ext:auto-restart-to-modify; default "0"; description "Configure backup-class-type for this LSP template."; } leaf bandwidth { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type types-mpls:lsp-bandwidth; default "0"; description "Specify bandwidth in mbps for LSP instances created using this LSP template."; } leaf bgp-shortcut { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-pce-init'"; type boolean; sros-ext:auto-restart-to-modify; description "Enable/disable use of RSVP LSP for IPv4 BGP routes."; } leaf bgp-transport-tunnel { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-pce-init'"; type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Include/exclude use of RSVP LSP as transport LSP for labeled IPv4 BGP routes."; } leaf default-path { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-pce-init'"; type leafref { path "../../path/path-name"; } sros-ext:immutable; sros-ext:auto-restart-to-modify; description "Specify default path to be used for signaling LSP instances created using this LSP template."; } leaf from { when "not(../type) or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-mesh'"; type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "IP address of the ingress router for the LSP template."; } leaf hop-limit { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh'"; type uint16 { range "2..255"; } sros-ext:auto-restart-to-modify; description "Configure maximum number of hops that can be traversed by LSP instances created using this LSP template."; } leaf ldp-over-rsvp { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Configure if this LSP will be included in LDP over RSVP."; } leaf metric { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-pce-init'"; type uint32 { range "0..16777215"; } sros-ext:auto-restart-to-modify; default "0"; description "Configure LSP template metric."; } leaf vprn-auto-bind { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-pce-init'"; type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Configure if this LSP will be included in auto-bind for VPRN services."; } leaf pce-report { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-pce-init'"; type types-sros:bool-with-inherit; sros-ext:auto-restart-to-modify; description "Specifies whether to override the global configuration of reporting to PCE."; } leaf entropy-label { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-pce-init'"; type types-sros:bool-with-inherit; sros-ext:auto-restart-to-modify; description "Configure Entropy Label for LSP Template."; } leaf adaptive { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Enable/disable make-before-break functionality."; } leaf adspec { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable/disable inclusion of ADSPEC objects in RSVP messages."; } leaf class-type { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type types-mpls:class-type; sros-ext:auto-restart-to-modify; default "0"; description "Configure class-type."; } leaf least-fill { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Configure use of least-fill path selection method."; } leaf load-balancing-weight { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-pce-init'"; type uint32 { range "1..max"; } sros-ext:auto-restart-to-modify; description "Configure load balancing weight."; } leaf main-ct-retry-limit { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type uint32 { range "1..10000"; } sros-ext:auto-restart-to-modify; description "Max number of attempts before switching to backup class type."; } leaf propagate-admin-group { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable/disable admin groups via session attribute object."; } leaf retry-limit { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh'"; type uint32 { range "1..10000"; } sros-ext:auto-restart-to-modify; description "Max number of attempts made to reestablish the LSP after it has failed."; } leaf retry-timer { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh'"; type uint32 { range "1..600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "30"; description "Time between attempts to reestablish the LSP after it has failed."; } leaf record { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Enable/disable recording of all hops."; } leaf record-label { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Enable/disable recording of labels at each node or instance."; } leaf template-id { when "not(../type) or ../type = 'p2p-sr-te-pce-init'"; type union { type uint32 { range "1..max"; } type enumeration { enum "default" { value 0; } } } sros-ext:immutable; sros-ext:auto-restart-to-modify; description "The value indicates lsp template-id. Configure this if LSP Template is of type p2p-sr-te-pce-init."; } leaf path-computation-method { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh'"; type enumeration { enum "local-cspf" { value 2; } } sros-ext:auto-restart-to-modify; description "Configure path computation method"; } leaf family { when "not(../type) or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh'"; type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 2; } } sros-ext:auto-restart-to-modify; default "ipv4"; description "Address family that specifies template use in SR-TE LSP"; } leaf metric-type { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh'"; type enumeration { enum "igp" { value 1; } enum "te" { value 2; } } sros-ext:auto-restart-to-modify; default "igp"; description "Configure metric type used for LSP path computation."; } leaf local-sr-protection { when "not(../type) or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh'"; type enumeration { enum "none" { value 1; } enum "preferred" { value 2; } enum "mandatory" { value 3; } } sros-ext:auto-restart-to-modify; default "preferred"; description "Configure local SR protection preference for LSP path computation."; } leaf label-stack-reduction { when "not(../type) or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh'"; type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable/disable label compression for LSP path."; } leaf lsp-self-ping { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; type types-sros:bool-with-inherit; sros-ext:auto-restart-to-modify; description "LSP Self Ping activation status on RSVP-TE LSP template"; } leaf-list include-admin-group { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh'"; type leafref { path "../../../../routing-options/if-attribute/admin-group/group-name"; } max-elements 32; sros-ext:auto-restart-to-modify; description "Admin group name included when LSP is set up"; } leaf-list exclude-admin-group { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh'"; type leafref { path "../../../../routing-options/if-attribute/admin-group/group-name"; } max-elements 32; sros-ext:auto-restart-to-modify; description "Admin group name excluded when LSP is set up"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container class-forwarding { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-pce-init'"; presence "Enter the 'class-forwarding' context"; sros-ext:auto-restart-to-modify; description "Enable the class-forwarding context"; choice cbf-choice { default "default-lsp-and-fc"; case default-lsp-and-fc { leaf default-lsp { status obsolete; type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Use the default LSP configuration for specified LSP or LSP template"; } leaf-list fc { status obsolete; type enumeration { enum "be" { value 0; } enum "l2" { value 1; } enum "af" { value 2; } enum "l1" { value 3; } enum "h2" { value 4; } enum "ef" { value 5; } enum "h1" { value 6; } enum "nc" { value 7; } } max-elements 8; sros-ext:auto-restart-to-modify; description "One or more forwarding classes for LSP instances"; } } case forwarding-set { container forwarding-set { sros-ext:auto-restart-to-modify; description "Enter the forwarding-set context"; leaf policy { type leafref { path "../../../../class-forwarding-policy/policy-name"; } sros-ext:auto-restart-to-modify; description "Name for the class based forwarding policy for LSP instances"; } leaf set { type uint32 { range "1..6"; } sros-ext:auto-restart-to-modify; description "Forwarding set ID"; } } // container forwarding-set } } } // container class-forwarding container cspf { status obsolete; when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-pce-init'"; sros-ext:auto-restart-to-modify; description "Enter the cspf context"; leaf admin-state { status obsolete; type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the CSPF support for LSP"; } leaf use-te-metric { status obsolete; when "not(../../type = 'p2p-sr-te-pce-init')"; type boolean; sros-ext:auto-restart-to-modify; default "false"; description "TE metric for the LSP path computation by CSPF"; } } // container cspf container priority { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; sros-ext:auto-restart-to-modify; description "Enter the priority context"; leaf setup-priority { type types-mpls:priority; sros-ext:auto-restart-to-modify; default "7"; description "Setup priority when insufficient bandwidth is available to set up LSP"; } leaf hold-priority { type types-mpls:priority; sros-ext:auto-restart-to-modify; default "0"; description "Hold priority when insufficient bandwidth is available to set up LSP"; } } // container priority container fast-reroute { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh'"; presence "Enter the 'fast-reroute' context"; sros-ext:auto-restart-to-modify; description "Enable the fast-reroute context"; leaf hop-limit { type uint32 { range "0..255"; } default "16"; description "Total number of hops a detour or backup LSP can take before merging back onto the main LSP path"; } leaf propagate-admin-group { type boolean; default "false"; description "Enable signaling of the primary LSP path admin-group constraints in the FRR object at ingress"; } leaf frr-method { type types-mpls:frr-method-type; sros-ext:auto-restart-to-modify; default "facility"; description "Fast Reroute method for the LSPs that are dynamically created using this LSP template"; } leaf node-protect { type boolean; default "false"; description "Enable node and link protection for the specified LSP"; } } // container fast-reroute container igp-shortcut { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-pce-init'"; sros-ext:auto-restart-to-modify; description "Enter the igp-shortcut context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "enable"; description "Administrative state of the RSVP LSP to be used as a shortcut while resolving IGP routes"; } choice igp-choice { case lfa-type { leaf lfa-type { type enumeration { enum "lfa-protect" { value 1; } enum "lfa-only" { value 2; } } sros-ext:auto-restart-to-modify; description "Specific RSVP LSP by IS-IS and OSPF routing protocols to assign as shortcut or as forwarding adjacency"; } } case relative-metric { leaf relative-metric { type int32 { range "-10..10"; } sros-ext:auto-restart-to-modify; description "Shortest IGP cost between the endpoints of the LSP plus the configured offset"; } } } } // container igp-shortcut container max-sr-labels { when "not(../type) or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-pce-init'"; sros-ext:auto-restart-to-modify; description "Enter the max-sr-labels context"; leaf label-stack-size { type uint32 { range "1..11"; } sros-ext:auto-restart-to-modify; description "Size for the maximum segment routing label stack"; } leaf additional-frr-labels { type uint32 { range "0..4"; } sros-ext:auto-restart-to-modify; default "1"; description "Maximum number of additional overhead labels"; } } // container max-sr-labels list admin-tag { when "not(../type) or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-sr-te-pce-init'"; key "name"; max-elements 4; sros-ext:auto-restart-to-modify; description "Add a list entry for admin-tag"; leaf name { type leafref { path "../../../../../routing-options/admin-tags/admin-tag/tag"; } description "Name of the admin tags"; } } // list admin-tag container auto-bandwidth { when "not(../type) or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-rsvp-one-hop'"; presence "Enter the 'auto-bandwidth' context"; sros-ext:auto-restart-to-modify; description "Enable the auto-bandwidth context"; leaf max-bandwidth { type types-mpls:lsp-bandwidth; sros-ext:auto-restart-to-modify; default "100000"; description "Maximum bandwidth of auto-bandwidth to request for the LSP"; } leaf min-bandwidth { type types-mpls:lsp-bandwidth; sros-ext:auto-restart-to-modify; default "0"; description "Minimum bandwidth of auto-bandwidth to request for the LSP"; } leaf monitor-bandwidth { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Collect and display auto-bandwidth measurements for the LSP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } list fc { key "fc-name"; max-elements 8; sros-ext:auto-restart-to-modify; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class name for LSP"; } leaf sampling-weight { type types-sros:percent; sros-ext:auto-restart-to-modify; default "100"; description "Forwarding class weight for LSP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // list fc container adjust-down { sros-ext:auto-restart-to-modify; description "Enter the adjust-down context"; leaf percent { type types-sros:percent; sros-ext:auto-restart-to-modify; default "5"; description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate"; } leaf bw { type types-mpls:lsp-bandwidth; sros-ext:auto-restart-to-modify; default "0"; description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate"; } } // container adjust-down container adjust-up { sros-ext:auto-restart-to-modify; description "Enter the adjust-up context"; leaf percent { type types-sros:percent; sros-ext:auto-restart-to-modify; default "5"; description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate"; } leaf bw { type types-mpls:lsp-bandwidth; sros-ext:auto-restart-to-modify; default "0"; description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate"; } } // container adjust-up container multipliers { sros-ext:auto-restart-to-modify; description "Enter the multipliers context"; leaf sample-multiplier { type uint32 { range "1..511"; } sros-ext:auto-restart-to-modify; description "Multiplier for collection intervals in a sample interval"; } leaf adjust-multiplier { type uint32 { range "1..16383"; } sros-ext:auto-restart-to-modify; description "Number of collection intervals in the adjust interval"; } } // container multipliers container overflow-limit { presence "Enter the 'overflow-limit' context"; sros-ext:auto-restart-to-modify; description "Enable the overflow-limit context"; leaf threshold { type types-sros:percent; sros-ext:auto-restart-to-modify; default "0"; description "Minimum difference in percent between the LSP bandwidth and the sampled data rate"; } leaf bw { type types-mpls:lsp-bandwidth { range "1..6400000"; } sros-ext:auto-restart-to-modify; description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate"; } leaf number { type uint32 { range "1..10"; } sros-ext:auto-restart-to-modify; mandatory true; description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt"; } } // container overflow-limit container underflow-limit { presence "Enter the 'underflow-limit' context"; sros-ext:auto-restart-to-modify; description "Enable the underflow-limit context"; leaf threshold { type types-sros:percent; sros-ext:auto-restart-to-modify; default "0"; description "Minimum difference in percent between the LSP bandwidth and the sampled data rate"; } leaf bw { type types-mpls:lsp-bandwidth { range "1..6400000"; } sros-ext:auto-restart-to-modify; description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate"; } leaf number { type uint32 { range "1..10"; } sros-ext:auto-restart-to-modify; mandatory true; description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt"; } } // container underflow-limit } // container auto-bandwidth container egress-statistics { when "not(../type) or ../type = 'p2mp-rsvp' or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-pce-init'"; presence "Enter the 'egress-statistics' context"; sros-ext:auto-restart-to-modify; description "Enable the egress-statistics context"; leaf collect-stats { when "not(../../type) or ../../type = 'p2mp-rsvp' or ../../type = 'p2p-rsvp-one-hop' or ../../type = 'p2p-rsvp-mesh'"; type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Collect statistics"; } leaf accounting-policy { when "not(../../type) or ../../type = 'p2mp-rsvp' or ../../type = 'p2p-rsvp-one-hop' or ../../type = 'p2p-rsvp-mesh'"; type leafref { path "../../../../../log/accounting-policy/policy-id"; } sros-ext:auto-restart-to-modify; description "Accounting policy ID"; } } // container egress-statistics container bfd { when "not(../type) or ../type = 'p2p-rsvp-one-hop' or ../type = 'p2p-rsvp-mesh' or ../type = 'p2p-sr-te-mesh' or ../type = 'p2p-sr-te-one-hop' or ../type = 'p2p-sr-te-pce-init'"; sros-ext:auto-restart-to-modify; description "Enter the bfd context"; leaf bfd-liveness { type boolean; default "false"; description "Enable BFD on the RSVP LSP or S-BFD on the SR-TE LSP"; } leaf bfd-template { type leafref { path "../../../../../bfd/bfd-template/name"; } description "BFD template"; } leaf lsp-ping-interval { when "not(../../type) or ../../type = 'p2p-rsvp-one-hop' or ../../type = 'p2p-rsvp-mesh'"; type union { type uint32 { range "60..300"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "60"; description "Interval for periodic LSP ping for BFD bootstrapping"; } leaf failure-action { type enumeration { enum "none" { value 0; } enum "down" { value 1; } enum "failover-or-down" { value 2; } } default "none"; description "Indicates the action to be taken when LSP BFD session fails"; } leaf wait-for-up-timer { when "not(../../type) or ../../type = 'p2p-sr-te-one-hop' or ../../type = 'p2p-sr-te-mesh' or ../../type = 'p2p-sr-te-pce-init'"; type uint32 { range "1..60"; } units "seconds"; sros-ext:auto-restart-to-modify; default "4"; description "Time to wait for BFD to become operationally available"; } } // container bfd } // list lsp-template list lsp { key "lsp-name"; description "Enter the lsp list instance"; leaf lsp-name { type types-sros:named-item-64; description "Labeled Switch path name"; } leaf type { type enumeration { enum "p2p-rsvp" { value 2; } enum "p2p-static-mpls" { value 3; } enum "p2p-rsvp-bypass" { value 4; } enum "p2mp-rsvp" { value 5; } enum "p2mp-rsvp-auto" { value 6; } enum "p2p-rsvp-mesh" { value 8; } enum "p2p-rsvp-one-hop" { value 9; } enum "p2p-sr-te" { value 10; } enum "p2p-sr-te-mesh" { value 11; } enum "p2p-sr-te-one-hop" { value 12; } enum "p2p-sr-te-pce-init" { value 13; } } sros-ext:immutable; mandatory true; description "LSP for bypass protection, point to multipoint, segment routing or MPLS-TP static LSP"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the LSP"; } leaf exclude-node { when "not(../type) or ../type = 'p2p-rsvp-bypass'"; type types-sros:ip-address; description "Exclude Routers object to be included in the bypass path message"; } leaf from { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp' or ../type = 'p2p-sr-te'"; type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Source IP address of this LSP"; } leaf to { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2p-sr-te'"; type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Destination IP address or the egress router for the LSP"; } leaf hop-limit { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp' or ../type = 'p2p-sr-te'"; type uint32 { range "2..255"; } default "255"; description "Maximum number of hops that an LSP can traverse including ingress and egress routers"; } leaf p2mp-id { when "not(../type) or ../type = 'p2mp-rsvp'"; type uint32 { range "1..65535"; } description "Unique identifier as Point-to-Multipoint (P2MP) identifier"; } leaf pce-control { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; type boolean; default "false"; description "Control of path (delegation) to Path Computation Engine (PCE) to be used"; } leaf revert-timer { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; type uint32 { range "1..4320"; } units "minutes"; description "Revert timer for this LSP"; } leaf rsvp-resv-style { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp'"; type enumeration { enum "se" { value 1; } enum "ff" { value 2; } } default "se"; description "Reservation style for RSVP"; } leaf bgp-shortcut { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; type boolean; description "Include LSP for BGP routes"; } leaf bgp-transport-tunnel { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; type boolean; description "Include LSP as transport LSP for labeled BGP routes"; } leaf ldp-over-rsvp { when "not(../type) or ../type = 'p2p-rsvp'"; type boolean; description "Include this LSP in LDP over RSVP"; } leaf metric { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; type uint32 { range "0..16777215"; } description "LSP metric that forces to a constant value"; } leaf vprn-auto-bind { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; type boolean; description "Include this LSP in auto-bind for VPRN services"; } leaf pce-report { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; type types-sros:bool-with-inherit; description "Global configuration of reporting to PCE to override"; } leaf entropy-label { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; type types-sros:bool-with-inherit; description "Entropy label"; } leaf adaptive { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp'"; type boolean; default "true"; description "Enable/disable make-before-break functionality."; } leaf adspec { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass'"; type boolean; default "false"; description "Enable/disable inclusion of ADSPEC object in RSVP messages."; } leaf class-type { when "not(../type) or ../type = 'p2p-rsvp'"; type types-mpls:class-type; default "0"; description "Configure class type."; } leaf least-fill { when "not(../type) or ../type = 'p2p-rsvp'"; type boolean; default "false"; description "Configure use of least-fill path selection method."; } leaf load-balancing-weight { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; type uint32 { range "1..max"; } description "Configure load balancing weight."; } leaf main-ct-retry-limit { when "not(../type) or ../type = 'p2p-rsvp'"; type uint32 { range "1..10000"; } description "Max number of attempts before switching to backup class type."; } leaf propagate-admin-group { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp'"; type boolean; default "false"; description "Enable/disable admin groups via session attribute object."; } leaf retry-limit { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp' or ../type = 'p2p-sr-te'"; type uint32 { range "1..10000"; } description "Max number of attempts made to reestablish the LSP after it has failed."; } leaf retry-timer { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp' or ../type = 'p2p-sr-te'"; type uint32 { range "1..600"; } units "seconds"; default "30"; description "Time between attempts to reestablish the LSP after it has failed."; } leaf path-computation-method { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp' or ../type = 'p2p-sr-te'"; type enumeration { enum "local-cspf" { value 2; } enum "pce" { value 3; } } description "Configure path computation method"; } leaf metric-type { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp' or ../type = 'p2p-sr-te'"; type enumeration { enum "igp" { value 1; } enum "te" { value 2; } } default "igp"; description "Configure metric type used for LSP path computation."; } leaf local-sr-protection { when "not(../type) or ../type = 'p2p-sr-te'"; type enumeration { enum "none" { value 1; } enum "preferred" { value 2; } enum "mandatory" { value 3; } } default "preferred"; description "Configure local SR protection preference for LSP path computation."; } leaf label-stack-reduction { when "not(../type) or ../type = 'p2p-sr-te'"; type boolean; default "false"; description "Enable/disable label compression for LSP path."; } leaf lsp-self-ping { when "not(../type) or ../type = 'p2p-rsvp'"; type types-sros:bool-with-inherit; description "LSP Self Ping activation status on the RSVP-TE LSP"; } leaf fallback-path-computation-method { type enumeration { enum "none" { value 1; } enum "local-cspf" { value 2; } } description "Fallback path computation method"; } leaf-list include-admin-group { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp' or ../type = 'p2p-sr-te'"; type leafref { path "../../../../routing-options/if-attribute/admin-group/group-name"; } max-elements 32; description "Admin group name included when LSP is set up"; } leaf-list exclude-admin-group { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp' or ../type = 'p2p-sr-te'"; type leafref { path "../../../../routing-options/if-attribute/admin-group/group-name"; } max-elements 32; description "Name of admin group excluded when LSP is set up"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf pce-computation { status obsolete; when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; type boolean; default "false"; description "LSP path computation request sent to local CSPF or to PCE"; } container class-forwarding { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; presence "Enter the 'class-forwarding' context"; description "Enable the class-forwarding context"; choice cbf-choice { default "default-lsp-and-fc"; case default-lsp-and-fc { leaf default-lsp { status obsolete; type boolean; default "false"; description "Use the default LSP configuration for specified LSP or LSP template"; } leaf-list fc { status obsolete; type enumeration { enum "be" { value 0; } enum "l2" { value 1; } enum "af" { value 2; } enum "l1" { value 3; } enum "h2" { value 4; } enum "ef" { value 5; } enum "h1" { value 6; } enum "nc" { value 7; } } max-elements 8; description "One or more forwarding classes for LSP instances"; } } case forwarding-set { container forwarding-set { description "Enter the forwarding-set context"; leaf policy { type leafref { path "../../../../class-forwarding-policy/policy-name"; } description "Name for the class based forwarding policy for LSP instances"; } leaf set { type uint32 { range "1..6"; } description "Forwarding set ID"; } } // container forwarding-set } } } // container class-forwarding container cspf { status obsolete; when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2mp-rsvp' or ../type = 'p2p-sr-te'"; presence "Enter the 'cspf' context"; description "Enable the cspf context"; leaf use-te-metric { status obsolete; type boolean; default "false"; description "TE metric to the LSP path computation by CSPF"; } } // container cspf container igp-shortcut { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; description "Enter the igp-shortcut context"; leaf admin-state { type types-sros:admin-state; description "Administrative state of the LSP to be used as a shortcut while resolving IGP routes"; } choice igp-choice { case lfa-type { leaf lfa-type { type enumeration { enum "lfa-protect" { value 1; } enum "lfa-only" { value 2; } } description "Specific RSVP LSP by IS-IS and OSPF routing protocols to assign as shortcut or as forwarding adjacency"; } } case relative-metric { leaf relative-metric { type int32 { range "-10..10"; } description "Shortest IGP cost between the endpoints of the LSP plus the configured offset"; } } } } // container igp-shortcut container fast-reroute { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2mp-rsvp'"; presence "Enter the 'fast-reroute' context"; description "Enable the fast-reroute context"; leaf hop-limit { type uint32 { range "0..255"; } default "16"; description "Total number of hops a detour or backup LSP can take before merging back onto the main LSP path"; } leaf propagate-admin-group { type boolean; default "false"; description "Enable signaling of the primary LSP path admin-group constraints in the FRR object at ingress"; } leaf frr-method { type types-mpls:frr-method-type; description "Fast Reroute method"; } leaf node-protect { type boolean; description "Enable node and link protection for the specified LSP"; } } // container fast-reroute container max-sr-labels { when "not(../type) or ../type = 'p2p-sr-te'"; description "Enter the max-sr-labels context"; leaf label-stack-size { type uint32 { range "1..11"; } description "Maximum Label Stack size"; } leaf additional-frr-labels { type uint32 { range "0..4"; } default "1"; description "Value for the maximum additional overhead labels"; } } // container max-sr-labels list admin-tag { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; key "name"; max-elements 4; description "Add a list entry for admin-tag"; leaf name { type leafref { path "../../../../../routing-options/admin-tags/admin-tag/tag"; } description "Name of the admin tags"; } } // list admin-tag container auto-bandwidth { when "not(../type) or ../type = 'p2p-rsvp'"; presence "Enter the 'auto-bandwidth' context"; description "Enable the auto-bandwidth context"; leaf max-bandwidth { type types-mpls:lsp-bandwidth; default "100000"; description "Maximum bandwidth of auto-bandwidth to request for the LSP"; } leaf min-bandwidth { type types-mpls:lsp-bandwidth; default "0"; description "Minimum bandwidth of auto-bandwidth to request for the LSP"; } leaf monitor-bandwidth { type boolean; default "false"; description "Collect and display auto-bandwidth measurements for the LSP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list fc { key "fc-name"; max-elements 8; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class name for LSP"; } leaf sampling-weight { type types-sros:percent; default "100"; description "Forwarding class weight for LSP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list fc container adjust-down { description "Enter the adjust-down context"; leaf percent { type types-sros:percent; default "5"; description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate"; } leaf bw { type types-mpls:lsp-bandwidth; default "0"; description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate"; } } // container adjust-down container adjust-up { description "Enter the adjust-up context"; leaf percent { type types-sros:percent; default "5"; description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate"; } leaf bw { type types-mpls:lsp-bandwidth; default "0"; description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate"; } } // container adjust-up container multipliers { description "Enter the multipliers context"; leaf sample-multiplier { type uint32 { range "1..511"; } description "Multiplier for collection intervals in a sample interval"; } leaf adjust-multiplier { type uint32 { range "1..16383"; } description "Number of collection intervals in the adjust interval"; } } // container multipliers container overflow-limit { presence "Enter the 'overflow-limit' context"; description "Enable the overflow-limit context"; leaf threshold { type types-sros:percent; default "0"; description "Minimum difference in percent between the LSP bandwidth and the sampled data rate"; } leaf bw { type types-mpls:lsp-bandwidth { range "1..6400000"; } description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate"; } leaf number { type uint32 { range "1..10"; } mandatory true; description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt"; } } // container overflow-limit container underflow-limit { presence "Enter the 'underflow-limit' context"; description "Enable the underflow-limit context"; leaf threshold { type types-sros:percent; default "0"; description "Minimum difference in percent between the LSP bandwidth and the sampled data rate"; } leaf bw { type types-mpls:lsp-bandwidth { range "1..6400000"; } description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate"; } leaf number { type uint32 { range "1..10"; } mandatory true; description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt"; } } // container underflow-limit container use-last-adj-bw { presence "Enter the 'use-last-adj-bw' context"; description "Enable the use-last-adj-bw context"; leaf secondary-retry-limit { type types-mpls:retry-limit; default "5"; description "Specify the max number of retry attempts that will be made to signal the secondary path with the last adjusted bandwidth."; } } // container use-last-adj-bw } // container auto-bandwidth container egress-statistics { when "../type = 'p2p-rsvp' or ../type = 'p2mp-rsvp' or not(../type) or ../type = 'p2p-sr-te'"; presence "Enter the 'egress-statistics' context"; description "Enable the egress-statistics context"; leaf collect-stats { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2mp-rsvp'"; type boolean; default "false"; description "Collect statistics"; } leaf accounting-policy { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2mp-rsvp'"; type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Accounting policy ID"; } leaf admin-state { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2mp-rsvp' or ../../type = 'p2p-sr-te'"; type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for LSP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container egress-statistics container bfd { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; description "Enter the bfd context"; leaf bfd-liveness { type boolean; default "false"; description "Enable BFD on the RSVP LSP or S-BFD on the SR-TE LSP"; } leaf bfd-template { type leafref { path "../../../../../bfd/bfd-template/name"; } description "BFD template"; } leaf lsp-ping-interval { when "not(../../type) or ../../type = 'p2p-rsvp'"; type union { type uint32 { range "60..300"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "60"; description "Interval for periodic LSP ping for BFD bootstrapping"; } leaf failure-action { type enumeration { enum "none" { value 0; } enum "down" { value 1; } enum "failover" { value 2; } enum "failover-or-down" { value 3; } } default "none"; description "Action when LSP BFD fails on the RSVP SR-TE LSP"; } leaf wait-for-up-timer { when "not(../../type) or ../../type = 'p2p-sr-te' or ../../type = 'p2p-rsvp'"; type uint32 { range "1..60"; } units "seconds"; default "4"; description "Time to wait for BFD to become operationally available"; } } // container bfd list path-profile { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; key "profile-id"; max-elements 5; description "Enter the path-profile list instance"; leaf profile-id { type uint32 { range "1..max"; } description "Profile ID for the specified LSP"; } leaf path-group { type uint32; default "0"; description "Profile ID for the specified LSP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list path-profile list primary { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-rsvp-bypass' or ../type = 'p2p-sr-te'"; key "path-name"; max-elements 1; description "Enter the primary list instance"; leaf path-name { type leafref { path "../../../path/path-name"; } description "Path name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LSP path"; } leaf adaptive { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp'"; type boolean; description "Enable/disable make-before-break functionality."; } leaf bandwidth { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2mp-rsvp' or ../../type = 'p2p-sr-te'"; type types-mpls:lsp-bandwidth; default "0"; description "Amount of bandwidth to be reserved."; } leaf hop-limit { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp' or ../../type = 'p2p-sr-te'"; type uint32 { range "2..255"; } description "The maximum number of hops that an LSP will traverse including the ingress and egress LSRs."; } leaf record { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp'"; type boolean; default "true"; description "Enable/disable recording of all hops."; } leaf record-label { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp'"; type boolean; default "true"; description "Enable/disable recording of labels at each node or instance."; } leaf class-type { when "not(../../type) or ../../type = 'p2p-rsvp'"; type types-mpls:class-type; description "Class-type"; } leaf backup-class-type { when "not(../../type) or ../../type = 'p2p-rsvp'"; type types-mpls:class-type; description "Class-type for the LSP or LSP path"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-sr-te'"; description "Enter the priority context"; leaf setup-priority { type types-mpls:priority; default "7"; description "Setup priority when insufficient bandwidth is available to set up LSP"; } leaf hold-priority { type types-mpls:priority; default "0"; description "Hold priority when insufficient bandwidth is available to set up LSP"; } } // container priority container include-admin-group { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2p-sr-te'"; presence "Enter the 'include-admin-group' context"; description "Enable the include-admin-group context"; leaf-list group { type leafref { path "../../../../../../routing-options/if-attribute/admin-group/group-name"; } min-elements 1; max-elements 32; description "Groups that are included when LSP path is setup"; } } // container include-admin-group container exclude-admin-group { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2p-sr-te'"; presence "Enter the 'exclude-admin-group' context"; description "Enable the exclude-admin-group context"; leaf-list group { type leafref { path "../../../../../../routing-options/if-attribute/admin-group/group-name"; } min-elements 1; max-elements 32; description "Groups to exclude when the LSP path is setup"; } } // container exclude-admin-group container bfd { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-sr-te'"; description "Enter the bfd context"; leaf bfd-liveness { type boolean; default "false"; description "Enable BFD on the RSVP LSP or S-BFD on the SR-TE LSP"; } leaf bfd-template { type leafref { path "../../../../../../bfd/bfd-template/name"; } description "BFD template"; } leaf lsp-ping-interval { when "not(../../../type) or ../../../type = 'p2p-rsvp'"; type union { type uint32 { range "60..300"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "60"; description "Interval for periodic LSP ping for BFD bootstrapping"; } leaf wait-for-up-timer { when "not(../../../type) or ../../../type = 'p2p-sr-te' or ../../../type = 'p2p-rsvp'"; type uint32 { range "1..60"; } units "seconds"; default "4"; description "Time to wait for BFD to become operationally available"; } } // container bfd } // list primary list secondary { when "not(../type) or ../type = 'p2p-rsvp' or ../type = 'p2p-sr-te'"; key "path-name"; max-elements 8; description "Enter the secondary list instance"; leaf path-name { type leafref { path "../../../path/path-name"; } description "Path name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LSP path"; } leaf adaptive { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp'"; type boolean; description "Enable/disable make-before-break functionality."; } leaf bandwidth { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2mp-rsvp' or ../../type = 'p2p-sr-te'"; type types-mpls:lsp-bandwidth; default "0"; description "Amount of bandwidth to be reserved."; } leaf hop-limit { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp' or ../../type = 'p2p-sr-te'"; type uint32 { range "2..255"; } description "The maximum number of hops that an LSP will traverse including the ingress and egress LSRs."; } leaf record { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp'"; type boolean; default "true"; description "Enable/disable recording of all hops."; } leaf record-label { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp'"; type boolean; default "true"; description "Enable/disable recording of labels at each node or instance."; } leaf class-type { when "not(../../type) or ../../type = 'p2p-rsvp'"; type types-mpls:class-type; description "Class-type"; } leaf path-preference { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-sr-te'"; type int32 { range "1..255"; } default "255"; description "Path preference for the secondary standby path"; } leaf srlg { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-sr-te'"; type boolean; default "false"; description "Use SRLG constraint in secondary path computation for an LSP at the head-end LER"; } leaf standby { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-sr-te'"; type boolean; default "false"; description "Maintain secondary path LSP indefinitely in hot standby state"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-sr-te'"; description "Enter the priority context"; leaf setup-priority { type types-mpls:priority; default "7"; description "Setup priority when insufficient bandwidth is available to set up LSP"; } leaf hold-priority { type types-mpls:priority; default "0"; description "Hold priority when insufficient bandwidth is available to set up LSP"; } } // container priority container include-admin-group { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-sr-te'"; presence "Enter the 'include-admin-group' context"; description "Enable the include-admin-group context"; leaf-list group { type leafref { path "../../../../../../routing-options/if-attribute/admin-group/group-name"; } min-elements 1; max-elements 32; description "Groups that are included when LSP path is setup"; } } // container include-admin-group container exclude-admin-group { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-sr-te'"; presence "Enter the 'exclude-admin-group' context"; description "Enable the exclude-admin-group context"; leaf-list group { type leafref { path "../../../../../../routing-options/if-attribute/admin-group/group-name"; } min-elements 1; max-elements 32; description "Groups to exclude when the LSP path is setup"; } } // container exclude-admin-group container bfd { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-sr-te'"; description "Enter the bfd context"; leaf bfd-liveness { type boolean; default "false"; description "Enable BFD on the RSVP LSP or S-BFD on the SR-TE LSP"; } leaf bfd-template { type leafref { path "../../../../../../bfd/bfd-template/name"; } description "BFD template"; } leaf lsp-ping-interval { when "not(../../../type) or ../../../type = 'p2p-rsvp'"; type union { type uint32 { range "60..300"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "60"; description "Interval for periodic LSP ping for BFD bootstrapping"; } leaf wait-for-up-timer { when "not(../../../type) or ../../../type = 'p2p-sr-te' or ../../../type = 'p2p-rsvp'"; type uint32 { range "1..60"; } units "seconds"; default "4"; description "Time to wait for BFD to become operationally available"; } } // container bfd } // list secondary list primary-p2mp-instance { when "not(../type) or ../type = 'p2mp-rsvp'"; key "instance-name"; max-elements 1; description "Enter the primary-p2mp-instance list instance"; leaf instance-name { type types-sros:named-item; description "The unique name which identifies this P2MP LSP for this virtual router."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LSP path"; } leaf adaptive { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp'"; type boolean; description "Enable/disable make-before-break functionality."; } leaf bandwidth { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2mp-rsvp' or ../../type = 'p2p-sr-te'"; type types-mpls:lsp-bandwidth; default "0"; description "Amount of bandwidth to be reserved."; } leaf hop-limit { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp' or ../../type = 'p2p-sr-te'"; type uint32 { range "2..255"; } description "The maximum number of hops that an LSP will traverse including the ingress and egress LSRs."; } leaf record { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp'"; type boolean; default "true"; description "Enable/disable recording of all hops."; } leaf record-label { when "not(../../type) or ../../type = 'p2p-rsvp' or ../../type = 'p2p-rsvp-bypass' or ../../type = 'p2mp-rsvp'"; type boolean; default "true"; description "Enable/disable recording of labels at each node or instance."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container include-admin-group { when "not(../../type) or ../../type = 'p2mp-rsvp'"; presence "Enter the 'include-admin-group' context"; description "Enable the include-admin-group context"; leaf-list group { type leafref { path "../../../../../../routing-options/if-attribute/admin-group/group-name"; } min-elements 1; max-elements 32; description "Groups that are included when LSP path is setup"; } } // container include-admin-group container exclude-admin-group { when "not(../../type) or ../../type = 'p2mp-rsvp'"; presence "Enter the 'exclude-admin-group' context"; description "Enable the exclude-admin-group context"; leaf-list group { type leafref { path "../../../../../../routing-options/if-attribute/admin-group/group-name"; } min-elements 1; max-elements 32; description "Groups to exclude when the LSP path is setup"; } } // container exclude-admin-group list s2l-path { when "not(../../type) or ../../type = 'p2mp-rsvp'"; key "path-name to"; max-elements 650; description "Enter the s2l-path list instance"; leaf path-name { type leafref { path "../../../../path/path-name"; } description "A label switch path (P2MP LSP) name."; } leaf to { type types-sros:ip-address; description "The IP address of the destination address of the S2L sub LSP."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the S2L sub-LSP for a P2MP LSP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list s2l-path } // list primary-p2mp-instance } // list lsp list auto-lsp { key "template-name"; max-elements 500; description "Enter the auto-lsp list instance"; leaf template-name { type leafref { path "../../lsp-template/template-name"; } description "Name of the LSP template used to automatically create and signal multiple LSP instances"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice auto-lsp-choice { case one-hop { leaf one-hop { type boolean; default "false"; description "Enable the automatic signaling of one-hop point-to-point LSPs"; } } case policy { leaf-list policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Specify policies to bind to this LSP template to enable automatic creation of mesh point to point (P2P) LSPs."; } } } } // list auto-lsp list static-lsp { key "lsp-name"; max-elements 1000; description "Enter the static-lsp list instance"; leaf lsp-name { type types-sros:named-item-64; description "Labeled Switch path name"; } leaf metric { type uint32 { range "1..16777215"; } sros-ext:auto-restart-to-modify; description "MPLS static LSP metric to select an LSP"; } leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the static LSP"; } leaf to { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "Destination IP address or the egress router for the LSP"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container push { presence "Enter the 'push' context"; sros-ext:auto-restart-to-modify; description "Enable the push context"; leaf out-label { type union { type uint32 { range "16..1048575"; } type enumeration { enum "implicit-null-label" { value 3; } } } sros-ext:auto-restart-to-modify; mandatory true; description "Push specific label onto the top of the outgoing packet's label stack"; } leaf next-hop { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; mandatory true; description "IP address for the next hop"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // container push } // list static-lsp container forwarding-policies { presence "Enter the 'forwarding-policies' context"; description "Enable the forwarding-policies context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MPLS forwarding policies"; } leaf reserved-label-block { type leafref { path "../../../mpls-labels/reserved-label-block/label-block-name"; } sros-ext:auto-restart-to-modify; description "Reserved label block"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list forwarding-policy { key "policy-name"; max-elements 65536; description "Enter the forwarding-policy list instance"; leaf policy-name { type types-sros:named-item-64; description "Forwarding policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the forwarding policy"; } leaf binding-label { type types-sros:mpls-label-or-zero; sros-ext:auto-restart-to-modify; description "Binding label"; } leaf endpoint { type types-sros:ip-unicast-address; sros-ext:auto-restart-to-modify; description "Configure endpoint address."; } leaf revert-timer { type uint32 { range "1..600"; } units "seconds"; description "Revert timer"; } leaf preference { type uint32 { range "1..255"; } sros-ext:auto-restart-to-modify; default "255"; description "Preference number"; } leaf metric { type uint32 { range "1..16777215"; } description "Configure metric."; } leaf tunnel-table-pref { type uint32 { range "1..255"; } default "255"; description "Configure tunnel table preference."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list next-hop-group { key "index"; max-elements 32; description "Enter the next-hop-group list instance"; leaf index { type uint32 { range "1..32"; } description "Index for next hop group"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of next hop group"; } leaf resolution-type { type enumeration { enum "direct" { value 1; } enum "indirect" { value 2; } } sros-ext:immutable; mandatory true; description "Resolution type for next hop group"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load balancing weight."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container primary-next-hop { presence "Enter the 'primary-next-hop' context"; description "Enable the primary-next-hop context"; leaf next-hop { type types-sros:ip-unicast-address; description "Next hop address"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list pushed-labels { key "index"; max-elements 10; description "Enter the pushed-labels list instance"; leaf index { type uint32 { range "1..10"; } description "Index for push-label."; } leaf label { type uint32 { range "1..1048575"; } mandatory true; description "Push label value."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pushed-labels } // container primary-next-hop container backup-next-hop { presence "Enter the 'backup-next-hop' context"; description "Enable the backup-next-hop context"; leaf next-hop { type types-sros:ip-unicast-address; description "Next hop address"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list pushed-labels { key "index"; max-elements 10; description "Enter the pushed-labels list instance"; leaf index { type uint32 { range "1..10"; } description "Index for push-label."; } leaf label { type uint32 { range "1..1048575"; } mandatory true; description "Push label value."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pushed-labels } // container backup-next-hop } // list next-hop-group container ingress-statistics { presence "Enter the 'ingress-statistics' context"; description "Enable the ingress-statistics context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of egress or ingress statistics"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ingress-statistics container egress-statistics { presence "Enter the 'egress-statistics' context"; description "Enable the egress-statistics context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of egress or ingress statistics"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container egress-statistics } // list forwarding-policy } // container forwarding-policies container pce-init-lsp { presence "Enter the 'pce-init-lsp' context"; description "Enable the pce-init-lsp context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container sr-te { presence "Enter the 'sr-te' context"; description "Enable the sr-te context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of SR-TE PCE-initiated LSP support"; } } // container sr-te } // container pce-init-lsp container ingress-statistics { description "Enter the ingress-statistics context"; list lsp { key "sender lsp-name"; description "Enter the lsp list instance"; leaf sender { type types-sros:ip-unicast-address; description "Sender address"; } leaf lsp-name { type types-sros:named-item-64; description "Administrative name for Labeled Switch Path."; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf accounting-policy { type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Accounting policy ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for LSP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list lsp list p2mp-template-lsp { key "sender rsvp-session-name"; description "Enter the p2mp-template-lsp list instance"; leaf sender { type types-sros:ip-unicast-address; description "Sender address"; } leaf rsvp-session-name { type types-sros:named-item-64; description "RSVP session name"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf accounting-policy { type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Accounting policy ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for LSP"; } leaf max-stats { type uint32 { range "1..8191"; } default "8191"; description "Maximum number of statistic indices"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list p2mp-template-lsp list p2p-template-lsp { key "sender rsvp-session-name"; description "Enter the p2p-template-lsp list instance"; leaf sender { type types-sros:ip-unicast-address; description "Sender address"; } leaf rsvp-session-name { type types-sros:named-item-64; description "RSVP session name"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf accounting-policy { type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Accounting policy ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for LSP"; } leaf max-stats { type uint32 { range "1..8191"; } default "8191"; description "Maximum number of statistic indices"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list p2p-template-lsp } // container ingress-statistics container aux-stats { presence "Enter the 'aux-stats' context"; description "Enable the aux-stats context"; leaf sr { type boolean; default "false"; description "Count Segment Routing (SR) traffic in the auxiliary MPLS statistics table"; } } // container aux-stats container sr-te-resignal { description "Enter the sr-te-resignal context"; leaf resignal-timer { type uint32 { range "30..10080"; } units "minutes"; description "Resignal timer for SR-TE LSPs"; } leaf resignal-on-igp-event { type boolean; default "false"; description "Re-optimize SR-TE LSPs upon IGP link events"; } } // container sr-te-resignal } // container mpls container msdp { when "../router-name = 'Base'"; presence "Enter the 'msdp' context"; description "Enable the msdp context"; leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf data-encapsulation { type boolean; default "true"; description "Enable/Disable encapsulation of multicast data used by MSDP"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "The route table(s) for RPF lookup."; } leaf source-active-cache-lifetime { type uint32 { range "90..600"; } units "seconds"; default "90"; description "Lifetime given to SA cache entries when created or refreshed"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate list group { key "name"; description "Enter the group list instance"; leaf name { type types-sros:named-item; description "The peer group name"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf mode { type enumeration { enum "standard" { value 1; } enum "mesh-group" { value 2; } } default "standard"; description "Topology of groups of peers"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf default-peer { type boolean; default "false"; description "Enable/Disable default peer as MSDP peer"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "The authentication key to be used for a specific MSDP peer group peering session"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate } // list peer } // list group list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf default-peer { type boolean; default "false"; description "Enable/Disable default peer as MSDP peer"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "The authentication key to be used for a specific MSDP peering session"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate } // list peer list source { key "ip-prefix"; description "Enter the source list instance"; leaf ip-prefix { type types-sros:ipv4-unicast-prefix; description "The IP address of the sources from which the source active messages would be accepted"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP source"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list source } // container msdp container nat { when "../router-name = 'Base'"; presence "Enter the 'nat' context"; description "Enable the nat context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container inside { description "Enter the inside context"; container l2-aware { description "Enter the l2-aware context"; list subscribers { key "prefix"; description "Add a list entry for subscribers"; leaf prefix { type types-sros:ipv4-prefix-with-host-bits; description "Layer-2 Aware NAT subscriber prefix"; } } // list subscribers } // container l2-aware container large-scale { description "Enter the large-scale context"; leaf nat-policy { type leafref { path "../../../../../service/nat/nat-policy/name"; } sros-ext:isa-auto-clear-on-modify; description "NAT policy for LSN"; } container nat44 { description "Enter the nat44 context"; leaf max-subscriber-limit { type types-nat:lsn-max-subscriber-limit; sros-ext:isa-auto-clear-on-modify; description "Largest value for all subscriber limits in each deterministic pool"; } list destination-prefix { key "ip-prefix-length"; max-elements 6144; description "Enter the destination-prefix list instance"; leaf ip-prefix-length { type types-sros:ipv4-unicast-prefix; description "Traffic sent to destinations within this prefix will be NATed"; } leaf nat-policy { type leafref { path "../../../../../../../service/nat/nat-policy/name"; } sros-ext:isa-auto-clear-on-modify; description "NAT policy"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list destination-prefix container deterministic { description "Enter the deterministic context"; list policy-map { key "source-prefix"; description "Enter the policy-map list instance"; leaf source-prefix { type types-sros:ipv4-unicast-prefix; description "Source prefix that adds traffic to NAT pool"; } leaf nat-policy { type leafref { path "../../../../../../../../service/nat/nat-policy/name"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; mandatory true; description "NAT policy"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this prefix"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list map { key "from to"; description "Enter the map list instance"; leaf from { type types-sros:ipv4-address; description "Beginning of the range for IPv4 addresses that is mapped on the inside to outside IPv4 addresses"; } leaf to { type types-sros:ipv4-address; description "Ending of the range for IPv4 addresses that is mapped on the inside to outside IPv4 addresses"; } leaf first-outside-address { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "IPv6 address range that is mapped to outside IPv4 address"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list map } // list policy-map } // container deterministic } // container nat44 container dual-stack-lite { description "Enter the dual-stack-lite context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Dual Stack Lite"; } leaf max-subscriber-limit { type types-nat:lsn-max-subscriber-limit; sros-ext:isa-auto-clear-on-modify; description "Largest value for all subscriber limits in each deterministic pool"; } leaf subscriber-prefix-length { type types-nat:ipv6-subscriber-prefix-length; sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; description "IPv6 prefix length of the Dual Stack Lite subscribers"; } list endpoint { key "address"; max-elements 128; description "Enter the endpoint list instance"; leaf address { type types-sros:ipv6-address; description "Dual Stack Lite IPv6 address"; } leaf ip-fragmentation { type types-nat:ip-fragmentation; description "Fragmentation control of the AFTR originated downstream IPv6 traffic"; } leaf tunnel-mtu { type uint32 { range "512..9212"; } default "1500"; description "Maximum size of IPv4 packet inside of DS-Lite tunnel"; } leaf reassembly { type boolean; default "false"; description "Reassembly of IPv6 payload datagrams"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list endpoint container deterministic { description "Enter the deterministic context"; list policy-map { key "source-prefix"; description "Enter the policy-map list instance"; leaf source-prefix { type types-sros:ipv6-unicast-prefix; description "Source prefix that adds traffic to NAT pool"; } leaf nat-policy { type leafref { path "../../../../../../../../service/nat/nat-policy/name"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; mandatory true; description "NAT policy"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this prefix"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list map { key "from to"; description "Enter the map list instance"; leaf from { type types-sros:ipv6-prefix; description "Beginning of the range for IPv6 addresses that is mapped on the inside to outside IPv6addresses"; } leaf to { type types-sros:ipv6-prefix; description "Ending of the range for IPv6 addresses that is mapped on the inside to outside IPv6 addresses"; } leaf first-outside-address { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "IPv6 address range that is mapped to outside IPv4 address"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list map } // list policy-map } // container deterministic } // container dual-stack-lite container nat64 { presence "Enter the 'nat64' context"; description "Enable the nat64 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NAT64"; } leaf drop-zero-ipv4-checksum { type boolean; default "false"; description "Drop UDP datagrams with zero IPv4 checksum"; } leaf insert-ipv6-fragment-header { type boolean; default "false"; description "Include IPv6 fragment header to indicate that the sender allows fragmentation"; } leaf ip-fragmentation { type types-nat:ip-fragmentation; description "Control fragmentation of originated downstream IPv6 traffic"; } leaf ipv6-mtu { type uint32 { range "1280..9212"; } default "1520"; description "Size of the IPv6 downstream packet in NAT64"; } leaf prefix { type types-sros:ipv6-prefix; sros-ext:isa-auto-clear-on-modify; default "64:ff9b::/96"; description "IPv6 prefix to derive the IPv6 address from the IPv4 address"; } leaf subscriber-prefix-length { type types-nat:ipv6-subscriber-prefix-length; sros-ext:isa-auto-clear-on-modify; description "IPv6 prefix length for the NAT64 subscribers"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container tos { description "Enter the tos context"; container upstream { description "Enter the upstream context"; leaf set-tos { type union { type enumeration { enum "use-ipv6" { value -1; } } type uint32 { range "0..255"; } } default "use-ipv6"; description "TOS/DSCP bits in IPv4 frame in the upstream direction"; } } // container upstream container downstream { description "Enter the downstream context"; leaf use-ipv4 { type boolean; default "false"; description "Copy TOS/DSCP bits from the incoming IPv4 frame to the outgoing IPv6 frame"; } } // container downstream } // container tos } // container nat64 container subscriber-identification { description "Enter the subscriber-identification context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of subscriber identification"; } leaf description { type types-sros:description; description "Text description"; } leaf drop-unidentified-traffic { type boolean; default "false"; description "Drop traffic from unidentified flows"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container attribute { description "Enter the attribute context"; leaf vendor { type types-nat:nat-subscriber-identification-attr-vendor-id; default "nokia"; description "The RADIUS Vendor"; } leaf type { type types-nat:nat-subscriber-identification-attr-type; default "alc-sub-string"; description "The RADIUS Vendor-Id value corresponding with this vendor."; } } // container attribute container radius-proxy-server { presence "Enter the 'radius-proxy-server' context"; description "Enable the radius-proxy-server context"; leaf router-instance { type string; mandatory true; description "Router instance"; } leaf server { type types-sros:named-item; mandatory true; description "Server name"; } } // container radius-proxy-server } // container subscriber-identification container dnat-only { description "Enter the dnat-only context"; leaf source-prefix-list { type leafref { path "../../../../../../service/nat/prefix-list/name"; } description "NAT prefix list that contains source IP addresses"; } } // container dnat-only container redundancy { description "Enter the redundancy context"; leaf peer { type types-sros:ipv4-unicast-address; description "IP address of the NAT redundancy peer for this virtual router instance"; } leaf peer6 { type types-sros:ipv6-unicast-address; description "IPv6 address of the NAT redundancy peer for this virtual router instance"; } leaf steering-route { type types-sros:ipv4-unicast-prefix; description "IP address and prefix length of the steering route"; } } // container redundancy } // container large-scale } // container inside container outside { description "Enter the outside context"; leaf mtu { type uint32 { range "512..9000"; } description "MTU for downstream traffic"; } container filters { description "Enter the filters context"; container downstream { description "Enter the downstream context"; leaf ipv4 { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container downstream container upstream { description "Enter the upstream context"; leaf ipv4 { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container upstream } // container filters container dnat-only { description "Enter the dnat-only context"; leaf route-limit { type uint32 { range "1..131072"; } default "32768"; description "Number that is used to limit internal routes for downstream traffic"; } } // container dnat-only list pool { key "name"; max-elements 4096; description "Enter the pool list instance"; leaf name { type types-sros:named-item; description "NAT pool name"; } leaf type { type types-nat:pool-type; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; mandatory true; description "NAT pool type"; } leaf description { type types-sros:description; description "Text description"; } leaf mode { type types-nat:pool-mode; sros-ext:isa-auto-clear-on-modify; description "Mode of operation of this NAT address pool"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the outside NAT pool"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice isa { mandatory true; case nat { leaf nat-group { type leafref { path "../../../../../isa/nat-group/id"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "Create a NAT group"; } } case wlan-gw { leaf wlan-gw-group { type leafref { path "../../../../../isa/wlan-gw-group/id"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "Create a WLAN GW group for NAT"; } } } container applications { description "Enter the applications context"; leaf agnostic { when "../../type = 'large-scale'"; type boolean; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; default "false"; description "NAT pool to create in the outside routing context"; } } // container applications container port-forwarding { description "Enter the port-forwarding context"; leaf dynamic-block-reservation { when "not(../../type = 'l2-aware')"; type boolean; sros-ext:isa-auto-clear-on-modify; default "false"; description "Dynamic block to reserve for each subscriber with a forwarding port"; } leaf range-end { type uint16 { range "0|1023..65535"; } sros-ext:isa-auto-clear-on-modify; description "End of the wildcard range for port forwards"; } } // container port-forwarding container port-reservation { description "Enter the port-reservation context"; choice port-reservation { default "port-blocks"; case port-blocks { leaf port-blocks { type uint16 { range "1..64512"; } sros-ext:isa-auto-clear-on-modify; description "Number of dynamic port blocks per outside IP address"; } } case ports { leaf ports { type uint16 { range "1..32256"; } sros-ext:isa-auto-clear-on-modify; description "Number of ports in each dynamic port block within the pool"; } } } } // container port-reservation container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; mandatory true; description "Percentage for high watermark"; } leaf low { type types-sros:percent; mandatory true; description "Percentage for low watermark"; } } // container watermarks container large-scale { when "../type = 'large-scale'"; description "Enter the large-scale context"; leaf subscriber-limit { type uint32 { range "1..65535"; } sros-ext:isa-auto-clear-on-modify; description "Maximum number of subscribers per IP address"; } container redundancy { description "Enter the redundancy context"; choice redundancy { default "export-monitor-route"; case follow-pool { container follow { description "Enter the follow context"; leaf router-instance { type string; description "The virtual router instance of the pool."; } leaf name { type types-sros:named-item; description "NAT pool name"; } } // container follow } case export-monitor-route { leaf export-route { type types-sros:ipv4-unicast-prefix; description "Route to export to the peer"; } leaf monitor-route { type types-sros:ipv4-unicast-prefix; description "Monitor the peer route"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multi-chassis redundancy"; } } } } // container redundancy container deterministic { description "Enter the deterministic context"; leaf port-reservation { type types-nat:port-number; sros-ext:isa-auto-clear-on-modify; description "Number of ports per deterministic port-block"; } } // container deterministic } // container large-scale container l2-aware { when "../type = 'l2-aware'"; description "Enter the l2-aware context"; leaf external-assignment { type boolean; sros-ext:isa-auto-clear-on-modify; default "false"; description "External IP address for Layer-2-aware"; } } // container l2-aware list address-range { key "start end"; max-elements 4096; description "Enter the address-range list instance"; leaf start { type types-sros:ipv4-unicast-address; description "Start address of this range"; } leaf end { type types-sros:ipv4-unicast-address; description "End address of this range"; } leaf description { type types-sros:description; description "Text description"; } leaf drain { type boolean; default "false"; description "Start or stop draining this NAT address range"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address-range } // list pool } // container outside container map { description "Enter the map context"; list map-domain { key "domain-name"; description "Add a list entry for map-domain"; leaf domain-name { type leafref { path "../../../../../service/nat/map-t/domain/name"; } description "MAP domain name"; } } // list map-domain } // container map } // container nat container origin-validation { when "../router-name = 'Base' or ../router-name = 'management'"; description "Enter the origin-validation context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list static-entry { key "ip-prefix upto origin-as"; description "Enter the static-entry list instance"; leaf ip-prefix { type types-sros:ip-unicast-prefix; description "IP address prefix to match for the origin validation."; } leaf upto { type uint32 { range "1..128"; } description "The max value of the prefix length for ip-prefix address."; } leaf origin-as { type inet:as-number; description "The autonomous system number to be advertised to this peer."; } leaf valid { type boolean; default "true"; description "Specifies whether the route entry corresponding to the autonomous number is valid (true) or invalid (false)."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list static-entry list rpki-session { key "ip-address"; description "Enter the rpki-session list instance"; leaf ip-address { type types-sros:ip-address; description "IPv4, IPv6 or link local address of a local cache server."; } leaf connect-retry { type uint32 { range "1..65535"; } units "seconds"; default "120"; description "RPKI Connect Retry timer value"; } leaf description { type types-sros:description; description "Text description"; } leaf local-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Address of the local end of the RPKI session."; } leaf port { type uint32 { range "0..65535"; } sros-ext:auto-restart-to-modify; default "323"; description "Destination port number to be used to connect the cache server."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the RPKI session"; } leaf stale-time { type uint32 { range "60..3600"; } units "seconds"; default "3600"; description "Specifies the maximum length of time that prefix origin records learned from the cache server remain valid after the session with the cache server goes down."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container refresh-time { description "Enter the refresh-time context"; leaf value { type uint32 { range "30..32767"; } units "seconds"; default "300"; description "Triggers the sending of periodic Serial Query PDUs for purposes of liveness detection."; } leaf hold-time { type uint32 { range "60..65535"; } units "seconds"; default "600"; description "Specifies the length of time in seconds that the session is to be considered UP without any indication that the cache server is alive and reachable."; } } // container refresh-time } // list rpki-session } // container origin-validation list ospf { key "ospf-instance"; max-elements 32; description "Enter the ospf list instance"; leaf ospf-instance { type uint32 { range "0..31"; } description "Value for the integrated OSPF instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the OSPF instance"; } leaf router-id { type types-igp:router-id; sros-ext:auto-restart-to-modify; description "Unique router ID for the OSPF instance"; } leaf advertise-router-capability { type types-ospf:advertise-router-capability-type; default "false"; description "Allow router advertisement capabilities"; } leaf advertise-tunnel-link { type boolean; default "false"; description "Allow router advertisement capabilities"; } leaf external-preference { type int32 { range "1..255"; } default "150"; description "Preference for OSPF external routes"; } leaf-list export-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf ldp-over-rsvp { type boolean; default "false"; description "Allow LSP over RSVP in this OSPF instance"; } leaf ldp-sync { type boolean; default "true"; description "Use IGP-LDP synchronization feature on all interfaces participating in routing protocol"; } leaf multicast-import { type boolean; default "false"; description "Submit routes into the multicast Route Table Manager"; } leaf overload-include-ext-1 { type boolean; default "false"; description "Advertise external type-1 routes with maximum metric value in cases of overload"; } leaf overload-include-ext-2 { type boolean; default "false"; description "Advertise external type-2 routes with maximum metric value in cases of overload"; } leaf overload-include-stub { type boolean; default "false"; description "Advertise all stub interfaces with maximum metric value in cases of overload"; } leaf overload { type boolean; default "false"; description "Change overload state of the local router to appear to be overloaded"; } leaf preference { type int32 { range "1..255"; } default "10"; description "Preference for OSPF internal routes"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; default "100000000"; description "Bandwidth to reference the default costing of interfaces"; } leaf traffic-engineering { type boolean; default "false"; description "Calculate traffic engineering route"; } leaf unicast-import { type boolean; default "true"; description "Submit routes into the unicast Route Table Manager"; } leaf compatible-rfc1583 { type boolean; default "true"; description "OSPF summary and external route calculations"; } leaf multi-instance { type boolean; default "false"; description "Enable/disable OSPF Multi Instance Extensions"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container external-db-overflow { presence "Enter the 'external-db-overflow' context"; description "Enable the external-db-overflow context"; leaf limit { type uint32 { range "0..2147483647"; } default "0"; description "Number of external LSA at which overload is triggered"; } leaf interval { type uint32 { range "0..2147483647"; } units "seconds"; default "0"; description "Time during which the router operates in overload"; } } // container external-db-overflow container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } mandatory true; description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "1..1800"; } units "seconds"; description "Time during which the router operates in overload state before reestablishing normal operations"; } } // container overload-on-boot container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; leaf prefix-list { type leafref { path "../../../../../policy-options/prefix-list/name"; } description "List used to select routes processed at higher priority through OSPF route calculation process"; } } // container high } // container rib-priority container rtr-adv-lsa-limit { presence "Enter the 'rtr-adv-lsa-limit' context"; description "Enable the rtr-adv-lsa-limit context"; leaf max-lsa-count { type uint32 { range "1..max"; } mandatory true; description "Maximum number of LSAs allowed to be advertised by one router"; } leaf log-only { type boolean; default "false"; description "Log the event without triggering overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Percentage of the maximum LSA count at which a warning is given"; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Maximum timeout for overload when the maximum LSA count is reached"; } } // container rtr-adv-lsa-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for OSPF"; } leaf strict-lsa-checking { type boolean; default "true"; description "Perform strict LSA checking during graceful restart helper"; } } // container graceful-restart container traffic-engineering-options { description "Enter the traffic-engineering-options context"; leaf sr-te { type enumeration { enum "false" { value 0; } enum "legacy" { value 1; } enum "application-specific-link-attributes" { value 2; } } default "false"; description "Advertisement of link attributes for SR-TE"; } } // container traffic-engineering-options container timers { description "Enter the timers context"; leaf incremental-spf-wait { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time before an incremental SPF calculation is started"; } leaf lsa-accumulate { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time for accumulating multiple LSAs before advertising them to neighbors"; } leaf lsa-arrival { type uint32 { range "0..600000"; } units "milliseconds"; default "1000"; description "Minimum delay between receipt of the same LSAs arriving from neighbors"; } leaf redistribute-delay { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Hold down timer for external routes that are redistributed in OSPF"; } container lsa-generate { description "Enter the lsa-generate context"; leaf max-lsa-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of an LSA being generated"; } leaf lsa-initial-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "First waiting period between link state advertisements LSA originates"; } leaf lsa-second-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Hold time between the first and second LSA generation"; } } // container lsa-generate container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after a topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between the first and second SPF calculation"; } } // container spf-wait } // container timers container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude container remote-lfa { presence "Enter the 'remote-lfa' context"; description "Enable the remote-lfa context"; leaf max-pq-cost { type uint32; default "65535"; description "Maximum cost of a destination node during reverse SPF calculation"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; leaf max-pq-nodes { type uint32 { range "1..32"; } default "16"; description "Specifies the maximum number of PQ nodes."; } } // container node-protect } // container remote-lfa container ti-lfa { presence "Enter the 'ti-lfa' context"; description "Enable the ti-lfa context"; leaf max-sr-frr-labels { type uint32 { range "0..3"; } default "2"; description "Maximum number of labels that TI-LFA backup next hop can use"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; } // container node-protect } // container ti-lfa } // container loopfree-alternate container database-export { presence "Enter the 'database-export' context"; description "Enable the database-export context"; leaf igp-identifier { type uint64; description "Unique identifier for the IGP instance in the BGP-LS NLRI"; } container bgp-ls-identifier { presence "Enter the 'bgp-ls-identifier' context"; description "Enable the bgp-ls-identifier context"; leaf value { type uint32; default "0"; description "BGP-LS identifier that is sent in the BGP-LS NLRI"; } } // container bgp-ls-identifier } // container database-export container asbr { presence "Enter the 'asbr' context"; description "Enable the asbr context"; leaf trace-path { type union { type int32 { range "0..31"; } type enumeration { enum "none" { value -1; } } } default "none"; description "Domain identity"; } } // container asbr container entropy-label { description "Enter the entropy-label context"; leaf override-tunnel-elc { type boolean; default "false"; description "Received entropy label capability advertisement to override"; } } // container entropy-label container segment-routing { description "Enter the segment-routing context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing"; } leaf adj-sid-hold { type types-igp:adj-sid-hold-type; units "seconds"; default "15"; description "Adjacency SID hold time"; } leaf entropy-label { type boolean; description "Entropy label capability"; } leaf export-tunnel-table { type types-igp:export-tunnel-table-type; description "Export tunnel table"; } leaf srlb { type leafref { path "../../../mpls-labels/reserved-label-block/label-block-name"; } description "Segment routing local block"; } leaf tunnel-mtu { type types-router:ip-mtu-ext; description "Tunnel MTU size"; } leaf tunnel-table-pref { type uint32 { range "1..255"; } default "10"; description "Preference of SR tunnels created by the IGP instance"; } leaf class-forwarding { type boolean; default "false"; description "Allow CBF with ECMP over RSVP-TE LSPs as IGP shortcuts"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container prefix-sid-range { presence "Enter the 'prefix-sid-range' context"; description "Enable the prefix-sid-range context"; choice type { case global { leaf global { type empty; description "Allows BGP global SR range"; } } case local { leaf start-label { type uint32 { range "0..524287"; } sros-ext:auto-restart-to-modify; default "0"; description "Lower bound value for the local label offset"; } leaf max-index { type uint32 { range "0..524287"; } sros-ext:auto-restart-to-modify; default "1"; description "Upper bound value for the local SID index"; } } } } // container prefix-sid-range container backup-node-sid { presence "Enter the 'backup-node-sid' context"; description "Enable the backup-node-sid context"; leaf ip-prefix { type types-sros:ipv4-unicast-prefix; description "IP prefix and prefix length for the backup-node-sid"; } choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container backup-node-sid container egress-statistics { description "Enter the egress-statistics context"; leaf adj-set { type boolean; default "false"; description "Enable statistics on Adjacency Sets"; } leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container egress-statistics container ingress-statistics { description "Enter the ingress-statistics context"; leaf adj-set { type boolean; default "false"; description "Enable statistics on Adjacency Sets"; } leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container ingress-statistics container maximum-sid-depth { description "Enter the maximum-sid-depth context"; leaf override-bmi { type int32 { range "0..12"; } description "Value to override the announced node MSD-BMI value"; } leaf override-erld { type int32 { range "0..15"; } description "Value to override the announced node MSD-ERLD value"; } } // container maximum-sid-depth list adjacency-set { key "id"; description "Enter the adjacency-set list instance"; leaf id { type uint32 { range "1..max"; } description "Non-zero identifier for a given adjacency set"; } leaf parallel { type boolean; default "true"; description "Require all members of the adjacency set to terminate on the same neighboring node"; } leaf advertise { type boolean; default "true"; description "Advertise the adjacency set when all links terminate on the same neighboring node"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container sid { presence "Enter the 'sid' context"; description "Enable the sid context"; choice type { case label { leaf label { type int64 { range "1..1048575"; } description "Adjacency SID"; } } } } // container sid } // list adjacency-set container mapping-server { description "Enter the mapping-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the OSPF segment routing mapping server"; } list node-sid-map { key "sid-index"; description "Enter the node-sid-map list instance"; leaf sid-index { type uint32; description "Start SID index for the node SID mapping"; } leaf range { type uint32 { range "1..65535"; } sros-ext:immutable; default "1"; description "Number of prefixes to be mapped by the Extended Range Prefix TLV"; } leaf ip-prefix { type types-sros:ipv4-prefix; sros-ext:immutable; mandatory true; description "Starting prefix of the mapping"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container scope { description "Enter the scope context"; choice scope { default "as"; case area { leaf area { type leafref { path "../../../../../area/area-id"; } description "Area ID in which the advertise Extended Range TLV is advertised"; } } case as { leaf as { type empty; description "Advertise Extended Range TLV in whole autonomous system"; } } } } // container scope } // list node-sid-map } // container mapping-server } // container segment-routing container igp-shortcut { description "Enter the igp-shortcut context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IGP shortcuts"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container tunnel-next-hop { description "Enter the tunnel-next-hop context"; list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type types-igp:tunn-next-hop-family-type-v4-only; description "Address family type for tunnel next-hop"; } leaf resolution { type types-sros:resolution-type; description "Resolution state for IGP shortcut tunnels"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resolution-filter { description "Enter the resolution-filter context"; leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } } // container resolution-filter } // list family } // container tunnel-next-hop } // container igp-shortcut list area { key "area-id"; description "Enter the area list instance"; leaf area-id { type types-sros:ipv4-address; description "Area-ID attribute"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf blackhole-aggregate { type boolean; default "true"; description "Install a low priority blackhole route to avoid loops"; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Route that is exported as Type 3 Summary-LSAs or OSPFv3 Inter-Area-Prefix-LSA between areas"; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Route that is imported as summary type 3/inter-area-prefix-LSA from another area into this area"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude specific interface or all interfaces participating in all OSPF areas in SPF LFA computation"; } leaf database-export-exclude { type boolean; default "false"; description "Exclude IGP link-state information of OSPF area from being exported into extended TE-DB"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container stub { presence "Enter the 'stub' context"; description "Enable the stub context"; leaf default-metric { type uint32 { range "1..16777214"; } default "1"; description "Metric used by the ABR for the default route into the stub area"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the stub area on an ABR"; } } // container stub container bier { description "Enter the bier context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BIER"; } leaf template { type leafref { path "../../../../bier/template/template-name"; } description "BIER template name"; } } // container bier container nssa { presence "Enter the 'nssa' context"; description "Enable the nssa context"; leaf redistribute-external { type boolean; default "true"; description "Redistribute external routes into the NSSA"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the NSSA on an ABR"; } list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type types-sros:ipv4-unicast-prefix; description "ip-prefix a.b.c.d (host bits must be 0) mask [0..32]"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list area-range container originate-default-route { presence "Enter the 'originate-default-route' context"; description "Enable the originate-default-route context"; leaf type-nssa { type boolean; default "false"; description "Generate a default route using NSSA-LSA type"; } leaf adjacency-check { type boolean; default "true"; description "Default route to remove if there is no adjacency"; } } // container originate-default-route } // container nssa list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type types-sros:ipv4-unicast-prefix; description "ip-prefix a.b.c.d (host bits must be 0) mask [0..32]"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list area-range list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Router interface name"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf advertise-subnet { type boolean; default "true"; description "Advertise point-to-point interfaces as subnet routes"; } leaf interface-type { type types-ospf:interface-type; sros-ext:immutable; description "Interface type to broadcast or point-to-point"; } leaf lsa-filter-out { type types-ospf:lsa-filter-out; default "none"; description "LSA flooding reduction"; } leaf metric { type uint32 { range "1..65535"; } description "Explicit route cost metric that is applied to the interface"; } leaf mtu { type types-router:ip-mtu-ext; description "MTU for the OSPF to use on the interface"; } leaf passive { type boolean; description "Allow interface to be advertised as an OSPF interface without running the OSPF protocol"; } leaf poll-interval { type uint32; units "seconds"; default "120"; description "Time between two Hello packets to a non-adjacent OSPF NBMA neighbor"; } leaf priority { type uint16 { range "0..255"; } default "1"; description "Priority of the interface to apply in the designated router election on the subnet"; } leaf rib-priority { type types-ospf:rib-priority; description "RIB priority for OSPF"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load-balancing-weight."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "40"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf authentication-keychain { type leafref { path "../../../../../system/security/keychains/keychain/keychain-name"; } description "Configure TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Authentication key"; } leaf authentication-type { type types-ospf:authentication-type; description "Authentication type used on OSPF interface"; } leaf sid-protection { type boolean; default "true"; description "Allow adjacency SID protection by LFA and remote LFA"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf remain-down-on-failure { type boolean; default "false"; description "Force adjacency down on BFD failure and remain down until BFD session returns"; } } // container bfd-liveness container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable fast re-route capability for OSPF at interface level (only valid for primary interface)"; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type leafref { path "../../../../../../../routing-options/route-next-hop-policy/template/template-name"; } mandatory true; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate container node-sid { presence "Enter the 'node-sid' context"; description "Enable the node-sid context"; leaf clear-n-flag { type boolean; default "false"; description "Specifies whether the node-sid flag (N-flag) should be cleared."; } choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "Specifies IPvX node SID label for this interface."; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container node-sid container adjacency-sid { presence "Enter the 'adjacency-sid' context"; description "Enable the adjacency-sid context"; choice type { case label { leaf label { type int64 { range "1..1048575"; } description "Adjacency SID"; } } } } // container adjacency-sid list message-digest-key { key "key-id"; description "Enter the message-digest-key list instance"; leaf key-id { type uint16 { range "1..255"; } description "Message digest index"; } leaf md5 { type types-sros:encrypted-leaf { length "1..51"; } mandatory true; description "MD5 hash key"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list message-digest-key list neighbor { key "address"; description "Add a list entry for neighbor"; leaf address { type types-sros:ipv4-unicast-address; description "Neighbor address"; } } // list neighbor list adjacency-set { key "id"; max-elements 1024; description "Add a list entry for adjacency-set"; leaf id { type leafref { path "../../../../segment-routing/adjacency-set/id"; } description "Adjacency set identity"; } } // list adjacency-set } // list interface list virtual-link { key "router-id transit-area"; description "Enter the virtual-link list instance"; leaf router-id { type types-sros:ipv4-address; description "Router identity of the virtual link neighbor"; } leaf transit-area { type leafref { path "../../../../../router/ospf/area/area-id"; } description "Transit area that links backbone area to area without physical connection with the backbone"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "60"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf authentication-keychain { type leafref { path "../../../../../system/security/keychains/keychain/keychain-name"; } description "Configure TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Authentication key"; } leaf authentication-type { type types-ospf:authentication-type; description "Authentication type used on OSPF interface"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list message-digest-key { key "key-id"; description "Enter the message-digest-key list instance"; leaf key-id { type uint16 { range "1..255"; } description "Message digest index"; } leaf md5 { type types-sros:encrypted-leaf { length "1..51"; } mandatory true; description "key - [16 chars max] hash/hash2-key - [44 chars max] (for hash scheme)"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list message-digest-key } // list virtual-link } // list area } // list ospf list ospf3 { key "ospf-instance"; max-elements 32; description "Enter the ospf3 list instance"; leaf ospf-instance { type uint32 { range "0..31|64..95"; } description "Value for the integrated OSPF instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the OSPF instance"; } leaf router-id { type types-igp:router-id; sros-ext:auto-restart-to-modify; description "Unique router ID for the OSPF instance"; } leaf advertise-router-capability { type types-ospf:advertise-router-capability-type; default "false"; description "Allow router advertisement capabilities"; } leaf external-preference { type int32 { range "1..255"; } default "150"; description "Preference for OSPF external routes"; } leaf-list export-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf ldp-sync { type boolean; default "true"; description "Use IGP-LDP synchronization feature on all interfaces participating in routing protocol"; } leaf multicast-import { type boolean; default "false"; description "Submit routes into the multicast Route Table Manager"; } leaf overload-include-ext-1 { type boolean; default "false"; description "Advertise external type-1 routes with maximum metric value in cases of overload"; } leaf overload-include-ext-2 { type boolean; default "false"; description "Advertise external type-2 routes with maximum metric value in cases of overload"; } leaf overload-include-stub { type boolean; default "false"; description "Advertise all stub interfaces with maximum metric value in cases of overload"; } leaf overload { type boolean; default "false"; description "Change overload state of the local router to appear to be overloaded"; } leaf preference { type int32 { range "1..255"; } default "10"; description "Preference for OSPF internal routes"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; default "100000000"; description "Bandwidth to reference the default costing of interfaces"; } leaf unicast-import { type boolean; default "true"; description "Submit routes into the unicast Route Table Manager"; } leaf extended-lsa { type types-ospf:extended-lsa-mode; sros-ext:auto-restart-to-modify; default "sparse"; description "Extended LSA format in an OSPFv3 area"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container external-db-overflow { presence "Enter the 'external-db-overflow' context"; description "Enable the external-db-overflow context"; leaf limit { type uint32 { range "0..2147483647"; } default "0"; description "Number of external LSA at which overload is triggered"; } leaf interval { type uint32 { range "0..2147483647"; } units "seconds"; default "0"; description "Time during which the router operates in overload"; } } // container external-db-overflow container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } mandatory true; description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "60..1800"; } units "seconds"; description "Time during which the router operates in overload state before reestablishing normal operations"; } } // container overload-on-boot container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; leaf prefix-list { type leafref { path "../../../../../policy-options/prefix-list/name"; } description "List used to select routes processed at higher priority through OSPF route calculation process"; } } // container high } // container rib-priority container rtr-adv-lsa-limit { presence "Enter the 'rtr-adv-lsa-limit' context"; description "Enable the rtr-adv-lsa-limit context"; leaf max-lsa-count { type uint32 { range "1..max"; } mandatory true; description "Maximum number of LSAs allowed to be advertised by one router"; } leaf log-only { type boolean; default "false"; description "Log the event without triggering overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Percentage of the maximum LSA count at which a warning is given"; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Maximum timeout for overload when the maximum LSA count is reached"; } } // container rtr-adv-lsa-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for OSPF"; } leaf strict-lsa-checking { type boolean; default "true"; description "Perform strict LSA checking during graceful restart helper"; } } // container graceful-restart container timers { description "Enter the timers context"; leaf incremental-spf-wait { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time before an incremental SPF calculation is started"; } leaf lsa-accumulate { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time for accumulating multiple LSAs before advertising them to neighbors"; } leaf lsa-arrival { type uint32 { range "0..600000"; } units "milliseconds"; default "1000"; description "Minimum delay between receipt of the same LSAs arriving from neighbors"; } leaf redistribute-delay { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Hold down timer for external routes that are redistributed in OSPF"; } container lsa-generate { description "Enter the lsa-generate context"; leaf max-lsa-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of an LSA being generated"; } leaf lsa-initial-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "First waiting period between link state advertisements LSA originates"; } leaf lsa-second-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Hold time between the first and second LSA generation"; } } // container lsa-generate container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after a topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between the first and second SPF calculation"; } } // container spf-wait } // container timers container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude container remote-lfa { presence "Enter the 'remote-lfa' context"; description "Enable the remote-lfa context"; leaf max-pq-cost { type uint32; default "65535"; description "Maximum cost of a destination node during reverse SPF calculation"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; leaf max-pq-nodes { type uint32 { range "1..32"; } default "16"; description "Specifies the maximum number of PQ nodes."; } } // container node-protect } // container remote-lfa container ti-lfa { presence "Enter the 'ti-lfa' context"; description "Enable the ti-lfa context"; leaf max-sr-frr-labels { type uint32 { range "0..3"; } default "2"; description "Maximum number of labels that TI-LFA backup next hop can use"; } container node-protect { presence "Enter the 'node-protect' context"; description "Enable the node-protect context"; } // container node-protect } // container ti-lfa } // container loopfree-alternate container database-export { presence "Enter the 'database-export' context"; description "Enable the database-export context"; leaf igp-identifier { type uint64; description "Specifies the value of the unique identifier of the IGP instance in the BGP-LS NLRI."; } container bgp-ls-identifier { presence "Enter the 'bgp-ls-identifier' context"; description "Enable the bgp-ls-identifier context"; leaf value { type uint32; default "0"; description "BGP-LS identifier that is sent in the BGP-LS NLRI"; } } // container bgp-ls-identifier } // container database-export container asbr { presence "Enter the 'asbr' context"; description "Enable the asbr context"; } // container asbr container segment-routing { description "Enter the segment-routing context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing"; } leaf adj-sid-hold { type types-igp:adj-sid-hold-type; units "seconds"; default "15"; description "Adjacency SID hold time"; } leaf tunnel-mtu { type types-router:ip-mtu-ext; description "Tunnel MTU size"; } leaf tunnel-table-pref { type uint32 { range "1..255"; } default "10"; description "Preference of SR tunnels created by the IGP instance"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container prefix-sid-range { presence "Enter the 'prefix-sid-range' context"; description "Enable the prefix-sid-range context"; choice type { case global { leaf global { type empty; description "Allows BGP global SR range"; } } case local { leaf start-label { type uint32 { range "0..524287"; } sros-ext:auto-restart-to-modify; default "0"; description "Lower bound value for the local label offset"; } leaf max-index { type uint32 { range "0..524287"; } sros-ext:auto-restart-to-modify; default "1"; description "Upper bound value for the local SID index"; } } } } // container prefix-sid-range container egress-statistics { description "Enter the egress-statistics context"; leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container egress-statistics container ingress-statistics { description "Enter the ingress-statistics context"; leaf adj-sid { type boolean; default "false"; description "Enable statistics on Adjacency SIDs"; } leaf node-sid { type boolean; default "false"; description "Enable statistics on Node SIDs"; } } // container ingress-statistics } // container segment-routing container igp-shortcut { description "Enter the igp-shortcut context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IGP shortcuts"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container tunnel-next-hop { description "Enter the tunnel-next-hop context"; list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type types-igp:tunn-next-hop-family-type; description "Specifies the address family for tunnel next hop."; } leaf resolution { type types-sros:resolution-type; description "Resolution state for IGP shortcut tunnels"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resolution-filter { description "Enter the resolution-filter context"; leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } } // container resolution-filter } // list family } // container tunnel-next-hop } // container igp-shortcut list area { key "area-id"; description "Enter the area list instance"; leaf area-id { type types-sros:ipv4-address; description "Area-ID attribute"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf blackhole-aggregate { type boolean; default "true"; description "Install a low priority blackhole route to avoid loops"; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Route that is exported as Type 3 Summary-LSAs or OSPFv3 Inter-Area-Prefix-LSA between areas"; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Route that is imported as summary type 3/inter-area-prefix-LSA from another area into this area"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude specific interface or all interfaces participating in all OSPF areas in SPF LFA computation"; } leaf database-export-exclude { type boolean; default "false"; description "Exclude IGP link-state information of OSPF area from being exported into extended TE-DB"; } leaf extended-lsa { type types-ospf:area-extended-lsa-mode; description "Extended LSA format in an OSPFv3 area"; } leaf key-rollover-interval { type uint32 { range "10..300"; } units "seconds"; default "10"; description "Key rollover interval"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container stub { presence "Enter the 'stub' context"; description "Enable the stub context"; leaf default-metric { type uint32 { range "1..16777214"; } default "1"; description "Metric used by the ABR for the default route into the stub area"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the stub area on an ABR"; } } // container stub container nssa { presence "Enter the 'nssa' context"; description "Enable the nssa context"; leaf redistribute-external { type boolean; default "true"; description "Redistribute external routes into the NSSA"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the NSSA on an ABR"; } list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type types-sros:ip-unicast-prefix; description "Address ranges to create on an ABR for route summarization or suppression"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list area-range container originate-default-route { presence "Enter the 'originate-default-route' context"; description "Enable the originate-default-route context"; leaf type-nssa { type boolean; default "false"; description "Generate a default route using NSSA-LSA type"; } leaf adjacency-check { type boolean; default "true"; description "Default route to remove if there is no adjacency"; } } // container originate-default-route } // container nssa list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type types-sros:ip-unicast-prefix; description "Address ranges to create on an ABR for route summarization or suppression"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list area-range list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Router interface name"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf interface-type { type types-ospf:interface-type; sros-ext:immutable; description "Interface type to broadcast or point-to-point"; } leaf lsa-filter-out { type types-ospf:lsa-filter-out; default "none"; description "LSA flooding reduction"; } leaf metric { type uint32 { range "1..65535"; } description "Explicit route cost metric that is applied to the interface"; } leaf mtu { type types-router:ip-mtu-ext; description "MTU for the OSPF to use on the interface"; } leaf passive { type boolean; description "Allow interface to be advertised as an OSPF interface without running the OSPF protocol"; } leaf poll-interval { type uint32; units "seconds"; default "120"; description "Time between two Hello packets to a non-adjacent OSPF NBMA neighbor"; } leaf priority { type uint16 { range "0..255"; } default "1"; description "Priority of the interface to apply in the designated router election on the subnet"; } leaf rib-priority { type types-ospf:rib-priority; description "RIB priority for OSPF"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load-balancing-weight."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "40"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf sid-protection { type boolean; default "true"; description "Allow adjacency SID protection by LFA and remote LFA"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf remain-down-on-failure { type boolean; default "false"; description "Force adjacency down on BFD failure and remain down until BFD session returns"; } } // container bfd-liveness container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable fast re-route capability for OSPF at interface level (only valid for primary interface)"; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type leafref { path "../../../../../../../routing-options/route-next-hop-policy/template/template-name"; } mandatory true; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate container node-sid { presence "Enter the 'node-sid' context"; description "Enable the node-sid context"; leaf clear-n-flag { type boolean; default "false"; description "Specifies whether the node-sid flag (N-flag) should be cleared."; } choice type { case label { leaf label { type int64 { range "1..4294967295"; } description "IPvX node SID index for this interface"; } } case index { leaf index { type int64 { range "0..4294967295"; } description "IPvX node SID index for this interface"; } } } } // container node-sid container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf inbound { type leafref { path "../../../../../../ipsec/static-sa/name"; } mandatory true; description "sa-name"; } leaf outbound { type leafref { path "../../../../../../ipsec/static-sa/name"; } mandatory true; description "sa-name"; } } // container authentication list neighbor { key "address"; description "Add a list entry for neighbor"; leaf address { type types-sros:ip-address; description "Neighbor link local address"; } } // list neighbor } // list interface list virtual-link { key "router-id transit-area"; description "Enter the virtual-link list instance"; leaf router-id { type types-sros:ipv4-address; description "Router ID of the virtual link neighbor"; } leaf transit-area { type leafref { path "../../../../../router/ospf3/area/area-id"; } description "Transit area that links backbone area to area without physical connection with the backbone"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "60"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf inbound { type leafref { path "../../../../../../ipsec/static-sa/name"; } mandatory true; description "sa-name"; } leaf outbound { type leafref { path "../../../../../../ipsec/static-sa/name"; } mandatory true; description "sa-name"; } } // container authentication } // list virtual-link } // list area } // list ospf3 container pcep { when "../router-name = 'Base'"; description "Enter the pcep context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pcc { presence "Enter the 'pcc' context"; description "Enable the pcc context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the PCEP session element"; } leaf keepalive { type uint32 { range "1..255"; } units "seconds"; sros-ext:auto-restart-to-modify; default "30"; description "Configure keepalive"; } leaf local-address { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "Configure local IP"; } leaf local-address-ipv6 { type types-sros:ipv6-unicast-address; sros-ext:auto-restart-to-modify; description "Configure local IPV6"; } leaf unknown-message-rate { type uint32 { range "1..255"; } default "10"; description "Configure unknown message rate"; } leaf report-path-constraints { type boolean; default "true"; description "Specify whether to enable/disable path constraints in PCC report"; } leaf dead-timer { type uint32 { range "1..255"; } units "seconds"; sros-ext:auto-restart-to-modify; default "120"; description "Configure dead timer"; } leaf redelegation-timer { type uint32 { range "1..3600"; } units "seconds"; default "90"; description "Configure redelegation-timer"; } leaf max-srte-pce-init-lsps { type uint32 { range "0..8191"; } sros-ext:auto-restart-to-modify; default "8191"; description "Configure max sr te pce init LSP"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container state-timer { description "Enter the state-timer context"; leaf timer { type uint32 { range "1..3600"; } units "seconds"; default "180"; description "Configure state-timer"; } leaf timer-action { type enumeration { enum "none" { value 0; } enum "remove" { value 1; } } default "remove"; description "State timer action remove/none"; } } // container state-timer list peer { key "ip-address"; max-elements 2; description "Enter the peer list instance"; leaf ip-address { type types-sros:ip-unicast-address; description "This value specifies the address of the PCE peer"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PCC peer"; } leaf preference { type uint32 { range "0..100"; } sros-ext:immutable; default "0"; description "The value indicates the preference value of this peer. If higher preference PCE is unavailable or not connected, PCE with the next preference is used."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer } // container pcc container pce { presence "Enter the 'pce' context"; description "Enable the pce context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the PCEP session element"; } leaf keepalive { type uint32 { range "1..255"; } units "seconds"; sros-ext:auto-restart-to-modify; default "30"; description "Configure keepalive"; } leaf local-address { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "Configure local IP"; } leaf local-address-ipv6 { type types-sros:ipv6-unicast-address; sros-ext:auto-restart-to-modify; description "Configure local IPV6"; } leaf unknown-message-rate { type uint32 { range "1..255"; } default "10"; description "Configure unknown message rate"; } leaf dead-timer { type uint32 { range "1..255"; } units "seconds"; sros-ext:auto-restart-to-modify; default "120"; description "Configure dead timer"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container pce } // container pcep container pim { presence "Enter the 'pim' context"; description "Enable the pim context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PIM"; } leaf apply-to { type enumeration { enum "ies" { value 1; } enum "non-ies" { value 2; } enum "all" { value 3; } enum "none" { value 4; } } default "none"; description "IES and non-IES interfaces to create in PIM"; } leaf mdt-spt { type boolean; default "false"; description "Use SPT switchover for default MDT"; } leaf lag-usage-optimization { type boolean; default "false"; description "Optimize LAG usage"; } leaf mc-ecmp-balance { type boolean; default "true"; description "Enable multicast balancing of traffic over ECMP links"; } leaf mc-ecmp-balance-hold { type uint32 { range "2..600"; } units "minutes"; description "Hold time for multicast balancing over ECMP links"; } leaf non-dr-attract-traffic { type boolean; default "false"; description "Attract traffic when the router is not the designated one"; } leaf pim-ssm-scaling { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable PIM-SSM scaling"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf ssm-assert-compatible-mode { type boolean; default "false"; description "Enable SSM assert compatible mode"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PIM operation for IPv4"; } leaf multicast-fast-failover { type boolean; default "false"; description "Use Multicast-Only Fast Reroute (MoFRR) functionality"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "Route table(s) for the Reverse Path Forwarding (RPF) lookup"; } leaf ssm-default-range { type boolean; default "true"; description "SSM default range"; } container gtm { description "Enter the gtm context"; leaf auto-discovery { type enumeration { enum "bgp" { value 1; } } description "Method for multicast VPN membership auto-discovery"; } } // container gtm } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PIM operation for IPv6"; } leaf multicast-fast-failover { type boolean; default "false"; description "Use Multicast-Only Fast Reroute (MoFRR) functionality"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "Route table(s) for the Reverse Path Forwarding (RPF) lookup"; } leaf ssm-default-range { type boolean; default "true"; description "SSM default range"; } } // container ipv6 container mc-ecmp-hashing { presence "Enter the 'mc-ecmp-hashing' context"; description "Enable the mc-ecmp-hashing context"; leaf rebalance { type boolean; default "false"; description "Rebalance flows to newly added links immediately instead of waiting until they are pruned"; } } // container mc-ecmp-hashing container import { description "Enter the import context"; leaf-list join-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Character limit for policy name"; } leaf-list register-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Character limit for policy name"; } } // container import list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Router interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf assert-period { type int32 { range "1..300"; } default "60"; description "Time for periodic refreshes of PIM Assert messages on an interface"; } leaf hello-interval { type int32 { range "0..255"; } default "30"; description "Frequency at which PIM Hello messages are sent over this interface"; } leaf hello-multiplier { type uint32 { range "20..100"; } default "35"; description "Multiplier of Hello in multiples of 0.1"; } leaf instant-prune-echo { type boolean; default "false"; description "Allow PIM to send an instant prune echo when router starts the prune pending timer for PIM interface"; } leaf max-groups { type uint32 { range "0|1..16000"; } default "0"; description "Max number of groups for which PIM can have local receiver information based on received PIM reports"; } leaf priority { type uint32 { range "1..max"; } default "1"; description "DR election priority for this interface"; } leaf three-way-hello { type boolean; default "false"; description "Allow three-way hello compatibility mode"; } leaf tracking-support { type boolean; default "false"; description "Allow upstream routers to explicitly track join membership"; } leaf bsm-check-rtr-alert { type boolean; default "false"; description "Check router alert option in bootstrap messages received"; } leaf improved-assert { type boolean; default "true"; description "Allow improved assert processing on interface"; } leaf multicast-senders { type enumeration { enum "auto" { value 0; } enum "always" { value 1; } enum "never" { value 2; } } default "auto"; description "Subnet matching for the incoming data packets"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container p2mp-ldp-tree-join { description "Enter the p2mp-ldp-tree-join context"; leaf ipv4 { type boolean; default "false"; description "Allow dynamic mLDP in-band signaling for IPv4 PIM joins"; } leaf ipv6 { type boolean; default "false"; description "Allow dynamic mLDP in-band signaling for IPv6 PIM joins"; } } // container p2mp-ldp-tree-join container bfd-liveness { description "Enter the bfd-liveness context"; leaf ipv4 { type boolean; default "false"; description "Use Bidirectional Forwarding Detection for IPv4 on PIM interface"; } leaf ipv6 { type boolean; default "false"; description "Use Bidirectional Forwarding Detection for IPv6 on PIM interface"; } } // container bfd-liveness container ipv4 { description "Enter the ipv4 context"; leaf multicast { type boolean; default "true"; description "Enable PIM interface operation"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf name { type leafref { path "../../../../../../service/oper-group/name"; } description "Operational group to monitor for address family"; } leaf operation { type enumeration { enum "add" { value 1; } enum "subtract" { value 2; } enum "set" { value 3; } } description "Perform given operation when oper-group is active."; } leaf priority-delta { type uint32 { range "1..4294967295"; } description "Delta priority with operation when operational group is active"; } } // container monitor-oper-group } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf multicast { type boolean; default "true"; description "Enable PIM interface operation"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf name { type leafref { path "../../../../../../service/oper-group/name"; } description "Operational group to monitor for address family"; } leaf operation { type enumeration { enum "add" { value 1; } enum "subtract" { value 2; } enum "set" { value 3; } } description "Perform given operation when oper-group is active."; } leaf priority-delta { type uint32 { range "1..4294967295"; } description "Delta priority with operation when operational group is active"; } } // container monitor-oper-group } // container ipv6 container sticky-dr { presence "Enter the 'sticky-dr' context"; description "Enable the sticky-dr context"; leaf priority { type uint32 { range "1..max"; } default "1024"; description "DR election priority for this interface"; } } // container sticky-dr container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of constraint for multicast CAC policy"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type types-mcast-cac:constraints-level; description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } mandatory true; description "Bandwidth available for this level"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type uint32 { range "1..64"; } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; mandatory true; description "Level ID to associate with number of down LAG ports"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list number-down } // container mc-constraints } // container mcac container bier-signaling-type { description "Enter the bier-signaling-type context"; leaf ipv4 { type boolean; default "false"; description "Whether ipv4 bier-signaling-type is enabled."; } leaf ipv6 { type boolean; default "false"; description "Whether ipv6 bier-signaling-type is enabled."; } } // container bier-signaling-type } // list interface container rp { description "Enter the rp context"; container bootstrap { description "Enter the bootstrap context"; leaf-list import { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Character limit for policy name"; } leaf-list export { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Character limit for policy name"; } } // container bootstrap container ipv4 { description "Enter the ipv4 context"; leaf auto-rp-discovery { type boolean; default "false"; description "Enable auto RP discovery"; } leaf candidate { type boolean; default "false"; description "Enable the auto-RP to advertise candidate RP information"; } leaf mapping-agent { type boolean; default "false"; description "Enable the mapping agent on the node"; } list anycast { key "ipv4-address rp-set-peer"; description "Add a list entry for anycast"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "Anycast RP address"; } leaf rp-set-peer { type types-sros:ipv4-unicast-address; description "Configure a peer in the anycast rp-set."; } } // list anycast container bsr-candidate { description "Enter the bsr-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate BSR"; } leaf priority { type int32 { range "0..255"; } default "0"; description "Bootstrap priority of the router"; } leaf address { type types-sros:ipv4-unicast-address; description "Candidate BSR IP address for Bootstrap Router election"; } leaf hash-mask-len { type int32 { range "0..32"; } default "30"; description "Length for bootstrap hash mask"; } } // container bsr-candidate container rp-candidate { description "Enter the rp-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate RP"; } leaf holdtime { type int32 { range "5..255"; } units "seconds"; default "150"; description "Time during which the neighboring router considers this router to be up"; } leaf priority { type int32 { range "0..255"; } default "192"; description "Candidate RP priority"; } leaf address { type types-sros:ipv4-unicast-address; description "Local RP address"; } list group-range { key "ipv4-prefix"; description "Add a list entry for group-range"; leaf ipv4-prefix { type types-sros:ipv4-multicast-prefix; description "IPv4 address and prefix length"; } } // list group-range } // container rp-candidate container static { description "Enter the static context"; list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "Configure the address of the statically configured RP."; } leaf override { type boolean; default "false"; description "Change the precedence for static RP over dynamically learnt RP"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group-prefix { key "ipv4-prefix"; description "Add a list entry for group-prefix"; leaf ipv4-prefix { type types-sros:ipv4-multicast-prefix; description "IPv4 address and prefix length"; } } // list group-prefix } // list address } // container static } // container ipv4 container ipv6 { description "Enter the ipv6 context"; list anycast { key "ipv6-address rp-set-peer"; description "Add a list entry for anycast"; leaf ipv6-address { type types-sros:ipv6-unicast-address; description "Anycast RP address"; } leaf rp-set-peer { type types-sros:ipv6-unicast-address; description "Configure a peer in the anycast rp-set."; } } // list anycast container bsr-candidate { description "Enter the bsr-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate BSR"; } leaf priority { type int32 { range "0..255"; } default "0"; description "Bootstrap priority of the router"; } leaf address { type types-sros:ipv6-unicast-address; description "Candidate BSR IP address for Bootstrap Router election"; } leaf hash-mask-len { type int32 { range "0..128"; } default "126"; description "Length for bootstrap hash mask"; } } // container bsr-candidate container embedded-rp { presence "Enter the 'embedded-rp' context"; description "Enable the embedded-rp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of embedded RP"; } list group-range { key "ipv6-prefix"; description "Add a list entry for group-range"; leaf ipv6-prefix { type types-sros:ipv6-multicast-prefix; description "IPv6 address and prefix length"; } } // list group-range } // container embedded-rp container rp-candidate { description "Enter the rp-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate RP"; } leaf holdtime { type int32 { range "5..255"; } units "seconds"; default "150"; description "Time during which the neighboring router considers this router to be up"; } leaf priority { type int32 { range "0..255"; } default "192"; description "Candidate RP priority"; } leaf address { type types-sros:ipv6-unicast-address; description "Local RP address"; } list group-range { key "ipv6-prefix"; description "Add a list entry for group-range"; leaf ipv6-prefix { type types-sros:ipv6-multicast-prefix; description "IPv6 address and prefix length"; } } // list group-range } // container rp-candidate container static { description "Enter the static context"; list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type types-sros:ipv6-unicast-address; description "Static IP address of the RP"; } leaf override { type boolean; default "false"; description "Change the precedence for static RP over dynamically learnt RP"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group-prefix { key "ipv6-prefix"; description "Add a list entry for group-prefix"; leaf ipv6-prefix { type types-sros:ipv6-multicast-prefix; description "IPv6 address and prefix length"; } } // list group-prefix } // list address } // container static } // container ipv6 } // container rp container rpfv { description "Enter the rpfv context"; leaf mvpn { type boolean; default "false"; description "Include proxy RPF vector for Inter-AS Rosen MVPN"; } leaf core { type boolean; default "false"; description "Include proxy RPF vector for core"; } } // container rpfv list spt-switchover { key "ip-prefix"; description "Enter the spt-switchover list instance"; leaf ip-prefix { type types-sros:ip-multicast-prefix; description "IP address and mask length"; } leaf threshold { type union { type uint32 { range "1..4294967294"; } type enumeration { enum "infinity" { value -1; } } } units "kilobps"; mandatory true; description "SPT switchover threshold"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list spt-switchover container ssm-groups { description "Enter the ssm-groups context"; list group-range { key "ip-prefix"; description "Add a list entry for group-range"; leaf ip-prefix { type types-sros:ip-multicast-prefix; description "IP address and mask length"; } } // list group-range } // container ssm-groups } // container pim container radius { description "Enter the radius context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list server { when "../../router-name = 'Base' or ../../router-name = 'management'"; key "name"; max-elements 64; description "Enter the server list instance"; leaf name { type types-sros:named-item; description "RADIUS server name"; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; mandatory true; description "IP address for server"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } mandatory true; description "Secret key associated with this RADIUS server"; } leaf accept-coa { type boolean; default "false"; description "Allow the server to send Change of Authorization (CoA) messages"; } leaf acct-port { type types-sros:tcp-udp-port-non-zero; default "1813"; description "UDP port number of the RADIUS for accounting events"; } leaf auth-port { type types-sros:tcp-udp-port-non-zero; default "1812"; description "UDP port number of the RADIUS to be used as match criteria"; } leaf pending-requests-limit { type uint32 { range "1..4096"; } default "4096"; description "Limit of the number for pending RADIUS requests"; } leaf python-policy { type leafref { path "../../../../python/python-policy/name"; } description "Python script policy to modify CoA messages"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server list proxy { when "../../router-name = 'Base'"; key "name"; max-elements 8; description "Enter the proxy list instance"; leaf name { type types-sros:named-item; description "RADIUS proxy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RADIUS proxy"; } leaf description { type types-sros:description; description "Text description"; } leaf purpose { type enumeration { enum "accounting" { value 1; } enum "authentication" { value 2; } enum "accounting-authentication" { value 3; } } sros-ext:immutable; mandatory true; description "Purpose of the RADIUS proxy"; } leaf wlan-gw-group { type leafref { path "../../../../isa/wlan-gw-group/id"; } sros-ext:immutable; description "ISA WLAN gateway group"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Format of the secret key to access the RADIUS proxy server"; } leaf send-accounting-response { type boolean; default "false"; description "Allow RADIUS proxy server to respond to Accounting-Response messages"; } leaf python-policy { type leafref { path "../../../../python/python-policy/name"; } description "Python policy"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container load-balance-key { description "Enter the load-balance-key context"; choice load-balance-key { case source-ip-udp { leaf source-ip-udp { type empty; description "Key to consist of the source IP address and source UDP port of the RADIUS message"; } } case attributes { container attribute-1 { description "Enter the attribute-1 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-1 container attribute-2 { description "Enter the attribute-2 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-2 container attribute-3 { description "Enter the attribute-3 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-3 container attribute-4 { description "Enter the attribute-4 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-4 container attribute-5 { description "Enter the attribute-5 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-5 } } } // container load-balance-key container cache { description "Enter the cache context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the RADIUS proxy cache"; } leaf track-delete-hold-time { type types-sros:time-duration { range "0..6000"; } default "0"; description "Delete hold time"; } leaf timeout { type types-sros:time-duration { range "60..3600"; } default "300"; description "Idle timeout value"; } container key { presence "Enter the 'key' context"; description "Enable the key context"; leaf packet-type { type enumeration { enum "access-request" { value 1; } enum "access-accept" { value 2; } } mandatory true; description "Packet type of the RADIUS messages to generate the key for the cache of this RADIUS proxy server"; } leaf attribute-type { type types-radius:radius-attribute-type; mandatory true; description "RADIUS attribute type to cache for this RADIUS proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "RADIUS Vendor ID"; } } // container key container track-accounting { description "Enter the track-accounting context"; leaf start { type boolean; default "false"; description "Update the ESM host with the RADIUS client that generated the accounting-start"; } leaf stop { type boolean; default "false"; description "Remove the ESM host and forward the accounting-stop packet to the external RADIUS server"; } leaf interim-update { type boolean; default "false"; description "Update the ESM host with the RADIUS client that generated the interim update"; } leaf accounting-on { when "not(../../../wlan-gw-group)"; type boolean; default "false"; description "Remove all ESM hosts associated with the RADIUS client"; } leaf accounting-off { when "not(../../../wlan-gw-group)"; type boolean; default "false"; description "Remove all ESM hosts associated with the RADIUS client"; } } // container track-accounting container track-authentication { description "Enter the track-authentication context"; leaf accept { type boolean; default "true"; description "Track Access-Accept message for mobility"; } } // container track-authentication } // container cache container attribute-matching { description "Enter the attribute-matching context"; leaf type { type types-radius:radius-attribute-type; description "Matching attribute type to RADIUS server policy"; } leaf vendor { type types-radius:radius-vendor-id; description "Matching Vendor ID to RADIUS server policy"; } list entry { key "index"; description "Enter the entry list instance"; leaf index { type uint32 { range "1..32"; } description "Index of this entry"; } leaf prefix-string { type types-sros:display-string { length "1..128"; } description "Prefix string"; } leaf suffix-string { type types-sros:display-string { length "1..128"; } description "Prefix string"; } leaf accounting-server-policy { type types-sros:named-item; description "Accounting server policy"; } leaf authentication-server-policy { type types-sros:named-item; description "Authentication server policy"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list entry } // container attribute-matching container wlan-gw { when "../wlan-gw-group"; description "Enter the wlan-gw context"; leaf address { type types-sros:ipv4-unicast-address; description "IP address of this RADIUS proxy server"; } leaf ipv6-address { type types-sros:ipv6-unicast-without-local-address; description "IPv6 address of this RADIUS proxy server"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container wlan-gw container defaults { description "Enter the defaults context"; leaf authentication-server-policy { type types-sros:named-item; description "Default authentication RADIUS server policy"; } leaf accounting-server-policy { type types-sros:named-item; description "Default accounting RADIUS server policy"; } } // container defaults list interface { when "not(../wlan-gw-group)"; key "interface-name"; description "Add a list entry for interface"; leaf interface-name { type types-sros:interface-name; description "Specifies the interface name"; } } // list interface } // list proxy } // container radius container rib-api { when "../router-name = 'Base'"; description "Enter the rib-api context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mpls { description "Enter the mpls context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MPLS for RIB-API gRPC service"; } leaf label-name { type leafref { path "../../../mpls-labels/reserved-label-block/label-block-name"; } sros-ext:auto-restart-to-modify; description "Configure reserved label block."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mpls } // container rib-api container rip { presence "Enter the 'rip' context"; description "Enable the rip context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIP instance"; } leaf description { type types-sros:description; description "Text description"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; default "none"; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; default "false"; description "Check for zero values in must-be-zero fields."; } leaf-list export-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf message-size { type types-rip:message-size; default "25"; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; default "1"; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; default "1"; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; default "100"; description "Route preference."; } leaf receive { type types-rip:receive; default "both"; description "Accepted version on received packets."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } } default "broadcast"; description "RIP version and method used to send RIP updates."; } leaf split-horizon { type boolean; default "true"; description "Enable split-horizon."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } mandatory true; description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type types-sros:named-item; description "RIP group name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RIP neighbor interface group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to group peers."; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from group peers."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-rip:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; description "Route preference."; } leaf receive { type types-rip:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } } description "RIP version and method used to send RIP updates."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list neighbor { key "interface-name"; description "Enter the neighbor list instance"; leaf interface-name { type types-sros:interface-name; description "Interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIP neighbor interface"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to peers."; } leaf-list import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from peers."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-rip:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; description "Route preference."; } leaf receive { type types-rip:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } enum "unicast" { value 6; } } description "RIP version and method used to send RIP updates."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list unicast-address { key "address"; description "Add a list entry for unicast-address"; leaf address { type types-sros:ipv4-unicast-address; description "Create a unicast-address for the neighbor."; } } // list unicast-address } // list neighbor } // list group } // container rip container ripng { presence "Enter the 'ripng' context"; description "Enable the ripng context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIPng instance"; } leaf description { type types-sros:description; description "Text description"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; default "false"; description "Check for zero values in must-be-zero fields."; } leaf-list export-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf message-size { type types-ripng:message-size; default "25"; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; default "1"; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; default "1"; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; default "100"; description "Route preference."; } leaf receive { type types-ripng:receive; default "ripng"; description "Accepted version on received packets."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } } default "ripng"; description "RIPng version and method used to send RIPng updates."; } leaf split-horizon { type boolean; default "true"; description "Enable split-horizon."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } mandatory true; description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type types-sros:named-item; description "RIP group name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RIPng neighbor interface group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to group peers."; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from group peers."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-ripng:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; description "Route preference."; } leaf receive { type types-ripng:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } } description "RIPng version and method used to send RIPng updates."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list neighbor { key "interface-name"; description "Enter the neighbor list instance"; leaf interface-name { type types-sros:interface-name; description "Interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the neighbor."; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to peers."; } leaf-list import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from peers."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-ripng:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; description "Route preference."; } leaf receive { type types-ripng:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } enum "unicast" { value 6; } } description "RIPng version and method used to send RIPng updates."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list unicast-address { key "address"; description "Add a list entry for unicast-address"; leaf address { type types-sros:ipv6-unicast-address; description "Create a unicast-address for the neighbor."; } } // list unicast-address } // list neighbor } // list group } // container ripng container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf entropy-label-capability { type boolean; default "false"; description "Allow receiving and processing of the entropy label and ELI on incoming packets of RSVP LSPs"; } leaf graceful-shutdown { type boolean; default "false"; description "Initiate a graceful shutdown of all RSVP interfaces on the node"; } leaf implicit-null-label { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Signal the implicit null option for all RSVP LSPs"; } leaf keep-multiplier { type uint32 { range "1..255"; } default "3"; description "Value for the keep-multiplier to declare a reservation or neighbor as down"; } leaf include-node-id-in-rro { type boolean; default "false"; description "Include the node-id sub-object in the RRO (Record Route Object) on the RSVP instance"; } leaf p2mp-merge-point-abort-timer { type uint32 { range "1..65535"; } units "seconds"; description "Merge pointer timer for abort timer"; } leaf p2p-merge-point-abort-timer { type uint32 { range "1..65535"; } units "seconds"; description "Merge pointer timer for P2P paths"; } leaf preemption-timer { type uint32 { range "0..1800"; } units "seconds"; default "300"; description "Preemption timer for the MPLS instance"; } leaf rapid-retransmit-time { type uint32 { range "1..100"; } units "deciseconds"; default "5"; description "Rapid retransmission interval to reliably deliver RSVP messages"; } leaf rapid-retry-limit { type uint32 { range "1..6"; } default "3"; description "Rapid retry limit to reliably deliver RSVP messages"; } leaf refresh-reduction-over-bypass { type boolean; default "false"; description "Enable/disable refresh reduction capabilities over all bypass tunnels."; } leaf refresh-time { type uint32 { range "1..65535"; } units "seconds"; default "30"; description "Interval between refresh messages"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RSVP"; } leaf-list te-down-threshold { type types-rsvp:rsvp-te-threshold-level; max-elements 16; ordered-by user; description "Value for the te-down-threshold"; } leaf-list te-up-threshold { type types-rsvp:rsvp-te-threshold-level; max-elements 16; ordered-by user; description "Value for the te-up-threshold"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container graceful-restart { description "Enter the graceful-restart context"; leaf max-recovery { type uint32 { range "1..1800"; } units "seconds"; default "300"; description "Maximum time to wait before a graceful helper recovers the session"; } leaf max-restart { type uint32 { range "1..300"; } units "seconds"; default "120"; description "Maximum time that a graceful helper waits for session restart after the neighbor is considered down"; } } // container graceful-restart container msg-pacing { presence "Enter the 'msg-pacing' context"; description "Enable the msg-pacing context"; leaf max-burst { type uint32 { range "100..1000"; } default "650"; description "Maximum RSVP messages that are sent over a specified period when message pacing is enabled"; } leaf period { type uint32 { range "100..1000"; } units "milliseconds"; default "100"; description "Time for RSVP message pacing"; } } // container msg-pacing container te-threshold-update { presence "Enter the 'te-threshold-update' context"; description "Enable the te-threshold-update context"; leaf on-cac-failure { type boolean; default "false"; description "CAC (Call Admission Control) failure-triggered IGP update"; } leaf update-timer { type uint32 { range "1..300"; } units "seconds"; description "Timer-based IGP updates"; } } // container te-threshold-update container dbw-accounting { presence "Enter the 'dbw-accounting' context"; description "Enable the dbw-accounting context"; leaf dbw-multiplier { type uint32 { range "0..1000"; } units "percent"; default "100"; description "Dark Bandwidth multiplier"; } leaf sample-interval { type uint32 { range "10..600"; } units "seconds"; default "30"; description "Dark Bandwidth sample interval"; } leaf sample-multiplier { type uint32 { range "1..10"; } default "3"; description "Dark Bandwidth sample multiplier"; } container up-threshold { description "Enter the up-threshold context"; leaf percent { type types-sros:percent; default "0"; description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update"; } leaf bw { type int32 { range "0..1000000"; } units "megabps"; description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update"; } } // container up-threshold container down-threshold { description "Enter the down-threshold context"; leaf percent { type types-sros:percent; default "0"; description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update"; } leaf bw { type int32 { range "0..1000000"; } units "megabps"; description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update"; } } // container down-threshold } // container dbw-accounting container diffserv-te { presence "Enter the 'diffserv-te' context"; description "Enable the diffserv-te context"; leaf admission-control-model { type enumeration { enum "mam" { value 1; } enum "rdm" { value 2; } } mandatory true; description "Parameters for the DiffServ TE node"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container class-type-bw { description "Enter the class-type-bw context"; leaf ct0 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 0"; } leaf ct1 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 1"; } leaf ct2 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 2"; } leaf ct3 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 3"; } leaf ct4 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 4"; } leaf ct5 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 5"; } leaf ct6 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 6"; } leaf ct7 { type int32 { range "0..100"; } default "0"; description "Percentage of RSVP interface bandwidth for class type (CT) 7"; } } // container class-type-bw list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class for this mapping"; } leaf class-type { type types-mpls:class-type; mandatory true; description "Diff-Serv Class Type (CT) for an LSP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list fc list te-class { key "te-class-number"; description "Enter the te-class list instance"; leaf te-class-number { type uint32 { range "0..7"; } description "Unique value that identifies the TE class."; } leaf class-type { type types-mpls:class-type; sros-ext:immutable; mandatory true; description "Class type (CT) associated with the TE class"; } leaf priority { type types-mpls:priority; sros-ext:immutable; mandatory true; description "TE class priority"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list te-class } // container diffserv-te list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type leafref { path "../../../interface/interface-name"; } description "Index for router RSVP interface"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RSVP on the interface"; } leaf authentication-keychain { type leafref { path "../../../../system/security/keychains/keychain/keychain-name"; } description "Configure TCP authentication keychain to use for the session."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf graceful-restart-helper-mode { type boolean; default "false"; description "Enable graceful restart helper for the RSVP interface"; } leaf graceful-shutdown { type boolean; default "false"; description "Initiate a graceful shutdown of RSVP interface"; } leaf hello-interval { type uint32 { range "0..60"; } units "seconds"; default "3"; description "Time between RSVP Hello messages"; } leaf subscription { type uint32 { range "0..1000"; } default "100"; description "Percentage of the link bandwidth to use for reservation"; } leaf dbw-multiplier { type int32 { range "0..1000"; } units "percent"; description "Configure the Dark Bandwidth multiplier."; } leaf implicit-null-label { type boolean; sros-ext:auto-restart-to-modify; description "Signal the implicit null label value for all LSPs"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container class-type-bw { presence "Enter the 'class-type-bw' context"; description "Enable the class-type-bw context"; leaf ct0 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 0"; } leaf ct1 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 1"; } leaf ct2 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 2"; } leaf ct3 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 3"; } leaf ct4 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 4"; } leaf ct5 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 5"; } leaf ct6 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 6"; } leaf ct7 { type int32 { range "0..100"; } description "Percentage of link bandwidth for class type (CT) 7"; } } // container class-type-bw container refresh-reduction { presence "Enter the 'refresh-reduction' context"; description "Enable the refresh-reduction context"; leaf reliable-delivery { type boolean; default "false"; description "Reliable delivery of RSVP messages over the RSVP interface"; } } // container refresh-reduction container dbw-up-threshold { presence "Enter the 'dbw-up-threshold' context"; description "Enable the dbw-up-threshold context"; leaf percent { type int32 { range "0..100"; } units "percent"; description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update"; } leaf bw { type int32 { range "0..1000000"; } units "megabps"; description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update"; } } // container dbw-up-threshold container dbw-down-threshold { presence "Enter the 'dbw-down-threshold' context"; description "Enable the dbw-down-threshold context"; leaf percent { type int32 { range "0..100"; } units "percent"; description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update"; } leaf bw { type int32 { range "0..1000000"; } units "megabps"; description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update"; } } // container dbw-down-threshold container te-down-threshold { presence "Enter the 'te-down-threshold' context"; description "Enable the te-down-threshold context"; leaf-list value { type types-rsvp:rsvp-te-threshold-level; min-elements 1; max-elements 16; ordered-by user; description "Specifies down TE threshold levels."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container te-down-threshold container te-up-threshold { presence "Enter the 'te-up-threshold' context"; description "Enable the te-up-threshold context"; leaf-list value { type types-rsvp:rsvp-te-threshold-level; min-elements 1; max-elements 16; ordered-by user; description "Specifies up TE threshold levels."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container te-up-threshold } // list interface } // container rsvp container segment-routing { when "../router-name = 'Base'"; description "Enter the segment-routing context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list maintenance-policy { key "policy-name"; description "Enter the maintenance-policy list instance"; leaf policy-name { type types-sros:named-item; description "Maintenance policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the maintenance policy"; } leaf bfd-liveness { type boolean; default "false"; description "Enable seamless BFD for segment lists of candidate path"; } leaf bfd-template { type leafref { path "../../../../bfd/bfd-template/name"; } description "BFD template to be used by seamless BFD"; } leaf mode { type enumeration { enum "none" { value 0; } enum "ecmp-protected" { value 1; } enum "linear" { value 2; } } sros-ext:auto-restart-to-modify; default "none"; description "Protection mode for SR policy candidate paths"; } leaf threshold { type uint32 { range "1..32"; } default "1"; description "Minimum number of up S-BFD sessions for up path status"; } leaf hold-down-timer { type uint32 { range "0..5000"; } units "deciseconds"; default "0"; description "Hold down timer for SR policy candidate paths"; } leaf revert-timer { type uint32 { range "0..4320"; } units "minutes"; default "0"; description "Revert timer for SR policy candidate paths"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list maintenance-policy container sr-policies { description "Enter the sr-policies context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing policy system"; } leaf reserved-label-block { type leafref { path "../../../mpls-labels/reserved-label-block/label-block-name"; } sros-ext:auto-restart-to-modify; description "Reserved local block for segment routing policies"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress-statistics { presence "Enter the 'ingress-statistics' context"; description "Enable the ingress-statistics context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for the segment routing policies"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ingress-statistics container egress-statistics { presence "Enter the 'egress-statistics' context"; description "Enable the egress-statistics context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ingress statistics for the segment routing policies"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container egress-statistics list static-policy { key "name"; max-elements 8192; description "Enter the static-policy list instance"; leaf name { type types-sros:named-item-64; description "Name for the segment routing static policy"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of segment routing static policy"; } leaf color { type int64 { range "0..4294967295"; } sros-ext:auto-restart-to-modify; description "Traffic flows to be steered by this policy"; } leaf endpoint { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Destination of the source-routed path"; } leaf preference { type uint32; sros-ext:auto-restart-to-modify; default "100"; description "Preference value of this static policy"; } leaf head-end { type union { type types-sros:ip-address; type enumeration { enum "local" { value 1; } } } sros-ext:auto-restart-to-modify; description "Head end address for this static policy"; } leaf binding-sid { type types-sros:mpls-label-or-zero; description "Segment ID that opaquely represents an SR policy to upstream routers"; } leaf distinguisher { type uint32 { range "1..max"; } sros-ext:auto-restart-to-modify; description "Unique value for a policy"; } leaf maintenance-policy { type leafref { path "../../../maintenance-policy/policy-name"; } description "Policy name"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list segment-list { key "seg-list-index"; max-elements 32; description "Enter the segment-list list instance"; leaf seg-list-index { type uint32 { range "1..32"; } description "Index for identifying a particular segment list"; } leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the segment list of a static policy"; } leaf weight { type uint32; sros-ext:auto-restart-to-modify; default "1"; description "Weight of this segment list"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } list segment { key "segment-index"; max-elements 11; sros-ext:auto-restart-to-modify; description "Enter the segment list instance"; leaf segment-index { type uint32 { range "1..11"; } description "Index for identifying a particular segment list"; } leaf mpls-label { type uint32 { range "0..1048575"; } sros-ext:auto-restart-to-modify; description "Value for the MPLS label"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // list segment } // list segment-list } // list static-policy } // container sr-policies } // container segment-routing container static-routes { description "Enter the static-routes context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-down { presence "Enter the 'hold-down' context"; description "Enable the hold-down context"; leaf initial { type uint32 { range "1..65535"; } mandatory true; description "Value for the initial hold down time"; } leaf multiplier { type uint32 { range "1..10"; } mandatory true; description "Value by which the previous hold-down time is multiplied to calculate the new one"; } leaf max-value { type uint32 { range "1..65535"; } mandatory true; description "Maximum value of the hold down time"; } } // container hold-down list route { key "ip-prefix route-type"; description "Enter the route list instance"; leaf ip-prefix { type types-sros:ip-prefix; description "IP prefix and prefix length for the static routes"; } leaf route-type { type types-router:unicast-multicast; description "Static route type for unicast or multicast RPF"; } leaf-list community { type types-sros:community; max-elements 12; ordered-by user; description "Community ID associated with the static route"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf backup-tag { type uint32 { range "1..max"; } description "Configure static route backup tag."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container blackhole { presence "Enter the 'blackhole' context"; description "Enable the blackhole context"; leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf dynamic-bgp { type boolean; default "false"; description "Derive static route's next-hop from the best BGP route for the exact same IP prefix"; } leaf generate-icmp { type boolean; default "false"; description "Send ICMP unreachable messages when received packets match a static route with black-hole next-hop"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container prefix-list { description "Enter the prefix-list context"; leaf name { type leafref { path "../../../../../../policy-options/prefix-list/name"; } description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list } // container blackhole list indirect { key "ip-address"; description "Enter the indirect list instance"; leaf ip-address { type types-sros:ip-address; description "Indirect next hop for static routes"; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type leafref { path "../../../../../../policy-options/prefix-list/name"; } description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type types-sros:ip-address; description "IP address of the target CPE device"; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cpe-check container tunnel-next-hop { description "Enter the tunnel-next-hop context"; leaf disallow-igp { type boolean; default "false"; description "Do not resolve indirect static routes using IGP next-hops in RTM if no tunnel next-hops found in TTM"; } leaf resolution { type enumeration { enum "none" { value 0; } enum "filter" { value 1; } enum "any" { value 2; } } default "none"; description "Tunnel next hop resolution to resolve indirect static route"; } leaf flex-algo { type types-router:flex-algo-id; description "Flexible Algorithm ID"; } container resolution-filter { description "Enter the resolution-filter context"; leaf ldp { type boolean; default "false"; description "Use LDP Route Forwarding Equivalence Class (FEC) tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use the SR ISIS tunneling mechanism to resolve next hop for the static route"; } leaf sr-ospf { type boolean; default "false"; description "Use SR OSPF tunneling for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Specifies if SR OSPFv3 tunneling mechanism will be used to resolve next-hop for the static-route or not."; } leaf rib-api { type boolean; default "false"; description "Enable/disable setting RIB API type for tunnel-next-hop."; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for tunnel-next-hop"; } container rsvp-te { presence "Enter the 'rsvp-te' context"; description "Enable the rsvp-te context"; list lsp { key "lsp-name"; description "Add a list entry for lsp"; leaf lsp-name { type types-sros:named-item-64; description "Labeled Switch Path name"; } } // list lsp } // container rsvp-te container sr-te { presence "Enter the 'sr-te' context"; description "Enable the sr-te context"; list lsp { key "lsp-name"; description "Add a list entry for lsp"; leaf lsp-name { type types-sros:named-item-64; description "Labeled Switch Path name"; } } // list lsp } // container sr-te } // container resolution-filter } // container tunnel-next-hop } // list indirect list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Router interface name"; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Load-balancing weight for all of the ECMP next hops"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type leafref { path "../../../../../../policy-options/prefix-list/name"; } description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type types-sros:ip-address; description "IP address of the target CPE device"; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cpe-check } // list interface list next-hop { key "ip-address"; description "Enter the next-hop list instance"; leaf ip-address { type types-sros:ip-address-with-zone; description "IP address for the next hop"; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf bfd-liveness { type boolean; default "false"; description "Use Bidirectional Forwarding Detection on this static route"; } leaf validate-next-hop { type boolean; default "false"; description "Track the state of the next hop in the IPv4 ARP Cache or the IPv6 Neighbor Cache"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Load-balancing weight for all of the ECMP next hops"; } leaf ldp-sync { type boolean; default "false"; description "Use LDP synchronization feature for a static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type leafref { path "../../../../../../policy-options/prefix-list/name"; } description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list container backup-next-hop { description "Enter the backup-next-hop context"; leaf address { type types-sros:ip-address; description "This is the backup next-hop ip address."; } } // container backup-next-hop list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type types-sros:ip-address; description "IP address of the target CPE device"; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cpe-check } // list next-hop } // list route } // container static-routes container twamp-light { when "../router-name = 'Base'"; description "Enter the twamp-light context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container reflector { presence "Enter the 'reflector' context"; description "Enable the reflector context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of TWAMP Light functionality"; } leaf description { type types-sros:description; description "Text description"; } leaf udp-port { type types-sros:tcp-udp-port-non-zero { range "862|64364..64373"; } sros-ext:auto-restart-to-modify; mandatory true; description "UDP port on which the specified TWAMP-Light reflector listens for TWAMP PDUs"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list prefix { key "ip-prefix"; max-elements 50; description "Enter the prefix list instance"; leaf ip-prefix { type types-sros:ip-unicast-prefix; description "Source prefix for the TWAMP-Light reflector"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // container reflector } // container twamp-light container wpp { presence "Enter the 'wpp' context"; description "Enable the wpp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WPP"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list portal { key "name"; description "Enter the portal list instance"; leaf name { type types-sros:named-item; description "WPP portal name"; } leaf address { type types-sros:ip-unicast-without-local-address; sros-ext:immutable; mandatory true; description "WPP portal address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the WPP portal"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Message authentication between portal and BRAS by applying the secret used by WPPv2"; } leaf version { type uint32 { range "1|2"; } default "1"; description "Protocol version to be expected by the WPP portal"; } leaf retry-interval { type uint32 { range "10..2000"; } units "milliseconds"; default "2000"; description "Time between two consecutive retransmissions"; } leaf ntf-logout-retry-count { type uint32 { range "0..5"; } default "5"; description "Number of retransmissions of an NTF_LOGOUT message"; } leaf ack-auth-retry-count { type uint32 { range "0..5"; } default "5"; description "Number of retransmissions of an ACK_OUT message"; } leaf port-format { type enumeration { enum "standard" { value 1; } enum "vendor-specific" { value 2; } } default "standard"; description "Format of the port in the ACK_INO message"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list portal } // container wpp } // list router container routing-options { description "Enter the routing-options context"; leaf ip-fast-reroute { type boolean; default "false"; description "Enable IP fast reroute capability"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container flexible-algorithm-definitions { description "Enter the flexible-algorithm-definitions context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list flex-algo { key "flex-algo-name"; max-elements 256; description "Enter the flex-algo list instance"; leaf flex-algo-name { type types-sros:named-item; description "Flexible Algorithm Definition (FAD) name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the FAD"; } leaf description { type types-sros:description; description "Text description"; } leaf flags-tlv { type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Advertise the FAD Flags TLV"; } leaf metric-type { type enumeration { enum "igp" { value 0; } enum "delay" { value 1; } enum "te-metric" { value 2; } } sros-ext:auto-restart-to-modify; default "igp"; description "FAD metric type"; } leaf priority { type int32 { range "0..255"; } sros-ext:auto-restart-to-modify; default "100"; description "FAD priority"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container exclude { sros-ext:auto-restart-to-modify; description "Enter the exclude context"; list admin-group { key "group-name"; sros-ext:auto-restart-to-modify; description "Add a list entry for admin-group"; leaf group-name { type leafref { path "../../../../../if-attribute/admin-group/group-name"; } description "Administrative group name"; } } // list admin-group } // container exclude container include-any { sros-ext:auto-restart-to-modify; description "Enter the include-any context"; list admin-group { key "group-name"; sros-ext:auto-restart-to-modify; description "Add a list entry for admin-group"; leaf group-name { type leafref { path "../../../../../if-attribute/admin-group/group-name"; } description "Administrative group name"; } } // list admin-group } // container include-any container include-all { sros-ext:auto-restart-to-modify; description "Enter the include-all context"; list admin-group { key "group-name"; sros-ext:auto-restart-to-modify; description "Add a list entry for admin-group"; leaf group-name { type leafref { path "../../../../../if-attribute/admin-group/group-name"; } description "Administrative group name"; } } // list admin-group } // container include-all } // list flex-algo } // container flexible-algorithm-definitions container if-attribute { description "Enter the if-attribute context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list admin-group { key "group-name"; max-elements 32; description "Enter the admin-group list instance"; leaf group-name { type types-sros:named-item; description "Specifies interface admin group name."; } leaf value { type uint32 { range "0..31"; } sros-ext:immutable; mandatory true; description "Specifies the group value associated with this administrative group."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list admin-group list srlg-group { key "name"; max-elements 1024; description "Enter the srlg-group list instance"; leaf name { type types-sros:named-item; description "Specifies a name defined for the Shared Risk Link Group (SRLG)."; } leaf value { type int64 { range "0..4294967295"; } sros-ext:immutable; mandatory true; description "Specifies the group value associated with this SRLG."; } leaf penalty-weight { type uint32 { range "0..65535"; } default "0"; description "Specifies the penalty weight associated with this SRLG group."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list srlg-group } // container if-attribute container policy-accounting { description "Enter the policy-accounting context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list policy-acct-template { key "name"; max-elements 1024; description "Enter the policy-acct-template list instance"; leaf name { type types-sros:named-item; description "Policy accounting template name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list source-class { key "index"; max-elements 255; description "Add a list entry for source-class"; leaf index { type types-sros:class-index; description "Source-class index"; } } // list source-class list dest-class { status obsolete; key "index"; max-elements 255; description "Enter the dest-class list instance"; leaf index { status obsolete; type types-sros:class-index; description "Dest-class index to use with the template"; } leaf policer { status obsolete; type leafref { path "../../policer/policer-id"; } description "Policer index to use with the template"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dest-class list destination-class { key "index"; max-elements 255; description "Enter the destination-class list instance"; leaf index { type types-sros:class-index; description "Destination class index"; } leaf policer { type leafref { path "../../policer/policer-id"; } description "Policer ID"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list destination-class list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type uint32 { range "1..63"; } description "Policer ID"; } leaf peak-rate { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } default "max"; description "Peak rate of the policy accounting policer"; } leaf max-burst-size { type union { type int32 { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; default "auto"; description "Exceed threshold to drop packets from PIR leaky bucket"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list policer } // list policy-acct-template } // container policy-accounting container admin-tags { description "Enter the admin-tags context"; list admin-tag { key "tag"; max-elements 256; description "Add a list entry for admin-tag"; leaf tag { type string { length "1..32"; } description "Specifies admin-tag."; } } // list admin-tag list route-admin-tag-policy { key "policy-name"; max-elements 2048; description "Enter the route-admin-tag-policy list instance"; leaf policy-name { type string { length "1..64"; } description "Policy name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list exclude { key "tag"; max-elements 8; description "Add a list entry for exclude"; leaf tag { type leafref { path "../../../admin-tag/tag"; } description "Specifies admin-tag."; } } // list exclude list include { key "tag"; max-elements 8; description "Add a list entry for include"; leaf tag { type leafref { path "../../../admin-tag/tag"; } description "Specifies admin-tag."; } } // list include } // list route-admin-tag-policy } // container admin-tags container route-next-hop-policy { description "Enter the route-next-hop-policy context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list template { key "template-name"; description "Enter the template list instance"; leaf template-name { type types-sros:named-item; description "Template name"; } leaf description { type types-sros:description; description "Text description"; } leaf srlg { type boolean; default "false"; description "Select next hops from the SRLG"; } leaf nh-type { type enumeration { enum "ip" { value 1; } enum "tunnel" { value 2; } } default "ip"; description "Preferred next hop"; } leaf protection-type { type enumeration { enum "link" { value 1; } enum "node" { value 2; } } default "node"; description "Protection type used"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list exclude-group { key "group-name"; max-elements 32; description "Add a list entry for exclude-group"; leaf group-name { type leafref { path "../../../../if-attribute/admin-group/group-name"; } description "Group name out of which the next-hop link is selected"; } } // list exclude-group list include-group { key "group-name"; max-elements 32; description "Enter the include-group list instance"; leaf group-name { type leafref { path "../../../../if-attribute/admin-group/group-name"; } description "Group name out of which the next-hop link is selected"; } leaf preference { type int32 { range "1..255"; } default "255"; description "Preference number for configured admin-group."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list include-group } // list template } // container route-next-hop-policy } // container routing-options container saa { description "Enter the saa context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list owner { key "owner-name test"; description "Enter the owner list instance"; leaf owner-name { type types-sros:named-item; description "An owner-name identifies a set of SAA tests."; } leaf test { type types-sros:named-item; description "An owner-name and a test-name identify an SAA test."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the SAA test"; } leaf description { type types-sros:description; description "Text description"; } leaf accounting-policy { type leafref { path "../../../log/accounting-policy/policy-id"; } sros-ext:auto-restart-to-modify; description "Accounting policy used to record the results of an SAA test."; } leaf continuous { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Repeat the test automatically while it is administratively enabled."; } leaf probe-history { type enumeration { enum "keep" { value 1; } enum "drop" { value 2; } enum "auto" { value 3; } } sros-ext:auto-restart-to-modify; default "auto"; description "Keep or drop the per-probe test results after a test run completes. 'auto' allows SROS to decide."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list jitter-event { key "direction threshold-type"; description "Enter the jitter-event list instance"; leaf direction { type types-oam:saa-threshold-direction; description "Inbound, outbound, or round trip packet flow."; } leaf threshold-type { type enumeration { enum "rising" { value 1; } enum "falling" { value 2; } } description "Rising or falling threshold."; } leaf threshold { type uint32 { range "0..2147483647"; } units "microseconds"; mandatory true; description "Rising or falling threshold (in microseconds) for jitter."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list jitter-event list latency-event { key "direction threshold-type"; description "Enter the latency-event list instance"; leaf direction { type types-oam:saa-threshold-direction; description "Inbound, outbound, or round trip packet flow."; } leaf threshold-type { type enumeration { enum "rising" { value 1; } enum "falling" { value 2; } } description "Rising or falling threshold."; } leaf threshold { type uint32 { range "0..2147483647"; } units "microseconds"; mandatory true; description "Rising or falling threshold (in microseconds) for packet latency."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list latency-event list loss-event { key "direction threshold-type"; description "Enter the loss-event list instance"; leaf direction { type types-oam:saa-threshold-direction; description "Inbound, outbound, or round trip packet flow."; } leaf threshold-type { type enumeration { enum "rising" { value 1; } enum "falling" { value 2; } } description "Rising or falling threshold."; } leaf threshold { type uint32 { range "0..2147483647"; } units "packets"; mandatory true; description "Rising or falling threshold for packet loss."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list loss-event container type { description "Enter the type context"; choice saa-types { case saa-icmp-ping { container icmp-ping { presence "Enter the 'icmp-ping' context"; description "Enable the icmp-ping context"; leaf destination-address { type union { type types-sros:ip-address; type types-sros:string-not-all-spaces { length "1..128"; } } mandatory true; description "IP address or DNS name to be pinged."; } leaf count { type uint32 { range "1..100000"; } units "packets"; default "5"; description "Number of ICMP Echo Request packet(s) to send."; } leaf do-not-fragment { type boolean; default "false"; description "Do not allow the ICMP Echo Request packet(s) to be fragmented (valid for IPv4 only)."; } leaf interval { type union { type uint32 { range "1..10000"; } type decimal64 { range "0.01..100.00"; fraction-digits 2; } } units "seconds"; default "1"; description "Interval (in seconds) between ICMP Echo Request packets sent."; } leaf pattern { type types-oam:padding-pattern; default "sequential"; description "Two byte value used to pad the ICMP Echo Request packet(s). 'sequential' indicates bytes increasing by one."; } leaf router-instance { type string; default "Base"; description "Router used for the test ('Base', 'management', or a VPRN service name)."; } leaf size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Number of bytes in the combined ICMP Header (8 bytes) and ICMP Payload (variable size) of the ICMP Echo Request packet(s)."; } leaf source-address { type types-sros:ip-address; description "Source IP address to be loaded into the IP header of the ICMP Echo Request packet(s). Default: a system-selected address."; } leaf timeout { type uint32 { range "1..10"; } units "seconds"; default "5"; description "Maximum time (in seconds) to wait for ICMP Echo Reply packet(s). The timer is started when the last ICMP Echo Request is sent."; } leaf ttl { type uint32 { range "1..128"; } default "64"; description "Time To Live value (IPv4) or Hop Limit value (IPv6) to be loaded into the IP header of the ICMP Echo Request packet(s)."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice saa-icmp-ping-routing { default "case-bypass-routing"; case case-bypass-routing { leaf bypass-routing { type boolean; default "false"; description "Bypass the routing table when sending to a host on a directly attached network."; } } case case-interface { leaf interface { type types-sros:interface-name; description "Sending interface for the ICMP Echo Request packet(s)."; } } case case-next-hop-address { leaf next-hop-address { type types-sros:ip-address; description "Next hop IP address used when sending ICMP Echo Request packet(s)."; } } } container qos { description "Enter the qos context"; leaf fc { type types-sros:fc-name; default "nc"; description "Forwarding Class for the transmitted ICMP Echo Request packet(s)."; } leaf tos { type uint32 { range "0..255"; } default "0"; description "Type of Service value to be loaded into the DSCP and ECN fields of the IP header of the ICMP Echo Request packet(s)."; } } // container qos } // container icmp-ping } } } // container type } // list owner } // container saa container satellite { description "Enter the satellite context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container file-transfer { description "Enter the file-transfer context"; leaf ftp { type boolean; default "true"; description "Whether or not FTP will be enabled for file transfer to/from satellites for the purposes of management"; } leaf scp { type boolean; default "false"; description "Whether or not SCP will be enabled for file transfer to/from satellites for the purposes of management"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container file-transfer list port-template { key "template-name"; description "Enter the port-template list instance"; leaf template-name { type types-sros:named-item; description "Template name of the port template."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Admin state of the port template."; } leaf sat-type { type types-chassis:sat-type; sros-ext:immutable; sros-ext:auto-restart-to-modify; mandatory true; description "The satellite type for the port template to use."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list port { key "sat-phys-port-id"; description "Enter the port list instance"; leaf sat-phys-port-id { type string; description "Physical satellite port identifier."; } leaf role { type enumeration { enum "none" { value 0; } enum "uplink" { value 1; } enum "client" { value 2; } } sros-ext:immutable; description "Role of the physical satellite port."; } leaf uplink { type leafref { path "../sat-phys-port-id"; } sros-ext:immutable; description "Uplink of the physical satellite port."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list port } // list port-template list ethernet-satellite { key "satellite-id"; description "Enter the ethernet-satellite list instance"; leaf satellite-id { type uint32 { range "1..20"; } description "The unique index identifying this satellite"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "The MAC address of the satellite."; } leaf sat-type { type types-chassis:sat-type; sros-ext:immutable; description "The satellite provisioned type."; } leaf software-repository { type leafref { path "../../../system/software-repository/repository-name"; } description "The software repository used for the satellite."; } leaf sync-e { type boolean; default "false"; description "Whether SyncE is enabled or not on the satellite."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the satellite."; } leaf-list feature { type enumeration { enum "local-forward" { value 0; } enum "ptp-tc" { value 1; } } max-elements 2; description "The feature(s) to be enabled on the satellite."; } leaf port-template { type types-sros:named-item; sros-ext:immutable; description "Port template name"; } leaf ptp-tc { type boolean; default "false"; description "Whether PTP transparent clock is enabled or not on the satellite."; } leaf client-down-delay { type int32 { range "0..1800"; } description "This command sets the delay between the last available uplink becoming unavailable and the disabling of the associated ethernet satellite client ports."; } leaf console-access { type types-sros:admin-state; default "disable"; description "Satellite console interface access"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list port-map { key "client-port-id"; description "Enter the port-map list instance"; leaf client-port-id { type types-sros:port; description "The client port to uplink map."; } leaf primary { type leafref { path "../../../../port/port-id"; } description "The primary uplink for the port map."; } leaf secondary { type leafref { path "../../../../port/port-id"; } description "The secondary uplink for the port map."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list port-map } // list ethernet-satellite list port-topology { key "local-port-id"; description "Enter the port-topology list instance"; leaf local-port-id { type leafref { path "../../../port/port-id"; } description "Local port identifier."; } leaf far-end-port-id { type leafref { path "../../../port/port-id"; } sros-ext:immutable; mandatory true; description "Far end port identifier."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list port-topology } // container satellite container service { description "Enter the service context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container sdp-group { description "Enter the sdp-group context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group-name { key "group-name"; description "Enter the group-name list instance"; leaf group-name { type types-sros:named-item; description "Service Distribution Point (SDP) Group name."; } leaf value { type uint32 { range "0..31"; } sros-ext:immutable; mandatory true; description "Value associated with SDP Group."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list group-name } // container sdp-group list customer { key "customer-name"; description "Enter the customer list instance"; leaf customer-name { type types-services:customer-name; description "Customer name for a service"; } leaf customer-id { type types-services:customer-id; sros-ext:immutable; description "Customer ID"; } leaf description { type types-sros:description; description "Text description"; } leaf contact { type types-sros:description; description "Service customer contact information"; } leaf phone { type types-sros:description; description "Service customer telephone number information"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list multi-service-site { key "multi-service-site-name"; description "Enter the multi-service-site list instance"; leaf multi-service-site-name { type types-sros:named-item; description "Service customer multi-service site name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container assignment { description "Enter the assignment context"; choice assignment { case port { leaf port { type types-sros:port-named; description "Port for this binding."; } } case card { leaf card { type uint32 { range "1..20"; } description "Card for this binding."; } } case fpe { leaf fpe { type leafref { path "../../../../../fwd-path-ext/fpe/fpe-id"; } description "Multi-service-site assignment to the FPE object"; } } } } // container assignment container ingress { description "Enter the ingress context"; leaf policer-control-policy { type leafref { path "../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy"; } container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Specify a scheduler-policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Multi-service site ingress scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Administrative PIR."; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Administrative CIR."; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container ingress container egress { description "Enter the egress context"; leaf policer-control-policy { type leafref { path "../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy"; } container agg-rate { description "Enter the agg-rate context"; leaf rate { type types-services:agg-rate-rate; description "Rate limit"; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } } // container agg-rate container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Specify a scheduler-policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Multi-service site egress scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Administrative PIR."; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Administrative CIR."; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container egress } // list multi-service-site } // list customer container mrp { description "Enter the mrp context"; list policy { key "policy-name"; description "Enter the policy list instance"; leaf policy-name { type types-sros:named-item; description "Specify the policy name associated with the MRP"; } leaf description { type types-sros:description; description "Specify a description about the policy associated with the MRP"; } leaf scope { type types-services:item-scope; default "template"; description "Specify the scope of the mrp-policy definition"; } leaf default-action { type types-services:mrp-policy-default-action; default "allow"; description "Specify the action to take for packets that do no match any mrp-policy entries"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type types-services:entry-id; description "Sepcify an id for the MRP policy entry"; } leaf action { type types-services:mrp-policy-action; description "Specify the action to take for packets that match this mrp-policy entry"; } leaf description { type types-sros:description; description "Specify a description about the entry associated with the mrp-policy"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; list isid { key "value"; description "Enter the isid list instance"; leaf value { type types-sros:svc-isid; description "Specify the lowest value of service instance identifier for this service that matches this entry"; } leaf higher-value { type types-sros:svc-isid; description "Specify the highest value of service instance identifier for this service that matches this entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list isid } // container match } // list entry } // list policy } // container mrp list oper-group { key "name"; max-elements 16384; description "Enter the oper-group list instance"; leaf name { type types-sros:named-item; description "Service operational group name"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-time { description "Enter the hold-time context"; leaf down { type uint32 { range "1..3600"; } units "seconds"; description "Oper group hold down time"; } leaf up { type uint32 { range "0..3600"; } units "seconds"; default "4"; description "Oper group hold up time"; } } // container hold-time container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf router-instance { type string; sros-ext:immutable; mandatory true; description "Routing context used for route lookup."; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; mandatory true; description "Destination interface name for BFD"; } leaf dest-ip { type types-sros:ipv4-unicast-address; sros-ext:immutable; mandatory true; description "Destination address for BFD"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container bfd-liveness } // list oper-group container pbb { description "Enter the pbb context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container source-bmac { description "Enter the source-bmac context"; leaf address { type types-sros:mac-unicast-address-no-zero; description "Source B-VPLS MAC address to use with PBB"; } leaf evpn-etree-leaf-address { type types-sros:mac-unicast-address-no-zero; description "Source Backbone VPLS MAC address to use with Provider Backbone Bridging (PBB)"; } } // container source-bmac list mac { key "name"; description "Enter the mac list instance"; leaf name { type types-sros:named-item; description "MAC address name"; } leaf address { type types-sros:mac-unicast-address-no-zero; mandatory true; description "IEEE address for the MAC name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mac container mac-notification { description "Enter the mac-notification context"; leaf interval { type uint32 { range "1..100"; } units "deciseconds"; default "1"; description "Interval for MAC-notification messages"; } leaf count { type uint32 { range "1..10"; } default "3"; description "MAC notification messages count"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mac-notification } // container pbb container upnp { description "Enter the upnp context"; list policy { key "name"; max-elements 255; description "Enter the policy list instance"; leaf name { type types-sros:external-named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf port { type types-sros:tcp-udp-port-non-zero; default "5000"; description "HTTP TCP port to which this UPnP IGD listens"; } leaf mapping-limit { type uint32 { range "1..256"; } default "256"; description "Maximum number of UPnP mappings per subscriber"; } leaf strict-mode { type boolean; default "false"; description "Allow changes to existing UPnP mapping only from same UPnP client"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list policy } // container upnp container proxy-arp-nd { description "Enter the proxy-arp-nd context"; container mac-list { description "Enter the mac-list context"; list list { key "list-name"; description "Enter the list list instance"; leaf list-name { type types-sros:named-item; description "Specify name for mac list"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list mac { key "address"; max-elements 10; description "Add a list entry for mac"; leaf address { type types-sros:mac-unicast-address-no-zero; description "MAC address to be added to the list"; } } // list mac } // list list } // container mac-list } // container proxy-arp-nd list pw-template { key "pw-template-name"; max-elements 2048; description "Enter the pw-template list instance"; leaf pw-template-name { type types-services:pw-template-name; description "PW template name"; } leaf pw-template-id { type types-services:pw-template-id; sros-ext:immutable; description "PW Template Id"; } leaf provisioned-sdp { type types-services:provisioned-sdp; sros-ext:immutable; description "Provisioned SDP type"; } leaf allow-fragmentation { type boolean; default "false"; description "Whether to allow gre encapsulated packets to be sent without setting the DF bit."; } leaf auto-gre-sdp { type boolean; sros-ext:immutable; default "false"; description "Use a GRE tunnel to automatically create an SDP"; } leaf vc-type { type types-services:pw-template-sdp-bind-vc-type; default "ether"; description "Type of virtual circuit associated with the SDP bind."; } leaf accounting-policy { type types-log:log-policy-id; description "Accounting policy"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf vlan-vc-tag { type types-services:vlan-vc-tag; description "VLAN VC tag"; } leaf force-vc-forwarding { type enumeration { enum "vlan" { value 1; } enum "qinq-c-tag-c-tag" { value 2; } enum "qinq-s-tag-c-tag" { value 3; } } description "VC forwarding action"; } leaf control-word { type boolean; default "false"; description "Enable/Disable the use of ControlWord"; } leaf block-on-peer-fault { type boolean; default "false"; description "Enable block traffic on peer fault"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "Hash label capability that is signaled to the remote PE"; } } // container hash-label } } container split-horizon-group { description "Enter the split-horizon-group context"; leaf name { type types-sros:named-item; description "Specify name of the split-horizon group"; } leaf description { type types-sros:description; description "Text description"; } container fdb { description "Enter the fdb context"; container saps { description "Enter the saps context"; leaf auto-learn-mac-protect { type boolean; default "false"; description "Enable automatic update of MAC protect list"; } leaf protected-src-mac-violation-action { type types-services:sap-protected-src-mac-violation-action; description "Action for protected source MAC restriction"; } leaf discard-unprotected-dest-mac { type boolean; default "false"; description "Enable/disable unprotected dest MAC restriction"; } } // container saps } // container fdb } // container split-horizon-group container ingress { description "Enter the ingress context"; container filter { description "Enter the filter context"; leaf mac { type types-sros:named-item-64; description "MAC filter policy name"; } leaf ip { type types-sros:named-item-64; description "IPv4 filter policy name"; } leaf ipv6 { type types-sros:named-item-64; description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-sros:named-item-64; description "Network policy identifier"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type types-sros:named-item; description "FP redirect group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance for FP ingress queue group"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container igmp-snooping { description "Enter the igmp-snooping context"; leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf import-policy { type types-sros:named-item; description "Import policy that filters IGMP packets"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf maximum-number-groups { type uint32 { range "1..1000"; } description "Maximum multicast groups"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP version"; } } // container igmp-snooping container stp { description "Enter the stp context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of STP"; } leaf auto-edge { type boolean; default "true"; description "Enable/disable automatic detection of edge-port."; } leaf edge-port { type boolean; default "false"; description "Configure as edge-port."; } leaf link-type { type types-services:stp-link-type; default "pt-pt"; description "Configure STP link-type"; } leaf path-cost { type types-services:stp-path-cost; default "10"; description "Configure path-cost"; } leaf priority { type int32 { range "0..255"; } default "128"; description "Configure STP priority"; } leaf root-guard { type boolean; default "false"; description "Enable/disable STP root-guard"; } } // container stp container l2pt { description "Enter the l2pt context"; container termination { presence "Enter the 'termination' context"; description "Enable the termination context"; container protocols { description "Enter the protocols context"; leaf stp { type boolean; default "true"; description "Enable/disable spanning tree protocols stp/mstp/pvst/rstp."; } leaf cdp { type boolean; default "false"; description "Enable Cisco discovery protocol"; } leaf vtp { type boolean; default "false"; description "Enable/disable virtual trunk protocol."; } leaf dtp { type boolean; default "false"; description "Enable dynamic trunking protocol"; } leaf pagp { type boolean; default "false"; description "Enable/disable port aggregation protocol."; } leaf udld { type boolean; default "false"; description "Enable/disable unidirectional link detection."; } } // container protocols } // container termination } // container l2pt container encryption-keygroup { description "Enter the encryption-keygroup context"; leaf inbound { type types-services:keygroup-id; description "Keygroup identifier in the inbound direction"; } leaf outbound { type types-services:keygroup-id; description "Keygroup identifier in the outbound direction"; } } // container encryption-keygroup container fdb { description "Enter the fdb context"; leaf discard-unknown-source { type boolean; default "false"; description "Discard frames with unknown source"; } leaf limit-mac-move { type types-services:vpls-limit-mac-move; default "blockable"; description "MAC move limit"; } leaf mac-pinning { type boolean; default "false"; description "Enable MAC address pinning on this spoke SDP"; } leaf maximum-mac-addresses { type uint32 { range "1..511999"; } description "Maximum number of MAC entries in the FDB"; } leaf auto-learn-mac-protect { type boolean; default "false"; description "Enable automatic update of MAC protect list"; } leaf auto-learn-mac-protect-exclude-list { type types-sros:named-item; description "Name of the MAC protect exclusion list"; } leaf protected-src-mac-violation-action { type types-services:sdp-protected-src-mac-violation-action; description "Action for protected source MAC restriction"; } container mac-learning { description "Enter the mac-learning context"; leaf learning { type boolean; default "true"; description "Enable learning of new MAC addresses"; } leaf aging { type boolean; default "true"; description "Enable aging of MAC addresses"; } } // container mac-learning } // container fdb container egress { description "Enter the egress context"; container filter { description "Enter the filter context"; leaf mac { type types-sros:named-item-64; description "MAC filter policy name"; } leaf ip { type types-sros:named-item-64; description "IPv4 filter policy name"; } leaf ipv6 { type types-sros:named-item-64; description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type types-sros:named-item-64; description "Network policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type types-sros:named-item; description "Port redirect group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance for FP ingress queue group"; } } // container port-redirect-group } // container network } // container qos container mfib-allowed-mda-destinations { description "Enter the mfib-allowed-mda-destinations context"; list mda { key "mda-id"; description "Add a list entry for mda"; leaf mda-id { type types-isa:slot-mda; description "MFIB allowed MDA destination"; } } // list mda } // container mfib-allowed-mda-destinations } // container egress list sdp-include { key "group-name"; description "Add a list entry for sdp-include"; leaf group-name { type leafref { path "../../../sdp-group/group-name/group-name"; } description "Service Distribution Point (SDP) SDP Group Name."; } } // list sdp-include list sdp-exclude { key "group-name"; description "Add a list entry for sdp-exclude"; leaf group-name { type leafref { path "../../../sdp-group/group-name/group-name"; } description "Service Distribution Point (SDP) SDP Group Name."; } } // list sdp-exclude } // list pw-template container system { description "Enter the system context"; leaf extended-default-qinq-sap-lookup { type boolean; description "Control the forwarding of the packets"; } leaf vpn-gre-source-ip { type types-sros:ipv4-unicast-address; description "VPN GRE source ip-address"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pw-port-list { description "Enter the pw-port-list context"; list port { key "port-id"; description "Add a list entry for port"; leaf port-id { type types-sros:port; description "The identifier which uniquely identifies the port."; } } // list port } // container pw-port-list container bgp-auto-rd-range { description "Enter the bgp-auto-rd-range context"; leaf ip-address { type types-sros:ipv4-address; description "IP address used for selecting route-distinguisher."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container community-value { description "Enter the community-value context"; leaf start { type int32 { range "1..65535"; } description "Start of BGP route-distinguisher community value."; } leaf end { type int32 { range "1..65535"; } description "End of BGP route-distinguisher community value."; } } // container community-value } // container bgp-auto-rd-range container fdb { description "Enter the fdb context"; leaf table-size { type uint32 { range "4095..2047999"; } description "Maximum FDB entries in the system"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container fdb container vxlan { description "Enter the vxlan context"; container assisted-replication { description "Enter the assisted-replication context"; leaf ip-address { type types-sros:ipv4-unicast-address; description "VXLAN assisted replication address"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container assisted-replication list tunnel-termination { key "ip-address"; description "Enter the tunnel-termination list instance"; leaf ip-address { type types-sros:ip-unicast-address; description "Non system IP address to terminate the VXLAN"; } leaf fpe-id { type leafref { path "../../../../../fwd-path-ext/fpe/fpe-id"; } sros-ext:immutable; mandatory true; description "FPE id for this entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list tunnel-termination } // container vxlan container gre-eth-bridged { description "Enter the gre-eth-bridged context"; list tunnel-termination { key "ip-address"; description "Enter the tunnel-termination list instance"; leaf ip-address { type types-sros:ip-unicast-address; description "Non system IP address to terminate the GRE tunnel"; } leaf fpe-id { type leafref { path "../../../../../fwd-path-ext/fpe/fpe-id"; } sros-ext:immutable; mandatory true; description "FPE ID"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list tunnel-termination } // container gre-eth-bridged container bgp { description "Enter the bgp context"; container evpn { description "Enter the evpn context"; leaf etree-leaf-label { type boolean; default "false"; description "E-Tree leaf label for PE"; } leaf route-distinguisher { type types-services:vpn-route-distinguisher; description "Route distinguisher for ES routes"; } leaf ingress-replication-bum-label-block { type leafref { path "../../../../../router/mpls-labels/reserved-label-block/label-block-name"; } description "Reserved label block name for BUM traffic"; } leaf multicast-leave-sync-propagation { type int32 { range "0..300"; } units "seconds"; default "5"; description "Multicast leave group synchronization delay"; } list ethernet-segment { key "ethernet-segment-name"; max-elements 4095; description "Enter the ethernet-segment list instance"; leaf ethernet-segment-name { type types-sros:named-item; description "Specify name for Ethernet segment"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Ethernet segment instance"; } leaf type { type enumeration { enum "none" { value 1; } enum "virtual" { value 2; } } sros-ext:immutable; default "none"; description "Type of the ethernet segment."; } leaf esi { type types-services:ethernet-segment-id-mac-based; description "Ethernet segment identifier"; } leaf orig-ip { type types-sros:ip-unicast-address; description "Specifies the ES route's originating IP address"; } leaf route-next-hop { type types-sros:ip-unicast-address; description "Specifies the next-hop IP for ES and AD per-ES routes"; } leaf multi-homing-mode { type enumeration { enum "none" { value 0; } enum "single-active" { value 1; } enum "single-active-no-esi-label" { value 2; } enum "all-active" { value 3; } } default "none"; description "Multi-homing mode of the Ethernet segment"; } leaf oper-group { type leafref { path "../../../../../oper-group/name"; } description "Operational-Group identifier."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container df-election { description "Enter the df-election context"; leaf es-activation-timer { type int32 { range "0..100"; } units "seconds"; description "Activation timer per Ethernet segment"; } leaf service-carving-mode { type enumeration { enum "auto" { value 1; } enum "manual" { value 2; } enum "off" { value 3; } } default "auto"; description "Mode of service carving enabled per EVPN associated with this Ethernet segment entry"; } container manual { description "Enter the manual context"; list evi { key "start"; description "Enter the evi list instance"; leaf start { type uint32 { range "1..65535"; } description "Starting value of the EVI range associated with service-carving of the associated ethernet segment"; } leaf end { type uint32 { range "1..65535"; } mandatory true; description "Ending value of the EVI range associated with service-carving of the associated ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list evi list isid { key "start"; description "Enter the isid list instance"; leaf start { type types-sros:svc-isid-non-zero; description "Starting value of the ISID range associated with service-carving of the associated ethernet segment"; } leaf end { type types-sros:svc-isid-non-zero; mandatory true; description "Ending value of the ISID range associated with service-carving of the associated ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list isid container preference { presence "Enter the 'preference' context"; description "Enable the preference context"; leaf mode { type enumeration { enum "revertive" { value 1; } enum "non-revertive" { value 2; } } sros-ext:immutable; default "revertive"; description "Method used to elect the DF"; } leaf value { type uint32 { range "0..65535"; } default "32767"; description "Preference that is used to elect the designated forwarder"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container preference } // container manual } // container df-election container association { description "Enter the association context"; choice object { description "Object being multi homed with this Ethernet segment"; case port { list port { key "port-id"; max-elements 1; description "Enter the port list instance"; leaf port-id { type leafref { path "../../../../../../../../port/port-id"; } description "Port multi-homed with this Ethernet segment entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container virtual-ranges { when "../../../type = 'virtual'"; description "Enter the virtual-ranges context"; container dot1q { description "Enter the dot1q context"; list q-tag { key "start"; max-elements 8; description "Enter the q-tag list instance"; leaf start { type types-services:ethernet-segment-vlan-range-encap; description "Starting value of the dot1q range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; mandatory true; description "Ending value of the dot1q range associated with a virtual ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list q-tag } // container dot1q container qinq { description "Enter the qinq context"; list s-tag-c-tag { key "s-tag c-tag-start"; max-elements 8; description "Enter the s-tag-c-tag list instance"; leaf s-tag { type types-services:ethernet-segment-vlan-range-encap-with-null; description "Starting value of the qinq s-tag range associated with a virtual ethernet segment"; } leaf c-tag-start { type types-services:ethernet-segment-vlan-range-encap-with-null; description "Starting value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } leaf c-tag-end { type types-services:ethernet-segment-vlan-range-encap-with-null; mandatory true; description "Ending value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list s-tag-c-tag list s-tag { key "start"; max-elements 8; description "Enter the s-tag list instance"; leaf start { type types-services:ethernet-segment-vlan-range-encap; description "Starting value of the qinq stag range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; mandatory true; description "Ending value of the qinq stag range associated with a virtual ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list s-tag } // container qinq } // container virtual-ranges } // list port } case lag { list lag { key "lag-name"; max-elements 1; description "Enter the lag list instance"; leaf lag-name { type leafref { path "../../../../../../../../lag/lag-name"; } description "LAG multi-homed with the Ethernet segment entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container virtual-ranges { when "../../../type = 'virtual'"; description "Enter the virtual-ranges context"; container dot1q { description "Enter the dot1q context"; list q-tag { key "start"; max-elements 8; description "Enter the q-tag list instance"; leaf start { type types-services:ethernet-segment-vlan-range-encap; description "Starting value of the dot1q range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; mandatory true; description "Ending value of the dot1q range associated with a virtual ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list q-tag } // container dot1q container qinq { description "Enter the qinq context"; list s-tag-c-tag { key "s-tag c-tag-start"; max-elements 8; description "Enter the s-tag-c-tag list instance"; leaf s-tag { type types-services:ethernet-segment-vlan-range-encap-with-null; description "Starting value of the qinq s-tag range associated with a virtual ethernet segment"; } leaf c-tag-start { type types-services:ethernet-segment-vlan-range-encap-with-null; description "Starting value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } leaf c-tag-end { type types-services:ethernet-segment-vlan-range-encap-with-null; mandatory true; description "Ending value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list s-tag-c-tag list s-tag { key "start"; max-elements 8; description "Enter the s-tag list instance"; leaf start { type types-services:ethernet-segment-vlan-range-encap; description "Starting value of the qinq stag range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; mandatory true; description "Ending value of the qinq stag range associated with a virtual ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list s-tag } // container qinq } // container virtual-ranges } // list lag } case sdp { list sdp { key "sdp-id"; max-elements 1; description "Enter the sdp list instance"; leaf sdp-id { type leafref { path "../../../../../../../sdp/sdp-id"; } description "Sdp multi-homed with this Ethernet segment entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container virtual-ranges { when "../../../type = 'virtual'"; description "Enter the virtual-ranges context"; list vc-id { key "start"; max-elements 8; description "Enter the vc-id list instance"; leaf start { type types-services:vc-id; description "Starting value of the vc-id range associated with a virtual ethernet segment"; } leaf end { type types-services:vc-id; mandatory true; description "Ending value of the vc-id range associated with a virtual ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list vc-id } // container virtual-ranges } // list sdp } case network-interconnect-vxlan { list network-interconnect-vxlan { when "../../type = 'virtual'"; key "network-interconnect-vxlan-id"; max-elements 1; description "Enter the network-interconnect-vxlan list instance"; leaf network-interconnect-vxlan-id { type uint32 { range "1"; } description "Vxlan instance id multi-homed with this Ethernet segment entry."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container virtual-ranges { description "Enter the virtual-ranges context"; list service-id { key "start"; max-elements 8; description "Enter the service-id list instance"; leaf start { type types-services:external-service-id; description "Starting value of the service id range associated with a virtual ethernet segment"; } leaf end { type types-services:external-service-id; mandatory true; description "Ending value of the service id range associated with a virtual ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list service-id } // container virtual-ranges } // list network-interconnect-vxlan } case pw-port { list pw-port { key "pw-port-id"; max-elements 1; description "Enter the pw-port list instance"; leaf pw-port-id { type leafref { path "../../../../../../../../pw-port/pw-port-id"; } description "Pw-port multi-homed with this Ethernet segment entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container virtual-ranges { when "../../../type = 'virtual'"; description "Enter the virtual-ranges context"; container dot1q { description "Enter the dot1q context"; list q-tag { key "start"; max-elements 8; description "Enter the q-tag list instance"; leaf start { type types-services:ethernet-segment-vlan-range-encap; description "Starting value of the dot1q range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; mandatory true; description "Ending value of the dot1q range associated with a virtual ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list q-tag } // container dot1q container qinq { description "Enter the qinq context"; list s-tag-c-tag { key "s-tag c-tag-start"; max-elements 8; description "Enter the s-tag-c-tag list instance"; leaf s-tag { type types-services:ethernet-segment-vlan-range-encap-with-null; description "Starting value of the qinq s-tag range associated with a virtual ethernet segment"; } leaf c-tag-start { type types-services:ethernet-segment-vlan-range-encap-with-null; description "Starting value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } leaf c-tag-end { type types-services:ethernet-segment-vlan-range-encap-with-null; mandatory true; description "Ending value of the qinq c-tag range associated with a specific s-tag on a virtual ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list s-tag-c-tag list s-tag { key "start"; max-elements 8; description "Enter the s-tag list instance"; leaf start { type types-services:ethernet-segment-vlan-range-encap; description "Starting value of the qinq stag range associated with a virtual ethernet segment"; } leaf end { type types-services:ethernet-segment-vlan-range-encap; mandatory true; description "Ending value of the qinq stag range associated with a virtual ethernet segment"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list s-tag } // container qinq } // container virtual-ranges } // list pw-port } } } // container association container pbb { description "Enter the pbb context"; leaf source-bmac-lsb { type types-services:bmac-lsb-no-zero; description "16 least significant bits (lsb) which when combined with the 32 most significant bits of the PBB source-bmac in the associated service, forms the virtual backbone MAC address"; } leaf es-bmac-table-size { type uint32 { range "1..511999"; } default "8"; description "Size of virtual backbone mac table for this ethernet segment"; } } // container pbb } // list ethernet-segment container ad-per-es-route { description "Enter the ad-per-es-route context"; leaf route-target-type { type enumeration { enum "evi-route-target" { value 1; } enum "evi-route-target-set" { value 2; } } default "evi-route-target"; description "Method for the AD per-ES routes advertisement"; } leaf route-distinguisher-ip-address { type types-sros:ipv4-address; description "IP address for route distinguisher for EVPN AD-ES routes"; } } // container ad-per-es-route container ip-prefix-routes { description "Enter the ip-prefix-routes context"; leaf iff-attribute-uniform-propagation { type boolean; default "false"; description "Enable uniform propagation of BGP attributes"; } leaf iff-bgp-path-selection { type boolean; default "false"; description "Enable BGP path selection for EVPN-IFF routes"; } } // container ip-prefix-routes } // container evpn } // container bgp } // container system list mac-list { key "name"; description "Enter the mac-list list instance"; leaf name { type types-sros:named-item; description "MAC list name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list mac { key "address"; description "Enter the mac list instance"; leaf address { type yang:mac-address; description "MAC address"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "Mask for the MAC address"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mac } // list mac-list container md-auto-id { description "Enter the md-auto-id context"; container service-id-range { presence "Enter the 'service-id-range' context"; description "Enable the service-id-range context"; leaf start { type types-services:external-service-id; sros-ext:immutable; mandatory true; description "Lower value of the ID range, must be less than or equal to end value"; } leaf end { type types-services:external-service-id; sros-ext:immutable; mandatory true; description "Upper value of the ID range, must be greater than or equal to start value"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container service-id-range container customer-id-range { presence "Enter the 'customer-id-range' context"; description "Enable the customer-id-range context"; leaf start { type types-services:customer-id { range "2..2147483647"; } sros-ext:immutable; mandatory true; description "Lower value of the ID range, must be less than or equal to end value"; } leaf end { type types-services:customer-id { range "2..2147483647"; } sros-ext:immutable; mandatory true; description "Upper value of the ID range, must be greater than or equal to start value"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container customer-id-range container pw-template-id-range { presence "Enter the 'pw-template-id-range' context"; description "Enable the pw-template-id-range context"; leaf start { type types-services:pw-template-id { range "1..2147483647"; } sros-ext:immutable; mandatory true; description "Lower value of the ID range, must be less than or equal to end value"; } leaf end { type types-services:pw-template-id { range "1..2147483647"; } sros-ext:immutable; mandatory true; description "Upper value of the ID range, must be greater than or equal to start value"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container pw-template-id-range } // container md-auto-id container template { description "Enter the template context"; list epipe-sap-template { key "name"; description "Enter the epipe-sap-template list instance"; leaf name { type types-sros:named-item; description "SAP template name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type leafref { path "../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Sap-egress policy name applied to this SAP"; } } // container qos } // container egress container ingress { description "Enter the ingress context"; container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type leafref { path "../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "Sap-ingress policy name applied to this SAP"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } } // container qos } // container ingress } // list epipe-sap-template } // container template list cpipe { key "service-name"; description "Enter the cpipe list instance"; leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type leafref { path "../../customer/customer-name"; } sros-ext:immutable; mandatory true; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf vpn-id { type types-services:vpn-id; sros-ext:immutable; description "VPN identifier for the service"; } leaf vc-type { type types-services:cpipe-vc-type; sros-ext:immutable; default "satop-e1"; description "Specify PIPE service type"; } leaf vc-switching { type boolean; sros-ext:immutable; default "false"; description "PW switching signaling to be used by the spokes in the service"; } leaf test { type boolean; sros-ext:immutable; default "false"; description "Designate as a test service"; } leaf service-mtu { type int32 { range "1..9194"; } default "1514"; description "MTU size"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list endpoint { key "name"; max-elements 2; description "Enter the endpoint list instance"; leaf name { type types-sros:named-item; description "Service endpoint name"; } leaf description { type types-sros:description; description "Text description"; } leaf revert-time { type types-services:revert-time; default "immediate"; description "Time to wait before reverting back to the primary spoke-sdp defined on this service endpoint"; } leaf hold-time-active { type types-services:hold-time-active; description "Time to hold the active state before entering standby when a local MC-LAG SAP goes down"; } leaf standby-signaling { type enumeration { enum "master" { value 1; } enum "slave" { value 2; } } description "Whether PW standby bit will be sent to T-LDP peer whenever spoke-SDPs of this endpoint are selected as standby."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list endpoint list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type types-sros:sap; description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "Accounting policy"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type leafref { path "../../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Distributed CPU protection policy for SAP"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf endpoint { type leafref { path "../../endpoint/name"; } description "Name of the endpoint"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container overrides { description "Enter the overrides context"; container ip-criteria { description "Enter the ip-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Configure tag-id for IP-Criteria"; } } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv6 criteria"; } } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos } // container ingress container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Policy identifier"; } container overrides { description "Enter the overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type leafref { path "../../../../../../../../../../qos/slope-policy/slope-policy-name"; } description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate } // container egress container cem { description "Enter the cem context"; leaf rtp-header { type boolean; default "false"; description "Status whether RTP header to be used when packets are transmitted to the Packet Service Network"; } container packet { description "Enter the packet context"; leaf payload-size { type uint32 { range "16..2048"; } units "bytes"; description "The payload size (in bytes) of packets transmitted to the Packet Service Network (PSN) by the CEM SAP."; } leaf jitter-buffer { type uint32 { range "1..250"; } units "milliseconds"; description "The jitter buffer size in milliseconds (ms)."; } } // container packet container report-alarm { description "Enter the report-alarm context"; leaf stray-packets { type boolean; default "true"; description "Report alarm for stray-packets"; } leaf malformed-packets { type boolean; default "true"; description "Report alarm for malformed-packets"; } leaf packet-loss { type boolean; default "true"; description "Report alarm for packet-loss"; } leaf buffer-overrun { type boolean; default "true"; description "Report alarm for buffer-overrun"; } leaf buffer-underrun { type boolean; default "true"; description "Report alarm for buffer-underrun"; } leaf remote-packet-loss { type boolean; default "false"; description "Report alarm for remote-packet-loss"; } leaf remote-fault { type boolean; default "false"; description "Report alarm for remote-fault"; } leaf remote-rdi { type boolean; default "false"; description "Report alarm for remote-rdi indication"; } } // container report-alarm } // container cem } // list sap list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf control-word { type boolean; default "true"; description "Whether the use of the control-word is preferred or not. This bit is exchanged with LDP peer during pseudowire negotiation time."; } leaf bandwidth { type types-services:sdp-bind-bandwidth; units "kilobps"; default "0"; description "Bandwidth that is reserved for this SDP binding"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf bfd-template { status obsolete; type leafref { path "../../../../bfd/bfd-template/name"; } description "BFD template associated with SDP binding"; } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../qos/network/network-policy-name"; } description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../qos/network/network-policy-name"; } description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos } // container egress container endpoint { description "Enter the endpoint context"; leaf name { type leafref { path "../../../../cpipe[service-name=current()/../../../service-name]/endpoint/name"; } sros-ext:auto-restart-to-modify; description "Name of endpoint to which this SDP bind is attached."; } leaf precedence { type types-services:sdp-precedence; default "4"; description "Precedence of this SDP bind when there are multiple SDP binds attached to one service endpoint"; } leaf icb { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Bind SDP as type Inter-Chassis Backup (ICB)"; } } // container endpoint container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type leafref { path "../../../../../bfd/bfd-template/name"; } description "BFD template associated with the SDP binding"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd } // list spoke-sdp } // list cpipe list epipe { key "service-name"; description "Enter the epipe list instance"; leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type leafref { path "../../customer/customer-name"; } sros-ext:immutable; mandatory true; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf vpn-id { type types-services:vpn-id; sros-ext:immutable; description "VPN identifier for the service"; } leaf vc-switching { type boolean; sros-ext:immutable; default "false"; description "PW switching signaling to be used by the spokes in the service"; } leaf test { type boolean; sros-ext:immutable; default "false"; description "Designate as a test service"; } leaf service-mtu { type int32 { range "1..9782"; } default "1514"; description "MTU size"; } leaf oper-group { type leafref { path "../../oper-group/name"; } description "Oper-group name"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list bgp { key "bgp-instance"; description "Enter the bgp list instance"; leaf bgp-instance { type int32 { range "1"; } description "BGP instance"; } leaf route-distinguisher { type types-services:vpn-route-distinguisher-or-auto-rd; description "High-order 6 bytes that are used as string to compose VSI-ID for use in NLRI"; } leaf-list vsi-import { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "VSI import policies"; } leaf-list vsi-export { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "VSI export policies"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container route-target { description "Enter the route-target context"; leaf export { type types-services:route-target; description "Extended community name for default import policy"; } leaf import { type types-services:route-target; description "Extended community name for default import policy"; } } // container route-target list pw-template-binding { key "pw-template-name"; max-elements 100; description "Enter the pw-template-binding list instance"; leaf pw-template-name { type leafref { path "../../../../pw-template/pw-template-name"; } description "PW template policy name"; } leaf bfd-template { type leafref { path "../../../../../bfd/bfd-template/name"; } description "BFD template name for PW-Template binding"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf-list import-rt { type types-services:route-target; max-elements 5; description "Import route-target communities"; } leaf endpoint { type leafref { path "../../../endpoint/name"; } sros-ext:immutable; description "Endpoint name associated with the BGP PW template"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pw-template-binding } // list bgp container bgp-vpws { presence "Enter the 'bgp-vpws' context"; description "Enable the bgp-vpws context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the VPWS edge instance"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container local-ve { description "Enter the local-ve context"; leaf name { type types-sros:named-item; sros-ext:auto-restart-to-modify; description "VPWS edge name"; } leaf id { type types-services:site-id; sros-ext:auto-restart-to-modify; description "Local VPWS edge ID"; } } // container local-ve list remote-ve { key "name"; max-elements 2; description "Enter the remote-ve list instance"; leaf name { type types-sros:named-item; description "VPWS edge name"; } leaf id { type types-services:site-id; description "Remote VPWS edge ID"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list remote-ve } // container bgp-vpws list endpoint { key "name"; max-elements 2; description "Enter the endpoint list instance"; leaf name { type types-sros:named-item; description "Service endpoint name"; } leaf description { type types-sros:description; description "Text description"; } leaf revert-time { type types-services:revert-time; default "immediate"; description "Time to wait before reverting back to the primary spoke-sdp defined on this service endpoint"; } leaf hold-time-active { type types-services:hold-time-active; description "Time to hold the active state before entering standby when a local MC-LAG SAP goes down"; } leaf standby-signaling { type enumeration { enum "master" { value 1; } enum "slave" { value 2; } } description "PW standby bit that is sent to T-LDP peer when spoke-SDPs are selected as standby"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list endpoint container eth-cfm { description "Enter the eth-cfm context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container eth-cfm container load-balancing { description "Enter the load-balancing context"; leaf per-service-hashing { type boolean; default "false"; description "Service level hashing for Ethernet services"; } } // container load-balancing list nat-outside { key "nat-group"; description "Enter the nat-outside list instance"; leaf nat-group { type uint32; description "NAT group"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Epipe as a NAT outside service"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list nat-outside container pbb { description "Enter the pbb context"; leaf force-qtag-forwarding { type boolean; default "false"; description "Add an IEEE 802.1q tag after the Customer MAC address when the PBB header is built"; } container tunnel { presence "Enter the 'tunnel' context"; description "Enable the tunnel context"; leaf backbone-vpls-service-name { type leafref { path "../../../../vpls/service-name"; } sros-ext:immutable; mandatory true; description "Backbone VPLS service"; } leaf isid { type types-services:isid; sros-ext:immutable; mandatory true; description "Service instance ID"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice backbone-mac { mandatory true; case backbone-dest-mac { leaf backbone-dest-mac { type types-sros:mac-unicast-address-no-zero; description "Backbone Destination MAC address"; } } case backbone-dest-mac-name { leaf backbone-dest-mac-name { type leafref { path "../../../../pbb/mac/name"; } description "Name for backbone Destination MAC address"; } } } } // container tunnel } // container pbb list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf vlan-vc-tag { type types-services:vlan-vc-tag; description "SDP bind VC tag"; } leaf collect-stats { type boolean; default "false"; description "Allow agent to collect accounting statistics"; } leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "Policy to collect accounting statistics"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf force-vc-forwarding { type enumeration { enum "vlan" { value 1; } enum "qinq-c-tag-c-tag" { value 2; } enum "qinq-s-tag-c-tag" { value 3; } } description "VC forwarding action"; } leaf bandwidth { type types-services:sdp-bind-bandwidth; units "kilobps"; default "0"; description "Bandwidth that is reserved for this SDP binding"; } leaf vc-type { type types-services:epipe-sdp-bind-vc-type; sros-ext:auto-restart-to-modify; default "ether"; description "Type of virtual circuit (VC) associated with the SDP binding"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf bfd-template { status obsolete; type leafref { path "../../../../bfd/bfd-template/name"; } description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } choice oper-group-association { case oper-group { leaf oper-group { type leafref { path "../../../oper-group/name"; } description "Operational group identifier"; } } case monitor-oper-group { leaf monitor-oper-group { type leafref { path "../../../oper-group/name"; } description "Operational group identifier that affect the state of this SDP bind"; } } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../qos/network/network-policy-name"; } description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos container l2tpv3 { description "Enter the l2tpv3 context"; container cookie { description "Enter the cookie context"; leaf cookie1 { type types-services:cookie-value; description "Value of cookie-1 for the tunnel"; } leaf cookie2 { type types-services:cookie-value; description "Value of cookie-1 for the tunnel"; } } // container cookie } // container l2tpv3 } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../qos/network/network-policy-name"; } description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos container l2tpv3 { description "Enter the l2tpv3 context"; leaf cookie { type types-services:cookie-value; description "Cookie parameters"; } } // container l2tpv3 } // container egress container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list squelch-ingress-ctag-levels { type uint32 { range "0..7"; } max-elements 8; description "Squelch levels using additional VLAN C-Tag space"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf primary-vlan { type boolean; sros-ext:immutable; default "false"; description "MEP provisioned using MA primary VLAN ID"; } leaf direction { type types-eth-cfm:mp-direction; sros-ext:immutable; description "Direction the MEP faces"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container endpoint { description "Enter the endpoint context"; leaf name { type leafref { path "../../../../epipe[service-name=current()/../../../service-name]/endpoint/name"; } sros-ext:auto-restart-to-modify; description "Name of endpoint to which this SDP bind is attached"; } leaf precedence { type types-services:sdp-precedence; default "4"; description "Precedence of this SDP bind when there are multiple SDP binds attached to one service endpoint"; } leaf icb { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Bind SDP as type Inter-Chassis Backup (ICB)"; } } // container endpoint container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } } } // container cpu-protection container pw-status { description "Enter the pw-status context"; leaf signaling { type boolean; default "true"; description "Allow SDP binding to support pseudowire status signaling"; } choice sdp-bind-pw-status { case block-on-peer-fault { leaf block-on-peer-fault { type boolean; default "false"; description "Block the user traffic on this SDP bind when peer PW status has fault bits set"; } } case standby-signaling-slave { leaf standby-signaling-slave { type boolean; default "false"; description "Block spoke transmission when the spoke receives standby status notification from peer"; } } } } // container pw-status container source-bmac { description "Enter the source-bmac context"; leaf use-sdp-bmac-lsb { type boolean; default "false"; description "Allow the spoke SDP to be part of a redundant pseudo-wire within PBB Epipe service"; } } // container source-bmac container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type leafref { path "../../../../../bfd/bfd-template/name"; } description "BFD template associated with the SDP binding"; } leaf failure-action { type types-services:sbind-bfd-fail-action; default "none"; description "VCCV BFD action taken on the SDP binding"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; description "Time to wait for BFD up status"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd } // list spoke-sdp list bgp-mh-site { key "site-name"; max-elements 1; description "Enter the bgp-mh-site list instance"; leaf site-name { type types-sros:named-item; description "Name for the specific site"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the site"; } leaf id { type types-services:site-id; sros-ext:auto-restart-to-modify; description "Site ID for the service"; } leaf sap { type types-sros:sap; sros-ext:auto-restart-to-modify; description "SAP to be associated with this site"; } leaf boot-timer { type types-services:site-boot-timer; units "seconds"; description "Time that system waits after node reboot and before it runs DF election algorithm"; } leaf activation-timer { type types-services:site-activation-timer; units "seconds"; description "Time that the local sites are in standby status, waiting for BGP updates"; } leaf preference { type uint32 { range "1..65535"; } description "Preference value to advertise in the NLRI L2 extended community"; } leaf min-down-timer { type types-services:site-min-down-timer; units "seconds"; description "Minimum downtime for BGP multi-homing site after transition from up to down"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list bgp-mh-site list sap { key "sap-id"; max-elements 2; description "Enter the sap list instance"; leaf sap-id { type types-sros:sap; description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "Accounting policy"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf cflowd { type boolean; default "false"; description "Enable Cflowd collection and analysis on this SAP"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type leafref { path "../../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Distributed CPU protection policy for SAP"; } leaf ignore-oper-down { type boolean; default "false"; description "Ignore operational down state of the SAP on SAP failure"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf endpoint { type leafref { path "../../endpoint/name"; } description "Name of the endpoint"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice oper-group-association { case oper-group { leaf oper-group { type leafref { path "../../../oper-group/name"; } description "Operational group"; } } case monitor-oper-group { leaf monitor-oper-group { type leafref { path "../../../oper-group/name"; } description "Monitor operational group"; } } } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Queue group instance"; } } // container fp-redirect-group container overrides { description "Enter the overrides context"; container ip-criteria { description "Enter the ip-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv4 criteria"; } } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv6 criteria"; } } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qtag-manipulation { if-feature nokia-features:sros-qtag-manipulation; description "Enter the qtag-manipulation context"; choice tags { case push-dot1q-vlan { leaf push-dot1q-vlan { type types-services:qtag-manipulation-info; description "VLAN translation information"; } } case push-qinq-vlan { leaf s-tag { type int32 { range "0..4094"; } description "Outer ingress VLN translation for two service delimiting VLAN values"; } leaf c-tag { type int32 { range "0..4094"; } description "Inner ingress VLAN translation for two service delimiting VLAN values"; } } } } // container qtag-manipulation container vlan-manipulation { if-feature nokia-features:sros-vlan-manipulation; description "Enter the vlan-manipulation context"; leaf action { type types-services:vlan-manipulation-ingress-action-type; description "Action to manipulate the VLAN tag(s) of the packets."; } leaf outer-tag { type types-services:vlan-manipulate-ingress-vlan-type; default "null"; description "Outer VLAN tag to be applied."; } leaf inner-tag { type types-services:vlan-manipulate-ingress-vlan-type; default "null"; description "Inner VLAN tag to be applied in case of QinQ encapsulation."; } } // container vlan-manipulation container aggregate-policer { description "Enter the aggregate-policer context"; leaf rate { type types-qos:aggr-policer-rate; default "max"; description "Aggregate policer rate to be used in kbps"; } leaf burst { type types-qos:aggr-policer-burst; default "default"; description "Aggregate policer burst"; } leaf cir { type types-qos:aggr-policer-cir; description "Aggregate policer cir to be used in kbps"; } leaf cbs { type types-qos:aggr-policer-cbs; description "Aggregate policer cbs"; } } // container aggregate-policer } // container ingress container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port redirect queue group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of port queue group"; } } // container port-redirect-group container overrides { description "Enter the overrides context"; leaf hs-secondary-shaper { type types-sros:named-item; description "HS Secondary Shaper"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf secondary-shaper { status obsolete; type types-sros:named-item; description "Secondary shaper for the HSMDA queue"; } leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Packet byte offset for HSMDA queue"; } leaf wrr-policy { status obsolete; type leafref { path "../../../../../../../../../qos/hsmda-wrr-policy/hsmda-wrr-policy-name"; } description "WRR policy for the HSMDA queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type leafref { path "../../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../../policy-name]/hsmda-queues/queue/queue-id"; } description "Egress HSMDA queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; description "Administrative PIR rate."; } leaf slope-policy { status obsolete; type leafref { path "../../../../../../../../../../qos/hsmda-slope-policy/hsmda-slope-policy-name"; } description "Name of the slope-policy which is used to override the default slope-policy for the named buffer pool."; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "Weight value for the HSMDA queue"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list queue } // container hsmda-queues list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type leafref { path "../../../../../../../../../../qos/slope-policy/slope-policy-name"; } description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/hs-wrr-group/group-id"; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Weight of scheduling class."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "Administrative PIR."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent."; } } } } // list hs-wrr-group } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/vlan-qos-policy/vlan-qos-policy-name"; } description "Egress vlan-qos-policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/egress-remark-policy/egress-remark-policy-name"; } description "Egress-remark-policy name"; } } // container egress-remark-policy } // container qos container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate container vlan-manipulation { if-feature nokia-features:sros-vlan-manipulation; description "Enter the vlan-manipulation context"; leaf action { type types-services:vlan-manipulation-egress-action-type; description "Action to manipulate the VLAN tag(s) of the packets."; } leaf tag { type types-services:vlan-manipulation-egress-vlan-type; default "null"; description "VLAN tag to be applied by action."; } } // container vlan-manipulation } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "Configure LAG link map profile."; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container l2tpv3-session { presence "Enter the 'l2tpv3-session' context"; description "Enable the l2tpv3-session context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the session for the service"; } leaf vc-id { type types-services:vc-id; sros-ext:auto-restart-to-modify; description "VC identifier."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container pseudo-wire { sros-ext:auto-restart-to-modify; description "Enter the pseudo-wire context"; choice type { case ethernet { leaf ethernet { type empty; sros-ext:auto-restart-to-modify; description "Ethernet type."; } } case ethernet-vlan-id { leaf ethernet-vlan-id { type int32 { range "0..4095"; } sros-ext:auto-restart-to-modify; description "Ethernet VLAN identifier."; } } } } // container pseudo-wire container router { sros-ext:auto-restart-to-modify; description "Enter the router context"; leaf group { type types-sros:named-item; sros-ext:auto-restart-to-modify; description "Tunnel group name."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; sros-ext:auto-restart-to-modify; description "Router instance hosting the l2tpv3 session."; } } // container router } // container l2tpv3-session container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list squelch-ingress-ctag-levels { type uint32 { range "0..7"; } max-elements 8; description "Squelch levels using additional VLAN C-Tag space"; } leaf ais { type boolean; default "false"; description "Generate AIS frames for the SAP based on a facility fault."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf primary-vlan { type boolean; sros-ext:immutable; default "false"; description "MEP provisioned using MA primary VLAN ID"; } leaf direction { type types-eth-cfm:mp-direction; sros-ext:immutable; description "Direction the MEP faces"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container mc-ring { presence "Enter the 'mc-ring' context"; description "Enable the mc-ring context"; leaf ring-node { type types-sros:named-item; mandatory true; description "Name for the ring node associated with this SAP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mc-ring container ethernet { description "Enter the ethernet context"; container llf { description "Enter the llf context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Link Loss Forwarding"; } } // container llf } // container ethernet } // list sap container vxlan { description "Enter the vxlan context"; leaf source-vtep { type types-sros:ip-unicast-address; description "Vxlan source virtual tunnel endpoint information"; } list instance { key "vxlan-instance"; max-elements 1; description "Enter the instance list instance"; leaf vxlan-instance { type uint32 { range "1"; } description "VXLAN instance"; } leaf vni { type types-services:vxlan-vni; sros-ext:immutable; mandatory true; description "VNI of the VXLAN"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress-vtep { description "Enter the egress-vtep context"; leaf ip-address { type types-sros:ip-unicast-address; description "VXLAN egress VTEP address"; } leaf oper-group { type leafref { path "../../../../../oper-group/name"; } description "Operational group associated with egress VTEP address"; } } // container egress-vtep } // list instance } // container vxlan container bgp-evpn { presence "Enter the 'bgp-evpn' context"; description "Enable the bgp-evpn context"; leaf evi { type types-services:evi; description "EVPN ID"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container local-ac { status obsolete; description "Enter the local-ac context"; leaf name { status obsolete; type types-sros:named-item; description "Attachment circuit name"; } leaf eth-tag { status obsolete; type types-services:bgp-evpn-ac-eth-tag; description "Ethernet tag of the attachment circuit"; } } // container local-ac container remote-ac { status obsolete; description "Enter the remote-ac context"; leaf name { status obsolete; type types-sros:named-item; description "Attachment circuit name"; } leaf eth-tag { status obsolete; type types-services:bgp-evpn-ac-eth-tag; description "Ethernet tag of the attachment circuit"; } } // container remote-ac list local-attachment-circuit { key "name"; max-elements 2; description "Enter the local-attachment-circuit list instance"; leaf name { type types-sros:named-item; description "Attachment circuit name"; } leaf endpoint { type leafref { path "../../../endpoint/name"; } sros-ext:immutable; description "Endpoint name"; } leaf eth-tag { type types-services:bgp-evpn-ac-eth-tag; description "Ethernet tag of the attachment circuit"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list local-attachment-circuit list remote-attachment-circuit { key "name"; max-elements 2; description "Enter the remote-attachment-circuit list instance"; leaf name { type types-sros:named-item; description "Attachment circuit name"; } leaf endpoint { type leafref { path "../../../endpoint/name"; } sros-ext:immutable; description "Endpoint name"; } leaf eth-tag { type types-services:bgp-evpn-ac-eth-tag; description "Ethernet tag of the attachment circuit"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list remote-attachment-circuit list vxlan { key "bgp-instance"; description "Enter the vxlan list instance"; leaf bgp-instance { type int32 { range "1..2"; } description "BGP instance"; } leaf vxlan-instance { type leafref { path "../../../vxlan/instance/vxlan-instance"; } sros-ext:immutable; mandatory true; description "VXLAN instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP EVPN VXLAN"; } leaf send-tunnel-encap { type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Send VXLAN value in encapsulation extended community"; } leaf ecmp { type types-services:ecmp-value; default "1"; description "Maximum ECMP routes information"; } leaf default-route-tag { type types-services:one-byte-value; sros-ext:auto-restart-to-modify; description "Default route tag"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list vxlan list mpls { key "bgp-instance"; description "Enter the mpls list instance"; leaf bgp-instance { type int32 { range "1..2"; } description "BGP instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP EVPN MPLS"; } leaf control-word { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable/disable setting the CW bit in the label message."; } leaf ecmp { type types-services:ecmp-value; default "1"; description "Maximum ECMP routes information"; } leaf entropy-label { type boolean; default "false"; description "Enable/disable use of entropy-label."; } leaf default-route-tag { type types-services:one-byte-value; sros-ext:auto-restart-to-modify; description "Default route tag"; } leaf force-vc-forwarding { type enumeration { enum "vlan" { value 1; } enum "qinq-c-tag-c-tag" { value 2; } enum "qinq-s-tag-c-tag" { value 3; } } description "VC forwarding action"; } leaf oper-group { type leafref { path "../../../../oper-group/name"; } description "Operational group identifier"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container send-tunnel-encap { description "Enter the send-tunnel-encap context"; leaf mpls { type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Enable MPLS encapsulation"; } leaf mpls-over-udp { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable MPLS over UDP encapsulation"; } } // container send-tunnel-encap container auto-bind-tunnel { description "Enter the auto-bind-tunnel context"; leaf resolution { type types-services:resolve-status; default "none"; description "Resolution method for tunnel selection"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Enable/disable enforcement of strict tunnel tagging"; } leaf ecmp { type types-router:mpls-ecmp; default "1"; description "Maximum ECMP routes information"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable flexible algorithm fallback"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; default "false"; description "Use BGP tunneling for next-hop resolution"; } leaf ldp { type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // container auto-bind-tunnel container route-next-hop { description "Enter the route-next-hop context"; choice tag { default "ipv4"; case ipv4 { leaf system-ipv4 { type empty; sros-ext:auto-restart-to-modify; description "Use system IPv4 address"; } } case ipv6 { leaf system-ipv6 { type empty; sros-ext:auto-restart-to-modify; description "Use system IPv6 address"; } } case explicit { leaf ip-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Use specific unicast IPv4/IPv6 address"; } } } } // container route-next-hop container endpoint { status obsolete; description "Enter the endpoint context"; leaf name { status obsolete; type leafref { path "../../../../endpoint/name"; } sros-ext:immutable; description "Name of endpoint the bgp-evpn mpls instance is associated with"; } } // container endpoint } // list mpls } // container bgp-evpn } // list epipe list ies { key "service-name"; description "Enter the ies list instance"; leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type leafref { path "../../customer/customer-name"; } sros-ext:immutable; mandatory true; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf vpn-id { type types-services:vpn-id; sros-ext:immutable; description "VPN identifier for the service"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container eth-cfm { description "Enter the eth-cfm context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container eth-cfm list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Name of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the interface"; } leaf radius-auth-policy { type leafref { path "../../../../subscriber-mgmt/radius-authentication-policy/name"; } description "Authentication policy"; } leaf tunnel { type boolean; sros-ext:immutable; default "false"; description "Enable/disable tunnel interface"; } leaf static-tunnel-redundant-nexthop { type types-sros:ipv4-unicast-address; description "IPv4 address of the redundant next-hop for static ISA tunnels on this interface"; } leaf dynamic-tunnel-redundant-nexthop { type types-sros:ipv4-unicast-address; description "IPv4 address of the redundant next-hop for dynamic ISA tunnels on this interface"; } leaf loopback { type boolean; default "false"; description "Use interface as a loopback interface"; } leaf monitor-oper-group { type leafref { path "../../../oper-group/name"; } description "Operational group to monitor"; } leaf shcv-policy-ipv4 { when "not(../tunnel = 'true')"; type leafref { path "../../../../subscriber-mgmt/shcv-policy/name"; } description "Host connectivity IPv4 policy"; } leaf cpu-protection { type leafref { path "../../../../system/security/cpu-protection/policy/policy-id"; } description "CPU protection policy"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf tos-marking-state { type types-router:tos-marking-state; default "untrusted"; description "TOS marking state"; } leaf multicast-network-domain { type leafref { path "../../../../router/network-domains/network-domain/domain-name"; } description "Network domain name"; } leaf ingress-stats { type boolean; default "false"; description "Collect ingress statistics"; } leaf mac-accounting { type boolean; default "false"; description "Enable MAC accounting functionality"; } leaf vas-if-type { when "../tunnel = 'false'"; type types-router:vas-if-type; description "VAS interface type"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf policy-accounting { type leafref { path "../../../../../routing-options/policy-accounting/policy-acct-template/name"; } description "Configure ingress policy accounting."; } leaf destination-class-lookup { type boolean; default "false"; description "Enable BGP destination class lookup"; } } // container ingress container load-balancing { description "Enter the load-balancing context"; leaf ip-load-balancing { type types-router:ip-load-balancing; default "both"; description "Configure IP load balancing algorithm."; } leaf spi-load-balancing { type boolean; default "false"; description "Allow use of SPI (Security Parameter Index) in hashing for ESP/AH encrypted IPv4/IPv6 traffic"; } leaf teid-load-balancing { type boolean; default "false"; description "Include TEID in hashing algorithm for GTP-U/C encapsulated traffic"; } } // container load-balancing container ping-template { presence "Enter the 'ping-template' context"; description "Enable the ping-template context"; leaf name { type leafref { path "../../../../../test-oam/icmp/ping-template/name"; } sros-ext:immutable; mandatory true; description "Ping template name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ping template"; } leaf destination-address { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "Ping template destination address"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ping-template list spoke-sdp { key "sdp-bind-id"; max-elements 1; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf collect-stats { type boolean; default "false"; description "Allow agent to collect accounting statistics"; } leaf accounting-policy { type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Policy to collect accounting statistics"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf vc-type { type types-services:ies-sdp-bind-vc-type; sros-ext:immutable; default "ether"; description "Type of virtual circuit (VC) associated with the SDP binding"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf bfd-template { status obsolete; type leafref { path "../../../../../bfd/bfd-template/name"; } description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../../qos/network/network-policy-name"; } description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../../qos/network/network-policy-name"; } description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type leafref { path "../../../../../../bfd/bfd-template/name"; } description "BFD template associated with the SDP binding"; } leaf failure-action { type types-services:sbind-bfd-fail-action; default "none"; description "VCCV BFD action taken on the SDP binding"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; description "Time to wait for BFD up status"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm } // list spoke-sdp container cflowd-parameters { description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type types-router:cflowd-sampling; description "Unicast or multicast traffic"; } leaf type { when "not(../sampling-type = 'both')"; type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } mandatory true; description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sampling } // container cflowd-parameters list sap { key "sap-id"; max-elements 1; description "Enter the sap list instance"; leaf sap-id { type types-sros:sap; description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Accounting policy"; } leaf anti-spoof { type types-services:anti-spoof-option; description "Anti-spoof filtering"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf calling-station-id { type types-sros:string-not-all-spaces { length "1..64"; } description "Calling station ID"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type leafref { path "../../../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Distributed CPU protection policy for SAP"; } leaf host-admin-state { type types-sros:admin-state; default "enable"; description "Enable/disable administrative state of hosts"; } leaf host-lockout-policy { type leafref { path "../../../../../subscriber-mgmt/host-lockout-policy/name"; } description "Host lockout policy"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf queue-group-redirect-list { type leafref { path "../../../../../../qos/queue-group-redirect-list/name"; } description "Queue group redirect list"; } container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type leafref { path "../../../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Queue group instance"; } } // container fp-redirect-group container overrides { description "Enter the overrides context"; container ip-criteria { description "Enter the ip-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv4 criteria"; } } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv6 criteria"; } } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container aggregate-policer { description "Enter the aggregate-policer context"; leaf rate { type types-qos:aggr-policer-rate; default "max"; description "Aggregate policer rate to be used in kbps"; } leaf burst { type types-qos:aggr-policer-burst; default "default"; description "Aggregate policer burst"; } leaf cir { type types-qos:aggr-policer-cir; description "Aggregate policer cir to be used in kbps"; } leaf cbs { type types-qos:aggr-policer-cbs; description "Aggregate policer cbs"; } } // container aggregate-policer } // container ingress container egress { description "Enter the egress context"; leaf queue-group-redirect-list { type leafref { path "../../../../../../qos/queue-group-redirect-list/name"; } description "Assign queue-group redirect list"; } container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type leafref { path "../../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port redirect queue group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of port queue group"; } } // container port-redirect-group container overrides { description "Enter the overrides context"; leaf hs-secondary-shaper { type types-sros:named-item; description "HS Secondary Shaper"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf secondary-shaper { status obsolete; type types-sros:named-item; description "Secondary shaper for the HSMDA queue"; } leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Packet byte offset for HSMDA queue"; } leaf wrr-policy { status obsolete; type leafref { path "../../../../../../../../../../qos/hsmda-wrr-policy/hsmda-wrr-policy-name"; } description "WRR policy for the HSMDA queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type leafref { path "../../../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../../policy-name]/hsmda-queues/queue/queue-id"; } description "Egress HSMDA queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; description "Administrative PIR rate."; } leaf slope-policy { status obsolete; type leafref { path "../../../../../../../../../../../qos/hsmda-slope-policy/hsmda-slope-policy-name"; } description "Name of the slope-policy which is used to override the default slope-policy for the named buffer pool."; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "Weight value for the HSMDA queue"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list queue } // container hsmda-queues list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type leafref { path "../../../../../../../../../../../qos/slope-policy/slope-policy-name"; } description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type leafref { path "../../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/hs-wrr-group/group-id"; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Weight of scheduling class."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "Administrative PIR."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent."; } } } } // list hs-wrr-group } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/vlan-qos-policy/vlan-qos-policy-name"; } description "Egress vlan-qos-policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/egress-remark-policy/egress-remark-policy-name"; } description "Egress-remark-policy name"; } } // container egress-remark-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container fwd-wholesale { description "Enter the fwd-wholesale context"; leaf pppoe-service { type leafref { path "../../../../../epipe/service-name"; } description "PPPoE service name"; } } // container fwd-wholesale container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm list ip-tunnel { key "tunnel-name"; max-elements 1; description "Enter the ip-tunnel list instance"; leaf tunnel-name { type types-sros:interface-name; description "IP tunnel name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the tunnel"; } leaf description { type types-sros:description; sros-ext:auto-restart-to-modify; description "Text description"; } leaf clear-df-bit { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Clear the Do-not-Fragment bit"; } leaf delivery-service { type types-services:service-name; sros-ext:auto-restart-to-modify; description "Delivery service name"; } leaf dscp { type types-qos:dscp-name; sros-ext:auto-restart-to-modify; description "Differentiated Services Code Point (DSCP) name"; } leaf encapsulated-ip-mtu { type uint32 { range "512..9000"; } units "bytes"; sros-ext:auto-restart-to-modify; description "Encapsulated IP MTU of this tunnel"; } leaf ip-mtu { type uint32 { range "512..9000"; } units "bytes"; sros-ext:auto-restart-to-modify; description "IP MTU of this tunnel"; } leaf public-tcp-mss-adjust { type union { type uint32 { range "512..9000"; } type enumeration { enum "auto" { value 0; } } } units "bytes"; sros-ext:auto-restart-to-modify; description "TCP maximum segment size (MSS) on private network"; } leaf private-tcp-mss-adjust { type int32 { range "512..9000"; } units "bytes"; sros-ext:auto-restart-to-modify; description "TCP maximum segment size (MSS) on private network"; } leaf reassembly { type union { type int32 { range "1..5000"; } type enumeration { enum "use-tunnel-group-setting" { value -1; } enum "none" { value 0; } } } units "milliseconds"; sros-ext:auto-restart-to-modify; description "Reassembly wait time"; } leaf remote-ip-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Remote IP address of this tunnel"; } leaf backup-remote-ip-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Backup remote IP address that is applied to this tunnel"; } leaf local-ip-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Local IP address of this tunnel"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container icmp6-generation { sros-ext:auto-restart-to-modify; description "Enter the icmp6-generation context"; container packet-too-big { sros-ext:auto-restart-to-modify; description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; description "Administrative state of sending Packet Too Big messages"; } leaf number { type uint32 { range "10..1000"; } sros-ext:auto-restart-to-modify; default "100"; description "Number of packet-too-big ICMPv6 messages issued in a specified time frame"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; sros-ext:auto-restart-to-modify; default "10"; description "Time frame to limit the number of packet-too-big ICMPv6 messages"; } } // container packet-too-big } // container icmp6-generation container gre-header { sros-ext:auto-restart-to-modify; description "Enter the gre-header context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; description "Administrative state of the GRE header in the tunnel"; } container key { sros-ext:auto-restart-to-modify; description "Enter the key context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the keys in the GRE header"; } leaf send { type uint32; sros-ext:auto-restart-to-modify; default "0"; description "Send key of a GRE header"; } leaf receive { type uint32; sros-ext:auto-restart-to-modify; default "0"; description "Receive key of a GRE header"; } } // container key } // container gre-header list dest-ip { key "dest-ip-address"; sros-ext:auto-restart-to-modify; description "Add a list entry for dest-ip"; leaf dest-ip-address { type types-sros:ip-address; description "Destination IP address of the tunnel"; } } // list dest-ip } // list ip-tunnel list ipsec-gateway { key "name"; max-elements 1; description "Enter the ipsec-gateway list instance"; leaf name { type types-sros:named-item; description "IPsec gateway name."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec gateway."; } leaf default-tunnel-template { type leafref { path "../../../../../../ipsec/tunnel-template/id"; } description "The IPsec tunnel template ID."; } leaf ike-policy { type leafref { path "../../../../../../ipsec/ike-policy/id"; } description "IKE policy ID."; } leaf pre-shared-key { type types-sros:encrypted-leaf { length "1..115"; } description "The pre-shared key used for authentication by two peers forming the tunnel for the IPSec gateway."; } leaf ts-list { type leafref { path "../../../../../../ipsec/ts-list/name"; } description "The name of Traffic Selector (TS) list, used for IKEv2 TS negotiation."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container dhcp-address-assignment { description "Enter the dhcp-address-assignment context"; container dhcpv4 { presence "Enter the 'dhcpv4' context"; description "Enable the dhcpv4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec DHCPv4 server."; } leaf gi-address { type types-sros:ipv4-unicast-address; description "The giaddr of relayed DHCPv4 header."; } leaf send-release { type boolean; default "true"; description "Send DHCPv4 release messages."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container server { description "Enter the server context"; leaf-list address { type types-sros:ipv4-unicast-address; max-elements 8; description "The DHCPv4 server addresses."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance to reach the DHCPv4 server."; } } // container server } // container dhcpv4 container dhcpv6 { presence "Enter the 'dhcpv6' context"; description "Enable the dhcpv6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec DHCPv6 server."; } leaf link-address { type types-sros:ipv6-unicast-address; description "The link-address in DHCPv6 relay packet."; } leaf send-release { type boolean; default "true"; description "Send DHCPv6 release messages when a tunnel is down."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container server { description "Enter the server context"; leaf-list address { type types-sros:ipv6-unicast-address; max-elements 8; description "The DHCPv6 server addresses."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance to reach the DHCPv6 server."; } } // container server } // container dhcpv6 } // container dhcp-address-assignment container cert { description "Enter the cert context"; leaf cert-profile { type leafref { path "../../../../../../../ipsec/cert-profile/name"; } description "Certificate profile name."; } leaf trust-anchor-profile { type leafref { path "../../../../../../../ipsec/trust-anchor-profile/name"; } description "Trust anchor profile."; } container status-verify { description "Enter the status-verify context"; leaf default-result { type enumeration { enum "revoked" { value 0; } enum "good" { value 1; } } default "revoked"; description "The default result of Certificate Status Verification (CSV)."; } leaf primary { type types-ipsec:cert-revocation-status; default "crl"; description "The primary method used to verify the peer certificate's revocation status."; } leaf secondary { type types-ipsec:cert-revocation-status-with-none; default "none"; description "The secondary method used to verify the peer certificate's revocation status."; } } // container status-verify } // container cert container client-db { presence "Enter the 'client-db' context"; description "Enable the client-db context"; leaf name { type leafref { path "../../../../../../../ipsec/client-db/name"; } mandatory true; description "IPsec client database name."; } leaf fallback { type boolean; default "true"; description "Fall back to the tunnel authentication and creation attribute as if client-db is not configured when IPsec database client matching has failed."; } } // container client-db container default-secure-service { presence "Enter the 'default-secure-service' context"; description "Enable the default-secure-service context"; leaf service-name { type types-services:service-name; sros-ext:auto-restart-to-modify; description "Administrative service name"; } leaf interface { type types-sros:interface-name; sros-ext:auto-restart-to-modify; description "The name of the default interface used by this IPsec gateway."; } } // container default-secure-service container local { description "Enter the local context"; leaf gateway-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "The IPsec gateway address."; } container address-assignment { presence "Enter the 'address-assignment' context"; description "Enable the address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignments"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf router-instance { type types-sros:router-instance-base-vprn-loose; mandatory true; description "Router instance hosting the DHCPv4 connection."; } leaf dhcp-server { type types-sros:named-item; mandatory true; description "Local DHCPv4 server name"; } leaf pool { type types-sros:named-item; mandatory true; description "Name of the pool defined in the specified DHCPv4 server"; } leaf secondary-pool { type types-sros:named-item; description "Name of the secondary pool defined in the DHCPv4 server"; } } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf router-instance { type types-sros:router-instance-base-vprn-loose; mandatory true; description "Router instance hosting the DHCPv6 connection."; } leaf dhcp-server { type types-sros:named-item; mandatory true; description "Local DHCPv6 server name"; } leaf pool { type types-sros:named-item; mandatory true; description "Name of the secondary pool defined in the DHCPv6 server"; } } // container ipv6 } // container address-assignment container id { description "Enter the id context"; choice id { default "auto"; case auto { leaf auto { type empty; sros-ext:auto-restart-to-modify; description "System picks a local ID automatically based on auth-method configured in ike-policy."; } } case ipv4 { leaf ipv4 { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "The IPv4 Local ID."; } } case ipv6 { leaf ipv6 { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "The IPv6 Local ID."; } } case fqdn { leaf fqdn { type types-sros:fully-qualified-domain-name; sros-ext:auto-restart-to-modify; description "The Fully Qualified Domain Name (FQDN) Local ID."; } } } } // container id } // container local container radius { description "Enter the radius context"; leaf accounting-policy { type leafref { path "../../../../../../../ipsec/radius/accounting-policy/name"; } description "RADIUS accounting policy."; } leaf authentication-policy { type leafref { path "../../../../../../../ipsec/radius/authentication-policy/name"; } description "RADIUS authentication policy."; } } // container radius container max-history-key-records { description "Enter the max-history-key-records context"; leaf ike { type uint32 { range "1..3"; } description "The maximum number of historical IKE keys which can be recorded by the system."; } leaf esp { type uint32 { range "1..48"; } description "The maximum number of historical ESP keys which can be recorded by the system."; } } // container max-history-key-records } // list ipsec-gateway container static-host { description "Enter the static-host context"; list ipv4 { key "ip mac"; description "Enter the ipv4 list instance"; leaf ip { type types-sros:ipv4-address; description "IP address"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type leafref { path "../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Sub-profile name"; } leaf sla-profile { type leafref { path "../../../../../../../subscriber-mgmt/sla-profile/name"; } description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id } // list ipv4 } // container static-host } // list sap list vpls { when "../tunnel = 'false'"; key "vpls-name"; max-elements 1; description "Enter the vpls list instance"; leaf vpls-name { type types-sros:named-item-64; description "VPLS service"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container evpn { description "Enter the evpn context"; container arp { description "Enter the arp context"; leaf learn-dynamic { type boolean; default "true"; description "Process ARP or ND messages on EVPN tunnels"; } leaf flood-garp-and-unknown-req { type boolean; default "true"; description "Allow CPM originated ARP frames to flood R-VPLS service"; } list advertise { key "route-type"; description "Enter the advertise list instance"; leaf route-type { type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "0..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list advertise } // container arp container nd { description "Enter the nd context"; leaf learn-dynamic { type boolean; default "true"; description "Process ARP or ND messages on EVPN tunnels"; } list advertise { key "route-type"; description "Enter the advertise list instance"; leaf route-type { type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "0..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list advertise } // container nd } // container evpn container egress { description "Enter the egress context"; leaf reclassify-using-qos { type leafref { path "../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Egress QoS policy"; } container routed-override-filter { description "Enter the routed-override-filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container routed-override-filter } // container egress container ingress { description "Enter the ingress context"; container routed-override-filter { description "Enter the routed-override-filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container routed-override-filter } // container ingress } // list vpls container hold-time { when "../tunnel = 'false' or not(../loopback != 'false')"; description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv6 } // container hold-time container ipv4 { description "Enter the ipv4 context"; leaf tcp-mss { type types-router:ipv4-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf allow-directed-broadcasts { type boolean; default "false"; description "Forward directed broadcasts"; } leaf local-dhcp-server { when "../../tunnel = 'false'"; type leafref { path "../../../../../router/dhcp-server/dhcpv4/name"; } description "DHCP server for the interface"; } leaf qos-route-lookup { type types-router:qos-route-lookup; description "QoS Route lookup"; } leaf ip-helper-address { type types-sros:ipv4-unicast-address; description "Gateway address"; } container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container unnumbered { description "Enter the unnumbered context"; choice source { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IP address of the interface"; } } case ip-int-name { leaf ip-int-name { type types-sros:interface-name; description "Name of the interface"; } } case ip-int-system { leaf system { type empty; description "IP interface as an unnumbered interface"; } } } } // container unnumbered container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; mandatory true; description "Primary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container primary list secondary { key "address"; description "Enter the secondary list instance"; leaf address { type types-sros:ipv4-unicast-address; description "Secondary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf igp-inhibit { type boolean; default "false"; description "Secondary IP address that is not recognized as local interface by the running IGP"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list secondary container addresses { description "Enter the addresses context"; list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "IPv4 address for the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address } // container addresses container neighbor-discovery { when "../../tunnel = 'false'"; description "Enter the neighbor-discovery context"; leaf timeout { type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } leaf retry-timer { type uint32 { range "1..300"; } units "deciseconds"; default "50"; description "ARP retry interval"; } leaf learn-unsolicited { type boolean; default "false"; description "Learn new entries from any received NA message"; } leaf proactive-refresh { type boolean; default "false"; description "Send a single refresh message with no retries 30 seconds prior to entry timeout"; } leaf populate { type boolean; default "false"; description "Allow static and dynamic hosts to be populated in system ARP cache"; } leaf local-proxy-arp { type boolean; default "false"; description "Enable local proxy ARP on interface"; } leaf remote-proxy-arp { type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Proxy ARP policy name"; } leaf populate-host { status obsolete; type boolean; default "false"; description "Allow addition or deletion of host routes in route table derived from ARP entries in ARP cache"; } leaf route-tag { status obsolete; type types-router:route-tag; description "ARP route tag"; } container host-route { description "Enter the host-route context"; list populate { key "route-type"; description "Enter the populate list instance"; leaf route-type { type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } enum "evpn" { value 3; } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "1..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list populate } // container host-route container limit { description "Enter the limit context"; leaf max-entries { type types-router:ipv4-neighbor-limit; description "Maximum number of entries that can be learned"; } leaf log-only { type boolean; default "false"; description "Apply the limit to log entries only"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message"; } } // container limit container static-neighbor-unnumbered { when "../../unnumbered/ip-address or ../../unnumbered/ip-int-name or ../../unnumbered/system"; presence "Enter the 'static-neighbor-unnumbered' context"; description "Enable the static-neighbor-unnumbered context"; leaf mac-address { type yang:mac-address; mandatory true; description "Media-dependent physical address"; } } // container static-neighbor-unnumbered list static-neighbor { when "not(../../unnumbered/ip-address) and not(../../unnumbered/ip-int-name) and not(../../unnumbered/system)"; key "ipv4-address"; description "Enter the static-neighbor list instance"; leaf ipv4-address { type types-sros:ipv4-address; description "IPv4 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; mandatory true; description "Media-dependent physical address"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list static-neighbor } // container neighbor-discovery container dhcp { description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf python-policy { when "../../../tunnel = 'false'"; type leafref { path "../../../../../../python/python-policy/name"; } description "Python policy"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "IP addresses for DHCP server requests"; } leaf trusted { type boolean; default "false"; description "Relay untrusted packets"; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf relay-plain-bootp { when "../../../tunnel = 'false'"; type boolean; default "false"; description "Enable/disable relaying of plain BOOTP packets."; } leaf use-arp { when "../../../tunnel = 'false'"; type boolean; default "false"; description "Enable/disable the use of ARP to determine the destination Hw address."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP proxy server"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "The address used as source and siaddr when emulating a DHCP server."; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the circuit-id."; } } case ifindex { leaf ifindex { type empty; description "Use the interface index for the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in the option."; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf pool-name { type boolean; default "false"; description "Send the pool name in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "0..511999"; } default "0"; description "The maximum number of DHCPv4 leases."; } } // container lease-populate container relay-proxy { presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy } // container dhcp list vrrp { key "virtual-router-id"; description "Enter the vrrp list instance"; leaf virtual-router-id { type int32 { range "1..255"; } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Password for simple text authentication"; } leaf-list backup { type types-sros:ipv4-unicast-address; max-elements 16; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "1..2559"; } units "deciseconds"; default "10"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "false"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type leafref { path "../../../../../../vrrp/policy/policy-id"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ssh-reply { type boolean; default "false"; description "Allow non-owner master to reply to SSH requests"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type leafref { path "../../../../../oper-group/name"; } description "Operational group name associated with VRRP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "Destination IP address to be used for BFD session"; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; mandatory true; description "Name of interface running BFD"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container bfd-liveness } // list vrrp } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf qos-route-lookup { type types-router:qos-route-lookup; description "QoS Route lookup"; } leaf forward-ipv4-packets { type boolean; default "false"; description "Forward unencapsulated IPv4 packets"; } leaf tcp-mss { type types-router:ipv6-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf duplicate-address-detection { type boolean; default "true"; description "Enable/disable Duplicate Address Detection"; } leaf local-dhcp-server { when "../../tunnel = 'false'"; type leafref { path "../../../../../router/dhcp-server/dhcpv6/name"; } description "DHCP server for the interface"; } container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container icmp6 { description "Enter the icmp6 context"; container packet-too-big { description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of packet-too-big messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of packet-too-big messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit packet-too-big messages"; } } // container packet-too-big container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of param-problem messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of parameter-problem messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit parameter problem messages"; } } // container param-problem container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of redirect messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit redirect messages"; } } // container redirects container time-exceeded { description "Enter the time-exceeded context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the time-exceeded messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of time-exceeded messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit time-exceeded messages"; } } // container time-exceeded container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of unreachable messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit unreachable messages"; } } // container unreachables } // container icmp6 container link-local-address { description "Enter the link-local-address context"; leaf address { type types-sros:ipv6-address; description "Link-local IPv6 address of this router interface"; } leaf duplicate-address-detection { type boolean; default "true"; description "Enable/disable Duplicate Address Detection."; } } // container link-local-address container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "IPv6 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..128"; } mandatory true; description "IPv6 address prefix length"; } leaf eui-64 { type boolean; sros-ext:immutable; default "false"; description "Form complete IPv6 address from supplied prefix and 64-bit interface identifier"; } leaf duplicate-address-detection { type boolean; sros-ext:immutable; default "true"; description "Enable/disable Duplicate Address Detection."; } leaf primary-preference { type uint32 { range "1..4294967295"; } description "Index assigned to the IPv6 address of the interface"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "Track the state of the SRRP instance on this IP address"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address container dhcp6 { when "../../tunnel = 'false'"; description "Enter the dhcp6 context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container relay { description "Enter the relay context"; leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 relay"; } leaf link-address { type types-sros:ipv6-address; description "Link address of the DHCPv6 relay messages"; } leaf neighbor-resolution { type boolean; default "false"; description "Enable neighbor resolution via DHCPv6 relay"; } leaf python-policy { type leafref { path "../../../../../../../python/python-policy/name"; } description "Python policy name"; } leaf source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source IPv6 address of the DHCPv6 relay messages"; } leaf user-db { type leafref { path "../../../../../../../subscriber-mgmt/local-user-db/name"; } description "Local user database for authentication"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCPv6 server to which the DHCPv6 requests are forwarded"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container lease-populate { description "Enter the lease-populate context"; leaf max-nbr-of-leases { type int32 { range "0..32767"; } default "0"; description "Maximum number of lease states allocated by the DHCPv6 relay function, allowed on interface"; } container route-populate { description "Enter the route-populate context"; leaf na { type boolean; default "false"; description "Create route based on IA_NA prefix option in relay-reply message"; } leaf ta { type boolean; default "false"; description "Create route based on IA_TA prefix option in relay-reply message"; } container pd { presence "Enter the 'pd' context"; description "Enable the pd context"; leaf exclude { type boolean; default "false"; description "Create back hole route based on prefix exclude option in relay-reply message"; } } // container pd } // container route-populate } // container lease-populate container option { description "Enter the option context"; leaf remote-id { type boolean; default "false"; description "Allow remote ID option to be sent in the DHCPv6 relay packet"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container interface-id { description "Enter the interface-id context"; choice interface-id { case ascii-tuple { leaf ascii-tuple { type empty; description "Use ASCII-encoded concatenated tuple in interface ID option in DHCPv6 relay packet"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in interface ID option in DHCPv6 relay packet"; } } case if-index { leaf if-index { type empty; description "Use interface index in interface ID option in DHCPv6 relay packet"; } } case string { leaf string { type types-sros:string-not-all-spaces { length "1..80"; } description "String for interface ID option in DHCPv6 relay packet"; } } } } // container interface-id } // container option } // container relay container server { description "Enter the server context"; leaf max-nbr-of-leases { type int32 { range "0..8000"; } default "8000"; description "DHCPv6 leases allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container prefix-delegation { description "Enter the prefix-delegation context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the prefix delegation"; } list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "IPv6 prefix to be delegated"; } leaf preferred-lifetime { type types-services:ipv6-prefix-lifetime; units "seconds"; default "604800"; description "IPv6 prefix/mask preferred life time"; } leaf valid-lifetime { type types-services:ipv6-prefix-lifetime; units "seconds"; default "2592000"; description "IPv6 prefix/mask valid life time"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container client-id { description "Enter the client-id context"; leaf duid { type string { length "1..130"; } description "Requesting router ID"; } leaf iaid { type uint32 { range "1..4294967295"; } description "IAID from the requesting router that matches to delegate the prefix"; } } // container client-id } // list prefix } // container prefix-delegation } // container server } // container dhcp6 container neighbor-discovery { when "../../tunnel = 'false'"; description "Enter the neighbor-discovery context"; leaf reachable-time { type types-router:neighbor-discovery-reachable-time; description "Timer for neighbor reachability detection"; } leaf stale-time { type types-router:neighbor-discovery-stale-time; description "Time during which a neighbor discovery cache entry remains stale"; } leaf learn-unsolicited { type types-router:ipv6-address-type-selection; description "Type of entries learned from unsolicited NA messages"; } leaf proactive-refresh { type types-router:ipv6-address-type-selection; description "Neighbor entries to be refreshed proactively"; } leaf local-proxy-nd { type boolean; default "false"; description "Enable neighbor discovery on interface"; } leaf-list proxy-nd-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Name of the proxy Neighbor Discovery policies for the interface"; } leaf populate-host { status obsolete; type boolean; default "false"; description "Allow addition or deletion of host routes in route table derived from ARP entries in ARP cache"; } leaf route-tag { status obsolete; type types-router:route-tag; description "ARP route tag"; } container host-route { description "Enter the host-route context"; list populate { key "route-type"; description "Enter the populate list instance"; leaf route-type { type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } enum "evpn" { value 3; } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "1..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list populate } // container host-route container secure-nd { description "Enter the secure-nd context"; leaf allow-unsecured-msgs { type boolean; default "true"; description "Accept unsecured messages"; } leaf public-key-min-bits { type uint32 { range "512..1024"; } default "1024"; description "Minimum acceptable key length for public keys"; } leaf security-parameter { type uint32 { range "0..1"; } default "1"; description "Security parameter in the generation of a cryptographical address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of secure neighbor discovery"; } } // container secure-nd container limit { description "Enter the limit context"; leaf max-entries { type types-router:ipv6-neighbor-limit; description "Maximum number of entries that can be learned on an IP interface"; } leaf log-only { type boolean; default "false"; description "Log warning messages at threshold or when limit is exceeded, however entries are learned above limit"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message to be sent"; } } // container limit list static-neighbor { key "ipv6-address"; description "Enter the static-neighbor list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "IPv6 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; mandatory true; description "Media-dependent physical address"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list static-neighbor } // container neighbor-discovery list vrrp { key "virtual-router-id"; max-elements 1; description "Enter the vrrp list instance"; leaf virtual-router-id { type int32 { range "1..255"; } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf-list backup { type types-sros:ipv6-address; max-elements 4; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "10..4095"; } units "centiseconds"; default "100"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "true"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type leafref { path "../../../../../../vrrp/policy/policy-id"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type leafref { path "../../../../../oper-group/name"; } description "Operational group name associated with VRRP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv6-address; sros-ext:immutable; mandatory true; description "ip-address."; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; mandatory true; description "Name of interface running BFD"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container bfd-liveness } // list vrrp } // container ipv6 container if-attribute { description "Enter the if-attribute context"; leaf-list admin-group { type leafref { path "../../../../../routing-options/if-attribute/admin-group/group-name"; } max-elements 32; description "Names of the admin group memberships of the interface"; } list srlg-group { key "name"; description "Add a list entry for srlg-group"; leaf name { type leafref { path "../../../../../../routing-options/if-attribute/srlg-group/name"; } description "Shared Risk Link Group (SRLG) name."; } } // list srlg-group } // container if-attribute } // list interface list redundant-interface { key "interface-name"; description "Enter the redundant-interface list instance"; leaf interface-name { type types-sros:interface-name; description "Name of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the interface"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 } // container hold-time list spoke-sdp { key "sdp-bind-id"; max-elements 1; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container filter } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container filter } // container egress } // list spoke-sdp container ipv4 { description "Enter the ipv4 context"; container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; mandatory true; description "IPv4 address to be assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "The prefix length 0..32 for IPv4 Address."; } leaf remote-ip { type types-sros:ipv4-unicast-address; description "IP address of the remote redundant interface."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container primary } // container ipv4 } // list redundant-interface container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IGMP host tracking"; } leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "260"; description "Time during which the system continues to track inactive hosts"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container igmp-host-tracking list subscriber-interface { key "interface-name"; description "Enter the subscriber-interface list instance"; leaf interface-name { type types-sros:interface-name; description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the subscriber interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf fwd-service { type leafref { path "../../../vprn/service-name"; } sros-ext:immutable; description "Configure the forwarding service."; } leaf fwd-subscriber-interface { type leafref { path "../../../vprn[service-name=current()/../fwd-service]/subscriber-interface/interface-name"; } sros-ext:immutable; description "Forwarding subscriber interface name"; } leaf wan-mode { type enumeration { enum "mode64" { value 1; } enum "mode128" { value 2; } } sros-ext:immutable; default "mode64"; description "The mode of operation for hosts that have a /128 WAN IPv6 address."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf allow-unmatching-subnets { type boolean; default "false"; description "Allow subscriber hosts without a matching subnet"; } leaf export-host-routes { when "../../fwd-service"; type boolean; default "false"; description "Allow export of subscriber management host routes"; } leaf-list default-dns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "Default DNS server addresses"; } list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "IP address associated with the subscriber subnet"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf gateway { type types-sros:ipv4-unicast-address; description "Gateway IP address within the subnet for SRRP routing"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf populate-host-routes { type boolean; default "false"; description "Populate subscriber host routes in local FIB"; } leaf holdup-time { type uint32 { range "100..5000"; } units "milliseconds"; description "Wait time before accepting new state attribute"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address container unnumbered { description "Enter the unnumbered context"; choice source { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IP address of the interface"; } } case ip-int-name { leaf ip-int-name { type types-sros:interface-name; description "Interface name"; } } } } // container unnumbered container dhcp { description "Enter the dhcp context"; leaf admin-state { when "../../../fwd-service"; type types-sros:admin-state; default "enable"; description "Administrative state of DHCP"; } leaf description { when "../../../fwd-service"; type types-sros:description; description "Text description"; } leaf python-policy { when "../../../fwd-service"; type leafref { path "../../../../../../python/python-policy/name"; } description "Python policy"; } leaf-list server { when "../../../fwd-service"; type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "Configure the DHCP server IP addresses."; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf virtual-subnet { when "not(../../../fwd-service)"; type boolean; default "false"; description "Enable/disable virtual subnetting."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container proxy-server { when "../../../fwd-service"; description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP proxy server"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { when "../../../fwd-service"; description "Enter the option-82 context"; container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { when "../../../fwd-service"; description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "0..511999"; } description "The maximum number of DHCPv4 leases."; } } // container lease-populate container client-applications { when "../../../fwd-service"; description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Enable/disable DHCP as client application."; } leaf ppp { type boolean; default "false"; description "Enable/disable PPP as client application."; } } // container client-applications container relay-proxy { when "../../../fwd-service"; presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy } // container dhcp } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf allow-multiple-wan-addresses { when "../../fwd-service"; type boolean; default "false"; description "Configure if the interface will accept multiple WAN addresses."; } leaf ipoe-bridged-mode { when "../../fwd-service"; type boolean; default "false"; description "Enable/Disable IPv6 IPoE Bridged Mode."; } leaf allow-unmatching-prefixes { type boolean; default "false"; description "Allow subscriber hosts without a matching prefix"; } leaf delegated-prefix-length { when "not(../../fwd-service)"; type union { type uint32 { range "48..64"; } type enumeration { enum "variable" { value 0; } } } default "64"; description "IPv6 delegated prefix length"; } leaf-list default-dns { type types-sros:ipv6-unicast-address; max-elements 2; ordered-by user; description "Default DNS server addresses"; } list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "IPv6 address for the subscriber interface"; } leaf prefix-length { type uint32 { range "0..128"; } mandatory true; description "IPv6 address prefix length"; } leaf host-type { type enumeration { enum "pd" { value 0; description "Configure to make this aggregate to be used by IPv6 ESM hosts for DHCPv6 prefix-delegation."; } enum "wan" { value 1; description "Configure to make this aggregate to be used by ESM hosts for DHCPv6 addresses or by WAN interface."; } enum "pd-wan" { value 2; description "Configure to make this aggregate to be used by both prefix-delegation and ESM hosts."; } } sros-ext:immutable; default "pd"; description "Host type for subscriber interface prefixes"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "IPv6 address for a router interface"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf holdup-time { type uint32 { range "100..5000"; } units "milliseconds"; description "Configures the time to wait, in milliseconds, for the route before it accepts the new state attribute."; } leaf host-type { type enumeration { enum "pd" { value 0; description "Configure to make this aggregate to be used by IPv6 ESM hosts for DHCPv6 prefix-delegation."; } enum "wan" { value 1; description "Configure to make this aggregate to be used by ESM hosts for DHCPv6 addresses or by WAN interface."; } enum "pd-wan" { value 2; description "Configure to make this aggregate to be used by both prefix-delegation and ESM hosts."; } } sros-ext:immutable; default "pd"; description "Host type for subscriber interface prefixes"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix container link-local-address { description "Enter the link-local-address context"; leaf address { type types-sros:ipv6-address; description "IPv6 link local address"; } } // container link-local-address container dhcp6 { when "../../fwd-service"; description "Enter the dhcp6 context"; leaf override-slaac { type boolean; default "false"; description "Allow WAN address offered by DHCP to overwrite the WAN address acquired from SLAAC"; } leaf python-policy { type leafref { path "../../../../../../python/python-policy/name"; } description "Python policy"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pd-managed-route { presence "Enter the 'pd-managed-route' context"; description "Enable the pd-managed-route context"; leaf next-hop { type types-services:dhcp6-pd-managed-route-nh; default "ipv6"; description "Next hop type"; } } // container pd-managed-route container relay { description "Enter the relay context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 Relay"; } leaf description { type types-sros:description; description "Text description"; } leaf source-address { type types-sros:ipv6-unicast-address; description "Source IPv6 address for the DHCPv6 relay messages"; } leaf link-address { type types-sros:ipv6-address; description "Link address for the DHCPv6 relay messages"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCP6 server(s) to which the DHCP6 requests are forwarded"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container lease-split { description "Enter the lease-split context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 lease split"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime-new; default "3600"; description "DHCPv6 lease split valid lifetime (short lease time)"; } } // container lease-split } // container relay container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 proxy server"; } leaf preferred-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "3600"; description "Time for prefix to remain preferred on this interface"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "86400"; description "Time for prefix to remain valid on this interface"; } leaf renew-timer { type types-submgt:dhcp6-renew-timer; description "Renew timer (T1)"; } leaf rebind-timer { type types-submgt:dhcp6-rebind-timer; description "Rebind timer (T2) for this interface"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container server-id { description "Enter the server-id context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice server-id { default "duid-ll"; case duid-ll { leaf duid-ll { type empty; description "Use link-layer address (DUID-LL) as DUID"; } } case duid-en-hex { leaf duid-en-hex { type string { length "1..118"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as a hexadecimal string"; } } case duid-en-ascii { leaf duid-en-ascii { type types-sros:string-not-all-spaces { length "1..58"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as an ASCII string"; } } } } // container server-id } // container proxy-server } // container dhcp6 container router-advertisements { when "../../fwd-service"; description "Enter the router-advertisements context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf max-advertisement-interval { type types-sros:time-duration { range "900..1800"; } units "seconds"; default "1800"; description "Maximum advertisement interval"; } leaf min-advertisement-interval { type types-sros:time-duration { range "900..1350"; } units "seconds"; default "900"; description "Minimum advertisement interval"; } leaf force-mcast { type enumeration { enum "ip" { value 1; } enum "ip-mac" { value 2; } } description "Send router advertisement to a multicast address instead of unicast for IPoE"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container options { description "Enter the options context"; leaf current-hop-limit { type uint32 { range "0..255"; } default "64"; description "Hop limit to be advertised"; } leaf managed-configuration { type boolean; default "false"; description "Managed address configuration flag"; } leaf mtu { type union { type uint32 { range "1280..9212"; } type enumeration { enum "not-included" { value 0; } } } units "bytes"; default "not-included"; description "Advertised MTU value"; } leaf other-stateful-configuration { type boolean; default "false"; description "Other stateful configuration flag"; } leaf reachable-time { type types-sros:time-duration { range "0..3600000"; } units "milliseconds"; default "0"; description "Neighbor discovery reachable time that is advertised for this group interface"; } leaf retransmit-timer { type uint32 { range "0..1800000"; } units "seconds"; default "0"; description "Neighbor discovery retransmit timer that is advertised for this group interface"; } leaf router-lifetime { type union { type types-sros:time-duration { range "2700..9000"; } type enumeration { enum "no-default-router" { value 0; } } } units "seconds"; default "4500"; description "Router lifetime"; } container dns { description "Enter the dns context"; leaf include-rdnss { type boolean; default "false"; description "Include the RDNSS server option 25"; } leaf rdnss-lifetime { type union { type types-sros:time-duration { range "900..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "3600"; description "Maximum time for the RDNSS address to remain valid"; } } // container dns } // container options container prefix-options { description "Enter the prefix-options context"; leaf autonomous { type boolean; default "false"; description "Value of the autonomous flag"; } leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container prefix-options } // container router-advertisements container router-solicit { when "../../fwd-service"; description "Enter the router-solicit context"; leaf inactivity-timer { type union { type types-sros:time-duration { range "1..31536000"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "300"; description "Time before an inactive host is removed"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container router-solicit } // container ipv6 container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv6 } // container hold-time container ipoe-linking { when "../fwd-service"; description "Enter the ipoe-linking context"; leaf gratuitous-router-advertisement { type boolean; default "false"; description "Send unsolicited router advertisement after DHCP setup"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ipoe-linking container ipoe-session { when "../fwd-service"; description "Enter the ipoe-session context"; leaf session-limit { type uint32 { range "1..500000"; } description "Maximum number of sessions on this group interface"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ipoe-session container pppoe { when "../fwd-service"; description "Enter the pppoe context"; leaf description { type types-sros:description; description "Text description"; } leaf session-limit { type uint32 { range "1..262143"; } default "1"; description "Maximum PPPoE sessions"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container pppoe container local-address-assignment { when "../fwd-service"; description "Enter the local-address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignment"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf server { type leafref { path "../../../../../../router/dhcp-server/dhcpv4/name"; } description "Local DHCP server that contains pools for local address assignment"; } leaf-list default-pool { type types-sros:named-item; max-elements 2; ordered-by user; description "Default pools"; } container client-applications { description "Enter the client-applications context"; leaf ppp { type boolean; default "false"; description "Request local addresses for PPP IPCP hosts"; } } // container client-applications } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf server { type leafref { path "../../../../../../router/dhcp-server/dhcpv6/name"; } description "Local DHCPv6 server that contains pools for local address assignment"; } container client-applications { description "Enter the client-applications context"; leaf ppp-slaac { type boolean; default "false"; description "Request local addresses for PPP SLAAC hosts"; } leaf ipoe-wan { type boolean; default "false"; description "Request local addresses for IPoE IA NA hosts"; } leaf ipoe-slaac { type boolean; default "false"; description "Request local addresses for IPoE SLAAC hosts"; } } // container client-applications } // container ipv6 } // container local-address-assignment list group-interface { when "not(../fwd-service)"; key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type types-sros:interface-name; description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf type { type types-services:group-interface-type; sros-ext:immutable; default "plain"; description "Group interface type"; } leaf radius-auth-policy { type leafref { path "../../../../../subscriber-mgmt/radius-authentication-policy/name"; } description "RADIUS authentication policy"; } leaf gx-policy { when "../type = 'plain' or ../type = 'lns' or ../type = 'wlan-gw' or ../type = 'gtp'"; type leafref { path "../../../../../subscriber-mgmt/diameter-gx-policy/name"; } description "Diameter application policy"; } leaf nasreq-auth-policy { when "../type = 'plain'"; type leafref { path "../../../../../subscriber-mgmt/diameter-nasreq-policy/name"; } description "Diameter NASREQ application policy to use for authentication"; } leaf ingress-stats { type boolean; default "false"; description "Collect ingress interface statistics"; } leaf ip-mtu { when "not(../type = 'bonding')"; type types-router:ip-mtu-ext; units "bytes"; description "Interface IP MTU"; } leaf mac { when "not(../type = 'wlan-gw') and not(../type = 'gtp') and not(../type = 'bonding')"; type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf oper-up-while-empty { when "../type = 'plain' or ../type = 'lns'"; type boolean; default "false"; description "Enable this group interface without any active SAPs"; } leaf redundant-interface { when "../type = 'plain' or ../type = 'lns'"; type leafref { path "../../../redundant-interface/interface-name"; } description "Redundant interface"; } leaf shcv-policy { when "../type = 'plain' or ../type = 'lns' or ../type = 'wlan-gw'"; type leafref { path "../../../../../subscriber-mgmt/shcv-policy/name"; } description "Subscriber host connectivity verification policy for IPv4 and IPv6"; } leaf shcv-policy-ipv4 { when "../type = 'plain' or ../type = 'lns' or ../type = 'wlan-gw'"; type leafref { path "../../../../../subscriber-mgmt/shcv-policy/name"; } description "Subscriber host connectivity verification policy for IPv4"; } leaf shcv-policy-ipv6 { when "../type = 'plain' or ../type = 'lns' or ../type = 'wlan-gw'"; type leafref { path "../../../../../subscriber-mgmt/shcv-policy/name"; } description "Subscriber host connectivity verification policy for IPv6"; } leaf suppress-aa-sub { type boolean; default "false"; description "Enable application assurance suppression for ESM subscribers"; } leaf tos-marking-state { type types-router:tos-marking-state; default "untrusted"; description "TOS marking state"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf policy-accounting { type leafref { path "../../../../../../routing-options/policy-accounting/policy-acct-template/name"; } description "Configure ingress policy accounting."; } } // container ingress container dynamic-routes-track-srrp { when "../type = 'plain' or ../type = 'lns'"; presence "Enter the 'dynamic-routes-track-srrp' context"; description "Enable the dynamic-routes-track-srrp context"; leaf hold-time { type uint32 { range "1..50"; } units "deciseconds"; description "Delay before updating the route state after the last SRRP transition"; } } // container dynamic-routes-track-srrp container ipv4 { description "Enter the ipv4 context"; leaf qos-route-lookup { type types-router:qos-route-lookup-grp-if; description "QoS route lookup"; } leaf ignore-df-bit { when "../../type = 'wlan-gw'"; type boolean; default "false"; description "Ignore DF bit in the IPv4 header when fragmenting"; } container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container urpf-check { when "not(../../type = 'bonding')"; presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container arp-host { when "../../type = 'plain' or ../../type = 'lns'"; description "Enter the arp-host context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ARP hosts"; } leaf host-limit { type uint32 { range "1..524287"; } default "1"; description "Maximum number of ARP triggered hosts."; } leaf sap-host-limit { type uint32 { range "1..131071"; } default "1"; description "Maximum number of ARP triggered hosts allowed per SAP."; } leaf min-auth-interval { type types-sros:time-duration { range "1..6000"; } units "minutes"; default "15"; description "Minimal time that has to pass before incoming ARPs of an active ARP host are re-authenticated."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container arp-host container neighbor-discovery { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw'"; description "Enter the neighbor-discovery context"; leaf local-proxy-arp { type boolean; default "true"; description "Enable local proxy ARP on interface"; } leaf remote-proxy-arp { type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { type leafref { path "../../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Proxy ARP policy name"; } leaf populate { when "../../../type = 'plain' or ../../../type = 'lns'"; type boolean; description "Allow static and dynamic hosts to be populated in system ARP cache"; } leaf timeout { when "../../../type = 'plain' or ../../../type = 'lns'"; type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } } // container neighbor-discovery container dhcp { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw' or ../../type = 'gtp'"; description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../../../../filter/dhcp-filter/filter-id"; } description "DHCP filter."; } leaf python-policy { type leafref { path "../../../../../../../python/python-policy/name"; } description "Python policy name"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "IP addresses for DHCP server requests"; } leaf trusted { type boolean; default "false"; description "Relay untrusted packets"; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf match-circuit-id { when "not(../../../type = 'gtp')"; type boolean; default "false"; description "Configure match Opt82 circuit ID on relayed DHCP packets."; } leaf user-db { when "not(../../../type = 'gtp')"; type leafref { path "../../../../../../../subscriber-mgmt/local-user-db/name"; } description "Configure the local user database to use for authentication."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP proxy"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the Circuit ID"; } } case ifindex { leaf ifindex { type empty; description "Use the interface index for the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in the option."; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf pool-name { type boolean; default "false"; description "Send the pool name in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "1..511999"; } default "1"; description "The maximum number of DHCPv4 leases."; } container l2-header { when "../../../../type = 'plain' or ../../../../type = 'lns'"; presence "Enter the 'l2-header' context"; description "Enable the l2-header context"; leaf mac { type types-sros:mac-unicast-address; description "Specify the MAC address."; } } // container l2-header } // container lease-populate container client-applications { when "../../../type = 'plain' or ../../../type = 'lns' or ../../../type = 'bonding'"; description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Enable/disable DHCP as client application."; } leaf ppp { type boolean; default "false"; description "Enable/disable PPP as client application."; } } // container client-applications container relay-proxy { when "not(../../../type = 'gtp')"; presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy container offer-selection { description "Enter the offer-selection context"; leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Offer selection"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } } // container client-mac } case mode-server { list server { key "ipv4-address"; max-elements 8; description "Enter the server list instance"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "IP address of the DHCP server"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server } } } // container offer-selection } // container dhcp } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf allow-multiple-wan-addresses { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw' or ../../type = 'gtp'"; type boolean; default "false"; description "Configure if the interface will accept multiple WAN addresses."; } leaf ipoe-bridged-mode { when "../../type = 'plain' or ../../type = 'lns'"; type boolean; default "false"; description "Enable/Disable IPv6 IPoE Bridged Mode."; } leaf qos-route-lookup { type types-router:qos-route-lookup-grp-if; description "QoS route lookup"; } container auto-reply { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw'"; description "Enter the auto-reply context"; leaf neighbor-solicitation { type boolean; default "false"; description "Enable auto-reply for NS"; } leaf router-solicitation { type boolean; default "false"; description "Enable auto-reply for RS"; } } // container auto-reply container urpf-check { when "not(../../type = 'bonding')"; presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container dhcp6 { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw' or ../../type = 'gtp'"; description "Enter the dhcp6 context"; leaf filter { type leafref { path "../../../../../../../filter/dhcp6-filter/filter-id"; } description "DHCPv6 filter"; } leaf override-slaac { type boolean; default "false"; description "Allow WAN address offered by DHCP to overwrite the WAN address acquired from SLAAC"; } leaf python-policy { type leafref { path "../../../../../../../python/python-policy/name"; } description "Python policy"; } leaf user-db { when "not(../../../type = 'gtp')"; type leafref { path "../../../../../../../subscriber-mgmt/local-user-db/name"; } description "Assign a local user database."; } leaf user-ident { type types-services:dhcp6-user-ident; default "mac"; description "DHCP6 user identification for this interface"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pd-managed-route { presence "Enter the 'pd-managed-route' context"; description "Enable the pd-managed-route context"; leaf next-hop { type types-services:dhcp6-pd-managed-route-nh; default "ipv6"; description "Next hop type"; } } // container pd-managed-route container snooping { description "Enter the snooping context"; leaf admin-state { when "not(../../../../type = 'gtp')"; type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 snooping"; } } // container snooping container relay { description "Enter the relay context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 Relay"; } leaf description { type types-sros:description; description "Text description"; } leaf source-address { type types-sros:ipv6-unicast-address; description "Source IPv6 address for the DHCPv6 relay messages"; } leaf link-address { type types-sros:ipv6-address; description "Link address for the DHCPv6 relay messages"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCP6 server(s) to which the DHCP6 requests are forwarded"; } container client-applications { when "not(../../../../type = 'gtp')"; description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { when "not(../../../../../type = 'wlan-gw')"; type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container advertise-selection { description "Enter the advertise-selection context"; leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Advertise selection"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container client-mac } case mode-server { list server { key "ipv6-address"; max-elements 8; description "Enter the server list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "IP address of the DHCPv6 server"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // list server } } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container advertise-selection container lease-split { description "Enter the lease-split context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 lease split"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime-new; default "3600"; description "DHCPv6 lease split valid lifetime (short lease time)"; } } // container lease-split } // container relay container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 proxy server"; } leaf preferred-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "3600"; description "Time for prefix to remain preferred on this interface"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "86400"; description "Time for prefix to remain valid on this interface"; } leaf renew-timer { type types-submgt:dhcp6-renew-timer; description "Renew timer (T1)"; } leaf rebind-timer { type types-submgt:dhcp6-rebind-timer; description "Rebind timer (T2) for this interface"; } container client-applications { when "not(../../../../type = 'gtp')"; description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { when "not(../../../../../type = 'wlan-gw')"; type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container server-id { description "Enter the server-id context"; leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice server-id { default "duid-ll"; case duid-ll { leaf duid-ll { type empty; description "Use link-layer address (DUID-LL) as DUID"; } } case duid-en-hex { leaf duid-en-hex { type string { length "1..118"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as a hexadecimal string"; } } case duid-en-ascii { leaf duid-en-ascii { type types-sros:string-not-all-spaces { length "1..58"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as an ASCII string"; } } } } // container server-id } // container proxy-server container option { description "Enter the option context"; leaf remote-id { type boolean; default "false"; description "Allow remote ID option to be sent in the DHCPv6 relay packet"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container interface-id { description "Enter the interface-id context"; choice interface-id { case ascii-tuple { leaf ascii-tuple { type empty; description "Use ASCII-encoded concatenated tuple in interface ID option in DHCPv6 relay packet"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in interface ID option in DHCPv6 relay packet"; } } case if-index { leaf if-index { type empty; description "Use interface index in interface ID option in DHCPv6 relay packet"; } } case string { leaf string { type types-sros:string-not-all-spaces { length "1..80"; } description "String for interface ID option in DHCPv6 relay packet"; } } } } // container interface-id } // container option } // container dhcp6 container neighbor-discovery { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw'"; description "Enter the neighbor-discovery context"; leaf dad-snooping { type boolean; default "false"; description "Duplicate address detection packets that are snooped to populate new neighbor entries for SLAAC hosts"; } leaf neighbor-limit { type int32 { range "1..8"; } default "1"; description "Maximum number of neighbor entries learned per SLAAC host"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container neighbor-discovery container router-advertisements { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw' or ../../type = 'gtp'"; description "Enter the router-advertisements context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf max-advertisement-interval { type types-sros:time-duration { range "900..1800"; } units "seconds"; default "1800"; description "Maximum advertisement interval"; } leaf min-advertisement-interval { type types-sros:time-duration { range "900..1350"; } units "seconds"; default "900"; description "Minimum advertisement interval"; } leaf force-mcast { type enumeration { enum "ip" { value 1; } enum "ip-mac" { value 2; } } description "Send router advertisement to a multicast address instead of unicast for IPoE"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container options { description "Enter the options context"; leaf current-hop-limit { type uint32 { range "0..255"; } default "64"; description "Hop limit to be advertised"; } leaf managed-configuration { type boolean; default "false"; description "Managed address configuration flag"; } leaf mtu { type union { type uint32 { range "1280..9212"; } type enumeration { enum "not-included" { value 0; } } } units "bytes"; default "not-included"; description "Advertised MTU value"; } leaf other-stateful-configuration { type boolean; default "false"; description "Other stateful configuration flag"; } leaf reachable-time { type types-sros:time-duration { range "0..3600000"; } units "milliseconds"; default "0"; description "Neighbor discovery reachable time that is advertised for this group interface"; } leaf retransmit-timer { type uint32 { range "0..1800000"; } units "seconds"; default "0"; description "Neighbor discovery retransmit timer that is advertised for this group interface"; } leaf router-lifetime { type union { type types-sros:time-duration { range "2700..9000"; } type enumeration { enum "no-default-router" { value 0; } } } units "seconds"; default "4500"; description "Router lifetime"; } container dns { description "Enter the dns context"; leaf include-rdnss { type boolean; default "false"; description "Include the RDNSS server option 25"; } leaf rdnss-lifetime { type union { type types-sros:time-duration { range "900..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "3600"; description "Maximum time for the RDNSS address to remain valid"; } } // container dns } // container options container prefix-options { description "Enter the prefix-options context"; leaf autonomous { type boolean; default "false"; description "Value of the autonomous flag"; } leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container prefix-options } // container router-advertisements container router-solicit { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw'"; description "Enter the router-solicit context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router-solicit based authentication"; } leaf inactivity-timer { type union { type types-sros:time-duration { range "1..31536000"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "300"; description "Time before an inactive host is removed"; } leaf min-auth-interval { type types-sros:time-duration { range "1..360000"; } units "seconds"; default "300"; description "Minimum interval between two consecutive authentication attempts for the same host"; } leaf user-db { type leafref { path "../../../../../../../subscriber-mgmt/local-user-db/name"; } description "Local user-database that is used for router solicit based authentication"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container router-solicit } // container ipv6 container cflowd-parameters { description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type types-router:cflowd-sampling; description "Unicast or multicast traffic"; } leaf type { when "not(../sampling-type = 'both')"; type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } mandatory true; description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sampling } // container cflowd-parameters container ipoe-linking { when "../type = 'plain' or ../type = 'lns' or ../type = 'wlan-gw'"; description "Enter the ipoe-linking context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of IPoE host linking"; } leaf gratuitous-router-advertisement { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Send unsolicited router advertisement after DHCP setup"; } leaf shared-circuit-id { when "not(../../type = 'wlan-gw')"; type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Block DHCPv6 with unknown interface-id (circuit-id) until a circuit-id is learned from DHCP."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // container ipoe-linking container ipoe-session { when "../type = 'plain' or ../type = 'wlan-gw' or ../type = 'gtp' or ../type = 'bonding'"; description "Enter the ipoe-session context"; leaf admin-state { when "../../type = 'plain'"; type types-sros:admin-state; description "Administrative state of IPoE session management"; } leaf description { type types-sros:description; description "Text description"; } leaf ipoe-session-policy { when "../../type = 'plain'"; type leafref { path "../../../../../../subscriber-mgmt/ipoe-session-policy/name"; } sros-ext:auto-restart-to-modify; description "IPoE Session policy to be used for new sessions"; } leaf user-db { type leafref { path "../../../../../../subscriber-mgmt/local-user-db/name"; } sros-ext:auto-restart-to-modify; description "Local user database that is used to (pre-)authenticate new sessions"; } leaf session-limit { type uint32 { range "1..500000"; } description "Maximum number of sessions on this group interface"; } leaf sap-session-limit { when "../../type = 'plain'"; type uint32 { range "1..131071"; } description "Maximum number of sessions per SAP"; } leaf min-auth-interval { type types-submgt:ipoe-session-min-auth-interval; units "seconds"; default "infinite"; description "Minimum time between two authentication attempts"; } leaf radius-session-timeout { when "../../type = 'wlan-gw'"; type types-submgt:ipoe-session-radius-session-timeout; description "Session timeout attribute to be interpreted"; } leaf stateless-redundancy { when "not(../../type = 'wlan-gw')"; type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Remove IPoE sessions when the system becomes stand-by in a stateless multi-chassis redundancy setup"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container force-auth { description "Enter the force-auth context"; leaf cid-change { when "../../../type = 'plain' or ../../../type = 'wlan-gw'"; type boolean; description "Ignore min-auth-interval when circuit ID changed"; } leaf rid-change { when "../../../type = 'plain' or ../../../type = 'wlan-gw'"; type boolean; description "Ignore min-auth-interval when remote ID changed"; } } // container force-auth } // container ipoe-session container brg { when "../type = 'plain'"; description "Enter the brg context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of BRG"; } leaf authenticated-brg-only { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Allow BRGs that have been pre-authenticated"; } leaf default-brg-profile { type leafref { path "../../../../../../subscriber-mgmt/vrgw/brg-profile/brg-profile-name"; } sros-ext:auto-restart-to-modify; description "Default BRG profile that can be overridden during authentication"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // container brg container pppoe { when "../type = 'plain'"; description "Enter the pppoe context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PPPoE"; } leaf description { type types-sros:description; description "Text description"; } leaf anti-spoof { type types-submgt:pppoe-anti-spoof; default "mac-sid"; description "PPPoE anti-spoof filtering"; } leaf policy { type leafref { path "../../../../../../subscriber-mgmt/ppp-policy/name"; } description "PPPoE policy"; } leaf session-limit { type uint32 { range "1..262143"; } default "1"; description "Maximum PPPoE sessions"; } leaf sap-session-limit { type uint32 { range "1..131071"; } default "1"; description "Maximum PPPoE sessions per SAP"; } leaf python-policy { type leafref { path "../../../../../../python/python-policy/name"; } description "Python policy used to modify PPPoE packets"; } leaf user-db { type leafref { path "../../../../../../subscriber-mgmt/local-user-db/name"; } sros-ext:auto-restart-to-modify; description "Local user database for authentication"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container dhcp-client { description "Enter the dhcp-client context"; leaf client-id { type enumeration { enum "mac-pppoe-session-id" { value 2; } } description "The type of information that DHCP option 61 will contain"; } } // container dhcp-client } // container pppoe container data-trigger { when "../type = 'plain'"; description "Enter the data-trigger context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of data-triggered host creation"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container data-trigger container local-address-assignment { description "Enter the local-address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignment"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf server { when "../../../type = 'plain' or ../../../type = 'lns' or ../../../type = 'gtp' or ../../../type = 'bonding'"; type leafref { path "../../../../../../../router/dhcp-server/dhcpv4/name"; } description "Local DHCP server that contains pools for local address assignment"; } leaf-list default-pool { when "../../../type = 'plain' or ../../../type = 'lns'"; type types-sros:named-item; max-elements 2; ordered-by user; description "Default pools"; } container client-applications { description "Enter the client-applications context"; leaf ppp { when "../../../../type = 'plain' or ../../../../type = 'lns' or ../../../../type = 'gtp' or ../../../../type = 'bonding'"; type boolean; default "false"; description "Request local addresses for PPP IPCP hosts"; } leaf ipoe { when "../../../../type = 'gtp' or ../../../../type = 'bonding'"; type boolean; default "false"; description "Request local addresses for non-DHCP/managed IPoE hosts"; } } // container client-applications } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf server { type leafref { path "../../../../../../../router/dhcp-server/dhcpv6/name"; } description "Local DHCPv6 server that contains pools for local address assignment"; } container client-applications { description "Enter the client-applications context"; leaf ppp-slaac { when "../../../../type = 'plain' or ../../../../type = 'lns' or ../../../../type = 'gtp' or ../../../../type = 'bonding'"; type boolean; default "false"; description "Request local addresses for PPP SLAAC hosts"; } leaf ipoe-wan { type boolean; default "false"; description "Request local addresses for IPoE IA NA hosts"; } leaf ipoe-slaac { type boolean; default "false"; description "Request local addresses for IPoE SLAAC hosts"; } } // container client-applications } // container ipv6 } // container local-address-assignment list srrp { when "../type = 'plain' or ../type = 'lns'"; key "srrp-id"; max-elements 1; description "Enter the srrp list instance"; leaf srrp-id { type uint32 { range "1..4294967295"; } description "SRRP instance ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of SRRP"; } leaf description { type types-sros:description; description "Text description"; } leaf gw-mac { type types-sros:mac-unicast-address; description "Gateway MAC address"; } leaf keep-alive-interval { type uint32 { range "1..100"; } units "deciseconds"; default "10"; description "Interval between SRRP advertisements"; } leaf message-path { type leafref { path "../../sap/sap-id"; } sros-ext:auto-restart-to-modify; description "SAP to use as the SRRP message path"; } leaf-list policy { type leafref { path "../../../../../../vrrp/policy/policy-id"; } max-elements 2; ordered-by user; description "VRRP priority control policy associated with the SRRP"; } leaf priority { type uint32 { range "1..254"; } default "100"; description "Priority for this interface at this level"; } leaf send-fib-population-packets { type enumeration { enum "all" { value 1; } enum "outer-tag-only" { value 2; } } default "all"; description "Mode used to send FIB population packets (such as ARP) on switchover"; } leaf preempt { type boolean; default "true"; description "Allow the SRRP instance to override an existing master"; } leaf one-garp-per-sap { type boolean; default "false"; description "Send one gratuitous ARP to each SAP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf group-name { type leafref { path "../../../../../../oper-group/name"; } description "Operational group name"; } leaf priority-step { type uint8 { range "1..10"; } description "Value with which the group priority increases or decreases if the state of this messaging-SAP changes."; } } // container monitor-oper-group container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "Destination IPv4 prefix"; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; mandatory true; description "Name of interface running BFD"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container bfd-liveness } // list srrp container sap-parameters { when "../type = 'lns' or ../type = 'wlan-gw' or ../type = 'gtp' or ../type = 'bonding'"; description "Enter the sap-parameters context"; leaf description { type types-sros:description; description "Text description"; } leaf anti-spoof { when "../../type = 'wlan-gw'"; type enumeration { enum "ip-mac" { value 3; } enum "nh-mac" { value 4; } } default "ip-mac"; description "Anti-spoofing type."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container sub-sla-mgmt { description "Enter the sub-sla-mgmt context"; leaf sub-ident-policy { type leafref { path "../../../../../../../subscriber-mgmt/sub-ident-policy/name"; } description "Subscriber identification policy"; } container defaults { description "Enter the defaults context"; leaf sub-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Default subscriber profile"; } leaf sla-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sla-profile/name"; } description "Default SLA profile"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "String to be used as default subscriber ID"; } } case auto-id { leaf auto-id { type empty; description "Subscriber ID that is autogenerated"; } } } } // container subscriber-id } // container defaults } // container sub-sla-mgmt } // container sap-parameters container bonding-parameters { when "../type = 'bonding'"; description "Enter the bonding-parameters context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ESM connection bonding"; } leaf fpe { type leafref { path "../../../../../../fwd-path-ext/fpe/fpe-id"; } sros-ext:auto-restart-to-modify; description "FPE that provisions bonding functionality"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container multicast { description "Enter the multicast context"; leaf connection { type types-submgt:multicast-bonding-connection; sros-ext:auto-restart-to-modify; default "use-incoming"; description "Multicast connection"; } } // container multicast list connection { key "connection-index"; description "Enter the connection list instance"; leaf connection-index { type types-submgt:bonding-connection-index; description "Bonding connection index"; } leaf service { type types-services:service-name; description "Connection service"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list connection } // container bonding-parameters container gtp-parameters { when "../type = 'gtp'"; description "Enter the gtp-parameters context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of GTP access"; } leaf fpe { type leafref { path "../../../../../../fwd-path-ext/fpe/fpe-id"; } sros-ext:auto-restart-to-modify; description "PE that provisions the GTP user interface"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container gtp-parameters container wpp { when "../type = 'plain'"; presence "Enter the 'wpp' context"; description "Enable the wpp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WPP"; } leaf restore-to-initial-on-disconnect { type boolean; default "true"; description "Restore initial profiles after a host has disconnected"; } leaf user-db { type leafref { path "../../../../../../subscriber-mgmt/local-user-db/name"; } description "User database"; } leaf lease-time { type types-sros:time-duration { range "10..315446399"; } default "600"; description "Lease time"; } leaf triggered-hosts { type boolean; default "false"; description "Enable/disable triggered hosts"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container portal { description "Enter the portal context"; choice portal { case portal { leaf router-instance { type string; description "The virtual router instance of the WPP portal for this interface"; } leaf name { type types-sros:named-item; description "Name for the WPP portal of the interface"; } } case portal-group { leaf portal-group { type leafref { path "../../../../../../../aaa/wpp/portal-group/group-name"; } description "WPP portal group for this interface"; } } } } // container portal container initial { description "Enter the initial context"; leaf sub-profile { type leafref { path "../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Initial subscriber profile"; } leaf sla-profile { type leafref { path "../../../../../../../subscriber-mgmt/sla-profile/name"; } description "Initial SLA profile"; } } // container initial } // container wpp list sap { when "../type = 'plain'"; key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type types-sros:sap; description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type leafref { path "../../../../../../log/accounting-policy/policy-id"; } description "Accounting policy"; } leaf anti-spoof { type types-services:anti-spoof-option-ip; default "source-ip-and-mac-addr"; description "Type of anti-spoof filtering"; } leaf calling-station-id { type types-sros:string-not-all-spaces { length "1..64"; } description "Calling station ID"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type leafref { path "../../../../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Distributed CPU protection policy for SAP"; } leaf host-admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of hosts"; } leaf host-lockout-policy { type leafref { path "../../../../../../subscriber-mgmt/host-lockout-policy/name"; } description "Host lockout policy"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice oper-group-association { case oper-group { leaf oper-group { type leafref { path "../../../../../oper-group/name"; } description "Operational group"; } } case monitor-oper-group { leaf monitor-oper-group { type leafref { path "../../../../../oper-group/name"; } description "Monitor operational group"; } } } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter } // container ingress container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Policy identifier"; } } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } } // container agg-rate } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container fwd-wholesale { description "Enter the fwd-wholesale context"; leaf pppoe-service { type leafref { path "../../../../../../epipe/service-name"; } description "PPPoE service name"; } } // container fwd-wholesale container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container sub-sla-mgmt { description "Enter the sub-sla-mgmt context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of subscriber management on this SAP"; } leaf sub-ident-policy { type leafref { path "../../../../../../../subscriber-mgmt/sub-ident-policy/name"; } description "Subscriber identification policy used on this SAP"; } leaf subscriber-limit { type types-submgt:sap-subscriber-limit; default "1"; description "Maximum number of subscribers on this SAP"; } container defaults { description "Enter the defaults context"; leaf sub-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Default subscriber profile used for subscribers on this SAP"; } leaf sla-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sla-profile/name"; } description "Default SLA profile for hosts on this SAP"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case auto-id { leaf auto-id { type empty; description "Use auto-generated subscriber identification string"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID as default subscriber identification string"; } } case string { leaf string { type types-submgt:subscriber-id; description "Default subscriber identification string for the SAP"; } } } } // container subscriber-id container int-dest-id { description "Enter the int-dest-id context"; choice int-dest-id { case top-q-tag { leaf top-q-tag { type empty; description "Use the top Q-tag of this SAP"; } } case string { leaf string { type types-submgt:int-dest-id; description "Use the configured string"; } } } } // container int-dest-id } // container defaults container single-sub-parameters { description "Enter the single-sub-parameters context"; leaf profiled-traffic-only { type boolean; default "false"; description "Include all traffic in subscriber profile"; } container non-sub-traffic { presence "Enter the 'non-sub-traffic' context"; description "Enable the non-sub-traffic context"; leaf sub-profile { type leafref { path "../../../../../../../../../subscriber-mgmt/sub-profile/name"; } mandatory true; description "Subscriber ID profile applied for all non-subscriber traffic"; } leaf sla-profile { type leafref { path "../../../../../../../../../subscriber-mgmt/sla-profile/name"; } mandatory true; description "SLA profile applicable for all non-subscriber traffic"; } leaf subscriber-id { type types-submgt:subscriber-id; sros-ext:immutable; description "Subscriber ID applied for all non-subscriber traffic"; } } // container non-sub-traffic } // container single-sub-parameters } // container sub-sla-mgmt container static-host { description "Enter the static-host context"; container mac-learning { description "Enter the mac-learning context"; leaf data-triggered { type boolean; default "false"; description "Enable learning of MAC addresses from data packets."; } leaf single-mac { type boolean; default "false"; description "Enforce the limit of a single MAC address per SAP, learned by means of ICMPv6."; } } // container mac-learning list ipv4 { key "ip mac"; description "Enter the ipv4 list instance"; leaf ip { type types-sros:ipv4-unicast-address; description "IP address used by the static host."; } leaf mac { type types-sros:mac-unicast-address; description "MAC address of the static host."; } leaf rip-policy { type leafref { path "../../../../../../../../subscriber-mgmt/rip-policy/name"; } description "RIP policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Sub-profile name"; } leaf sla-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sla-profile/name"; } description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id container shcv { description "Enter the shcv context"; } // container shcv list managed-route { key "prefix"; max-elements 16; description "Add a list entry for managed-route"; leaf prefix { type types-sros:ipv4-unicast-prefix; description "Managed route prefix."; } } // list managed-route } // list ipv4 list ipv6 { key "prefix mac"; description "Enter the ipv6 list instance"; leaf prefix { type types-sros:ipv6-unicast-prefix; description "IPv6 prefix"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Sub-profile name"; } leaf sla-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sla-profile/name"; } description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf mac-linking { type types-sros:ipv4-unicast-address; description "IPv6 host associated with the IPv4 host through the learned MAC address"; } leaf retail-svc-id { type types-services:external-service-id; description "Retail service ID"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id container shcv { description "Enter the shcv context"; } // container shcv list managed-route { key "ipv6-prefix"; max-elements 16; description "Enter the managed-route list instance"; leaf ipv6-prefix { type types-sros:ipv6-unicast-prefix; description "Managed route prefix."; } leaf metric { type uint32; default "0"; description "Managed route metric."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list managed-route } // list ipv6 } // container static-host container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; description "Time during which the system continues to track inactive hosts"; } leaf import-policy { type leafref { path "../../../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of multicast groups to be tracked"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of multicast groups to be tracked per group"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of multicast sources to be tracked"; } leaf router-alert-check { type boolean; default "true"; description "Enable IGMP router alert check option"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container igmp-host-tracking container default-host { description "Enter the default-host context"; list ipv4 { key "address prefix-length"; description "Enter the ipv4 list instance"; leaf address { type leafref { path "../../../../../ipv4/address/ipv4-address"; } description "IPv4 default host address."; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf next-hop { type types-sros:ipv4-unicast-address; sros-ext:immutable; mandatory true; description "Next-hop used to forward default-host traffic on this SAP."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ipv4 list ipv6 { key "address prefix-length"; description "Enter the ipv6 list instance"; leaf address { type types-sros:ipv6-unicast-address; description "IPv6 default host address."; } leaf prefix-length { type uint32 { range "0..128"; } description "IPv6 address prefix length"; } leaf next-hop { type types-sros:ipv6-unicast-address; sros-ext:immutable; mandatory true; description "Next-hop used to forward default-host traffic on this SAP."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ipv6 } // container default-host } // list sap container wlan-gw { when "../type = 'wlan-gw'"; description "Enter the wlan-gw context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WLAN Gateway"; } leaf oper-down-on-group-degrade { type boolean; default "false"; description "Bring interface operationally down when its ISA WLAN Gateway becomes degraded"; } leaf tcp-mss-adjust { type uint32 { range "160..10240"; } units "bytes"; description "Value for the TCP Maximum Segment Size (MSS) option if not present, or if value is higher"; } leaf wlan-gw-group { type leafref { path "../../../../../../isa/wlan-gw-group/id"; } sros-ext:auto-restart-to-modify; description "Identifier of the WLAN Gateway ISA group to terminate UEs for this group interface"; } leaf gateway-router { type string; sros-ext:auto-restart-to-modify; description "The routing instance where the tunneled UE traffic is routed, or empty to specify that the routing instance corresponding to the service containing this interface is used."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container lanext { presence "Enter the 'lanext' context"; sros-ext:auto-restart-to-modify; description "Enable the lanext context"; leaf max-bd { type uint32 { range "1..131071"; } sros-ext:auto-restart-to-modify; default "131071"; description "Maximum number of bridge domains"; } } // container lanext container learn-ap-mac { presence "Enter the 'learn-ap-mac' context"; description "Enable the learn-ap-mac context"; leaf delay-auth { type boolean; default "false"; description "Delay authentication until ARP/ND is answered or timed out, after which AP MAC can be included"; } } // container learn-ap-mac container mobility { description "Enter the mobility context"; leaf hold-time { type types-sros:time-duration { range "0..255"; } units "seconds"; default "5"; description "Minimum time between two mobility events for a single UE"; } leaf inter-tunnel-type { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable mobility between terminating tunnel types"; } leaf inter-vlan { type boolean; default "false"; description "Enable mobility within different VLANs within the same range of VLAN Q-tags"; } container trigger { description "Enter the trigger context"; leaf data { type boolean; default "false"; description "Use data traffic as mobility trigger"; } leaf iapp { type boolean; default "false"; description "Use Inter Access Point Protocol (IAPP) messages as mobility trigger"; } leaf control { type boolean; default "false"; description "Use control traffic (DHCP, DHCPv6, and ICMPv6-RS messages) as mobility trigger"; } } // container trigger } // container mobility container tunnel-egress-qos { description "Enter the tunnel-egress-qos context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of egress QoS for WLAN-GW tunnels"; } leaf agg-rate-limit { type types-qos:pir-rate-override; default "max"; description "Aggregate rate limit of each shaper associated with this interface"; } leaf granularity { type types-wlangw:shaping-granularity; sros-ext:auto-restart-to-modify; default "per-tunnel"; description "Granularity of the egress shaping for WLAN Gateway"; } leaf hold-time { type union { type types-sros:time-duration { range "1..86400"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Minimum time that the egress QoS resources associated with a tunnel (such as a shaper) are held"; } leaf multi-client-only { type boolean; default "false"; description "Tunnel traffic to shape when multiple UEs use this tunnel"; } leaf qos { type leafref { path "../../../../../../../qos/sap-egress/sap-egress-policy-name"; } sros-ext:auto-restart-to-modify; description "Identifier of the egress QoS policy associated with each tunnel of this interface"; } leaf scheduler-policy { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } sros-ext:auto-restart-to-modify; description "Identifier of the egress scheduler policy associated with each tunnel of this interface"; } } // container tunnel-egress-qos container tunnel-encaps { description "Enter the tunnel-encaps context"; leaf learn-l2tp-cookie { type union { type enumeration { enum "never" { value 2; description "The cookie will never be interpreted."; } enum "always" { value 3; description "The cookie will always be interpreted, regardless of the value of its first two octets."; } } type types-sros:hex-string { length "6"; } } default "never"; description "System that learns the cookie from L2TP tunnels terminating on this interface"; } } // container tunnel-encaps container l2-ap { description "Enter the l2-ap context"; leaf auto-sub-id-fmt { type enumeration { enum "include-ap-tags" { value 0; } enum "sap-only" { value 1; } } default "include-ap-tags"; description "Format of the auto-generated subscriber ID"; } leaf default-encap-type { type enumeration { enum "null" { value 1; } enum "dot1q" { value 2; } enum "qinq" { value 10; } } sros-ext:auto-restart-to-modify; default "null"; description "Default encapsulation type for Layer 2 access points"; } list access-point { key "sap-id"; description "Enter the access-point list instance"; leaf sap-id { type types-sros:sap; description "SAP ID for the Layer 2 access point"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2 access points"; } leaf encap-type { type enumeration { enum "null" { value 1; } enum "dot1q" { value 2; } enum "qinq" { value 10; } } description "Service encapsulation type of this access point"; } leaf epipe-sap-template { type leafref { path "../../../../../../../template/epipe-sap-template/name"; } description "Parameters template for the internal connections with the ISA cards"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list access-point } // container l2-ap list gateway-address { key "address"; max-elements 10; description "Enter the gateway-address list instance"; leaf address { type types-sros:ip-unicast-without-local-address; description "Gateway endpoint address of the WLAN Gateway tunnel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container purpose { description "Enter the purpose context"; leaf xconnect { type boolean; default "false"; description "Use tunnel IP address for crosse-connect traffic"; } } // container purpose } // list gateway-address list vlan-range { key "range"; description "Enter the vlan-range list instance"; leaf range { type string { pattern "((([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-5]))(\\.\\.(([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-5])))?)|(unmatched)"; } description "IEEE 802.1q VLAN tag range"; } leaf http-redirect-policy { type leafref { path "../../../../../../../subscriber-mgmt/http-redirect-policy/name"; } description "Default HTTP redirect policy for portal authentication"; } leaf idle-timeout-action { type types-wlangw:idle-timeout-action; default "remove"; description "Action to perform when the idle timeout expires"; } leaf nat-policy { type leafref { path "../../../../../../nat/nat-policy/name"; } description "NAT policy for DSM and ISA portal authentication"; } leaf retail-service { type types-services:service-name; description "Default retail service for new UEs in this range"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container authentication { description "Enter the authentication context"; leaf hold-time { type types-sros:time-duration { range "0..3600"; } units "seconds"; default "5"; description "Minimum time to hold a UE down after an authentication failure"; } leaf on-control-plane { type boolean; default "false"; description "Trigger authentication on first control plane packet instead of first data packet"; } leaf policy { type leafref { path "../../../../../../../../aaa/radius/isa-policy/name"; } description "RADIUS policy for authentication"; } leaf vlan-mismatch-timeout { type types-sros:time-duration { range "5..60"; } units "seconds"; description "Timeout value for the RADIUS proxy cache if a packet is received with a non-matching VLAN"; } } // container authentication container data-triggered-ue-creation { description "Enter the data-triggered-ue-creation context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of data-triggered UE creation"; } container create-proxy-cache-entry { description "Enter the create-proxy-cache-entry context"; leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } container proxy-server { presence "Enter the 'proxy-server' context"; description "Enable the proxy-server context"; leaf router-instance { type string; mandatory true; description "The router instance of the RADIUS Proxy server."; } leaf name { type types-sros:named-item; mandatory true; description "RADIUS Proxy server name"; } } // container proxy-server } // container create-proxy-cache-entry } // container data-triggered-ue-creation container l2-service { presence "Enter the 'l2-service' context"; description "Enable the l2-service context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Layer 2 service for VLAN range"; } leaf description { type types-sros:description; description "Text description"; } leaf service { type leafref { path "../../../../../../../vpls/service-name"; } mandatory true; description "Layer 2 service associated with the range"; } } // container l2-service container dhcp4 { description "Enter the dhcp4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv4 protocol"; } leaf l2-aware-ip-address { type union { type types-sros:ipv4-unicast-address; type enumeration { enum "from-pool" { value 0; description "The l2-aware IP address should be allocated from a pool."; } } } description "L2-Aware NAT inside IP address"; } leaf-list dns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "DNS servers signaled in DHCP"; } leaf-list nbns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "NetBIOS servers signaled in DHCP"; } container lease-time { description "Enter the lease-time context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "IP address lease time for the UE after successful (portal) authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "IP address lease time that is provided before and during (portal) authentication to the UE"; } } // container lease-time } // container dhcp4 container dhcp6 { description "Enter the dhcp6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the protocol"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container preferred-lifetime { description "Enter the preferred-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Preferred signaled lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Preferred signaled lifetime when the UE is not fully authenticated"; } } // container preferred-lifetime container valid-lifetime { description "Enter the valid-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Signaled valid lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Valid signaled lifetime when the UE is not fully authenticated"; } } // container valid-lifetime } // container dhcp6 container slaac { description "Enter the slaac context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the protocol"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container preferred-lifetime { description "Enter the preferred-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Preferred signaled lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Preferred signaled lifetime when the UE is not fully authenticated"; } } // container preferred-lifetime container valid-lifetime { description "Enter the valid-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Signaled valid lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Valid signaled lifetime when the UE is not fully authenticated"; } } // container valid-lifetime } // container slaac container dsm { description "Enter the dsm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DSM"; } leaf accounting-policy { type leafref { path "../../../../../../../../aaa/radius/isa-policy/name"; } sros-ext:auto-restart-to-modify; description "ISA Radius Policy for accounting"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container accounting-update { presence "Enter the 'accounting-update' context"; description "Enable the accounting-update context"; leaf interval { type uint32 { range "5..259200"; } units "minutes"; mandatory true; description "Time interval between consecutive Interim accounting update messages"; } } // container accounting-update container ingress { description "Enter the ingress context"; leaf policer { type leafref { path "../../../../../../../../../subscriber-mgmt/isa-policer/name"; } description "Policer for ingress traffic"; } leaf ip-filter { type leafref { path "../../../../../../../../../subscriber-mgmt/isa-filter/name"; } description "Filter for ingress traffic"; } } // container ingress container egress { description "Enter the egress context"; leaf policer { type leafref { path "../../../../../../../../../subscriber-mgmt/isa-policer/name"; } description "Policer for egress traffic"; } } // container egress container one-time-redirect { description "Enter the one-time-redirect context"; leaf url { type types-wlangw:one-time-http-redirect-url; description "URL for redirected HTTP protocol packets that can be overridden by AAA"; } leaf port { type uint32 { range "1..65535"; } default "80"; description "Destination port of packets considered for HTTP redirect"; } } // container one-time-redirect } // container dsm container vrgw { description "Enter the vrgw context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of VRGW"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container brg { description "Enter the brg context"; leaf default-brg-profile { type leafref { path "../../../../../../../../../subscriber-mgmt/vrgw/brg-profile/brg-profile-name"; } sros-ext:auto-restart-to-modify; description "Default BRG profile to use if the AAA server does not specify one"; } leaf authenticated-brg-only { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Only allow hosts from BRGs pre-authenticated using the radius-proxy"; } } // container brg container lanext { description "Enter the lanext context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of HLE"; } leaf assistive-address-resolution { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "ISA assists in address resolution"; } leaf bd-mac-prefix { type string { length "8"; pattern "[0-9a-f][02468ace](:[0-9a-f]{2}){2}"; } sros-ext:auto-restart-to-modify; description "Prefix from which BD MACs for MAC translation are derived"; } leaf mac-translation { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Hide MAC address of home host by translating it to BD MAC"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container access { sros-ext:auto-restart-to-modify; description "Enter the access context"; leaf max-mac { type uint32 { range "1..256"; } sros-ext:auto-restart-to-modify; default "20"; description "Maximum number of MAC entries in bridged domain from access side"; } leaf multi-access { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Allow multiple access points"; } leaf policer { type leafref { path "../../../../../../../../../../subscriber-mgmt/isa-policer/name"; } sros-ext:auto-restart-to-modify; description "Policer for ingress home traffic"; } } // container access container network { sros-ext:auto-restart-to-modify; description "Enter the network context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "enable"; description "Administrative state of network"; } leaf max-mac { type uint32 { range "1..64"; } sros-ext:auto-restart-to-modify; default "20"; description "Maximum number of MAC entries in bridged domain from network side"; } leaf policer { type leafref { path "../../../../../../../../../../subscriber-mgmt/isa-policer/name"; } sros-ext:auto-restart-to-modify; description "Policer for ingress data center traffic"; } } // container network } // container lanext } // container vrgw container xconnect { description "Enter the xconnect context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the cross-connect"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container accounting { description "Enter the accounting context"; leaf policy { type leafref { path "../../../../../../../../../aaa/radius/isa-policy/name"; } sros-ext:auto-restart-to-modify; description "ISA RADIUS accounting policy for cross-connected UEs"; } leaf update-interval { type types-sros:time-duration { range "5..259200"; } units "minutes"; description "Time between consecutive Interim accounting update messages"; } leaf mobility-updates { type boolean; default "false"; description "Accounting updates triggered by mobility"; } } // container accounting } // container xconnect } // list vlan-range } // container wlan-gw } // list group-interface container wlan-gw { presence "Enter the 'wlan-gw' context"; description "Enable the wlan-gw context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pool-manager { description "Enter the pool-manager context"; leaf wlan-gw-group { type leafref { path "../../../../../../isa/wlan-gw-group/id"; } description "Identifier of the WLAN Gateway ISA group on which the prefixes are installed"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container dhcp6-client { description "Enter the dhcp6-client context"; leaf source-ip { type union { type enumeration { enum "use-interface-ip" { value 0; } } type types-sros:ipv6-address; } default "use-interface-ip"; description "Source IP address that is used by the DHCPv6 client"; } leaf-list servers { type types-sros:ipv6-unicast-address; max-elements 8; description "DHCPv6 servers that are used for requesting addresses"; } container lease-query { presence "Enter the 'lease-query' context"; description "Enable the lease-query context"; leaf max-retries { type uint32 { range "0..10"; } default "2"; description "Maximum number of retries before the lease query assumes that no existing subnets were allocated"; } } // container lease-query container dhcpv4-nat { description "Enter the dhcpv4-nat context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container dhcpv4-nat container ia-na { description "Enter the ia-na context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container ia-na container slaac { description "Enter the slaac context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container slaac } // container dhcp6-client container watermarks { description "Enter the watermarks context"; leaf high { type uint32 { range "51..99"; } default "95"; description "New prefix that is used when the ISA level reaches high watermark"; } leaf low { type uint32 { range "50..98"; } default "90"; description "Prefix that is released if the usage level without this prefix is below the low watermark"; } } // container watermarks } // container pool-manager container redundancy { description "Enter the redundancy context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of redundancy"; } leaf export { type types-sros:ipv4-unicast-prefix; sros-ext:auto-restart-to-modify; description "Route to export to peer"; } leaf monitor { type types-sros:ipv4-unicast-prefix; sros-ext:auto-restart-to-modify; description "Peer route to monitor"; } } // container redundancy } // container wlan-gw } // list subscriber-interface list video-interface { key "interface-name"; description "Enter the video-interface list instance"; leaf interface-name { type types-sros:interface-name { length "1..29"; } description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the video interface"; } leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "Accounting Policy"; } leaf description { type types-sros:description; description "Text description"; } leaf cpu-protection { type leafref { path "../../../../system/security/cpu-protection/policy/policy-id"; } description "CPU protection policy"; } leaf multicast-service { type types-services:external-service-id; description "Service ID of the associated multicast service."; } leaf output-format { type enumeration { enum "udp" { value 1; } enum "rtp-udp" { value 2; } } default "rtp-udp"; description "Output format"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rt-client { presence "Enter the 'rt-client' context"; description "Enable the rt-client context"; leaf src-address { type types-sros:ipv4-unicast-address; mandatory true; description "An IP address for the RT client."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container rt-client container adi { description "Enter the adi context"; container scte30 { description "Enter the scte30 context"; list ad-server { key "address"; max-elements 4; description "Add a list entry for ad-server"; leaf address { type types-sros:ipv4-address; description "Ad server address"; } } // list ad-server container local-address { presence "Enter the 'local-address' context"; description "Enable the local-address context"; leaf control { type types-sros:ipv4-unicast-address; mandatory true; description "Control"; } leaf data { type types-sros:ipv4-unicast-address; mandatory true; description "Data"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container local-address } // container scte30 } // container adi container video-sap { presence "Enter the 'video-sap' context"; description "Enable the video-sap context"; leaf video-group-id { type leafref { path "../../../../../isa/video-group/video-group-id"; } sros-ext:immutable; mandatory true; description "Group id for the video interface."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "SAP-egress QoS policy"; } } // container qos } // container egress container ingress { description "Enter the ingress context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "SAP-ingress QoS policy"; } } // container qos } // container ingress } // container video-sap list address { key "ip-address"; max-elements 16; description "Add a list entry for address"; leaf ip-address { type types-sros:ipv4-prefix-with-host-bits; description "IPv4 address for the video interface within the service"; } } // list address list channel { key "mcast-address source"; description "Enter the channel list instance"; leaf mcast-address { type types-sros:ipv4-multicast-address; description "Multicast channel address"; } leaf source { type types-sros:ipv4-unicast-address; description "Unicast source address"; } leaf channel-name { type types-sros:named-item; mandatory true; description "max 32 chars."; } leaf description { type types-sros:description; description "Text description"; } leaf scte35-action { type enumeration { enum "forward" { value 1; } enum "drop" { value 2; } } default "forward"; description "Enable/disable forwarding scte 35 cue avails."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list zone-channel { key "zone-mcast-address zone-source"; description "Enter the zone-channel list instance"; leaf zone-mcast-address { type types-sros:ipv4-multicast-address; description "Multicast zone channel address"; } leaf zone-source { type types-sros:ipv4-unicast-address; description "Unicast source address"; } leaf adi-channel-name { type types-sros:named-item; description "max 32 chars."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list zone-channel } // list channel } // list video-interface } // list ies container ipfix { description "Enter the ipfix context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list export-policy { key "name"; description "Enter the export-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf template-format { type enumeration { enum "format1" { value 1; } enum "format2" { value 2; } } default "format1"; description "Template format used by this IPFIX export policy"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list collector { key "router-instance ip-address"; description "Enter the collector list instance"; leaf router-instance { type string; description "Router where the collector is reached"; } leaf ip-address { type types-sros:ipv4-unicast-address; description "IPv4 address of the collector"; } leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the collector"; } leaf mtu { type types-l2tp:base-ppp-mtu; sros-ext:auto-restart-to-modify; default "1500"; description "Maximum Transmission Unit"; } leaf source-ip-address { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "Source IP address used in communication towards the collector"; } leaf refresh-timeout { type types-sros:time-duration { range "240..86400"; } units "seconds"; sros-ext:auto-restart-to-modify; default "600"; description "IPFIX template refresh time"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // list collector } // list export-policy } // container ipfix list ipipe { key "service-name"; description "Enter the ipipe list instance"; leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type leafref { path "../../customer/customer-name"; } sros-ext:immutable; mandatory true; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf vpn-id { type types-services:vpn-id; sros-ext:immutable; description "VPN identifier for the service"; } leaf vc-switching { type boolean; sros-ext:immutable; default "false"; description "PW switching signaling to be used by the spokes in the service"; } leaf service-mtu { type int32 { range "1..9194"; } default "1500"; description "MTU size"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ce-address-discovery { presence "Enter the 'ce-address-discovery' context"; description "Enable the ce-address-discovery context"; } // container ce-address-discovery list endpoint { key "name"; max-elements 2; description "Enter the endpoint list instance"; leaf name { type types-sros:named-item; description "Service endpoint name"; } leaf description { type types-sros:description; description "Text description"; } leaf revert-time { type types-services:revert-time; default "immediate"; description "Time to wait before reverting back to the primary spoke-sdp defined on this service endpoint"; } leaf hold-time-active { type types-services:hold-time-active; description "Time to hold the active state before entering standby when a local MC-LAG SAP goes down"; } leaf standby-signaling { type enumeration { enum "master" { value 1; } } description "Whether PW standby bit will be sent to T-LDP peer whenever spoke-SDPs of this endpoint are selected as standby."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list endpoint list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type types-sros:sap; description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "Accounting policy"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type leafref { path "../../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Distributed CPU protection policy for SAP"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf endpoint { type leafref { path "../../endpoint/name"; } description "Name of the endpoint"; } leaf ce-address { type types-sros:ip-address; description "Enter CE Address."; } leaf mac-refresh { type uint32 { range "0..65535"; } default "14400"; description "Enter MAC refresh interval."; } leaf mac { type yang:mac-address; default "00:00:00:00:00:00"; description "MAC addressof an IPIPE Ethernet SAP."; } leaf use-broadcast-mac { type boolean; default "false"; description "Enable/disable use of broadcast MAC on SAP."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Queue group instance"; } } // container fp-redirect-group container overrides { description "Enter the overrides context"; list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container aggregate-policer { description "Enter the aggregate-policer context"; leaf rate { type types-qos:aggr-policer-rate; default "max"; description "Aggregate policer rate to be used in kbps"; } leaf burst { type types-qos:aggr-policer-burst; default "default"; description "Aggregate policer burst"; } leaf cir { type types-qos:aggr-policer-cir; description "Aggregate policer cir to be used in kbps"; } leaf cbs { type types-qos:aggr-policer-cbs; description "Aggregate policer cbs"; } } // container aggregate-policer } // container ingress container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port redirect queue group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of port queue group"; } } // container port-redirect-group container overrides { description "Enter the overrides context"; leaf hs-secondary-shaper { type types-sros:named-item; description "HS Secondary Shaper"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf secondary-shaper { status obsolete; type types-sros:named-item; description "Secondary shaper for the HSMDA queue"; } leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Packet byte offset for HSMDA queue"; } leaf wrr-policy { status obsolete; type leafref { path "../../../../../../../../../qos/hsmda-wrr-policy/hsmda-wrr-policy-name"; } description "WRR policy for the HSMDA queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type leafref { path "../../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../../policy-name]/hsmda-queues/queue/queue-id"; } description "Egress HSMDA queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; description "Administrative PIR rate."; } leaf slope-policy { status obsolete; type leafref { path "../../../../../../../../../../qos/hsmda-slope-policy/hsmda-slope-policy-name"; } description "Name of the slope-policy which is used to override the default slope-policy for the named buffer pool."; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "Weight value for the HSMDA queue"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list queue } // container hsmda-queues list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type leafref { path "../../../../../../../../../../qos/slope-policy/slope-policy-name"; } description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/hs-wrr-group/group-id"; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Weight of scheduling class."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "Administrative PIR."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent."; } } } } // list hs-wrr-group } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/vlan-qos-policy/vlan-qos-policy-name"; } description "Egress vlan-qos-policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/egress-remark-policy/egress-remark-policy-name"; } description "Egress-remark-policy name"; } } // container egress-remark-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "MAC filter ID"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter identifier"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag } // list sap list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf control-word { type boolean; default "false"; description "Whether the use of the control-word is preferred or not. This bit is exchanged with LDP peer during pseudowire negotiation time."; } leaf bandwidth { type types-services:sdp-bind-bandwidth; units "kilobps"; default "0"; description "Bandwidth that is reserved for this SDP binding"; } leaf ce-address { type types-sros:ip-address; description "Enter CE Address."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf bfd-template { status obsolete; type leafref { path "../../../../bfd/bfd-template/name"; } description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../qos/network/network-policy-name"; } description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../qos/network/network-policy-name"; } description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos } // container egress container endpoint { description "Enter the endpoint context"; leaf name { type leafref { path "../../../../ipipe[service-name=current()/../../../service-name]/endpoint/name"; } sros-ext:auto-restart-to-modify; description "Name of endpoint to which this SDP bind is attached."; } leaf precedence { type types-services:sdp-precedence; default "4"; description "Precedence of this SDP bind when there are multiple SDP binds attached to one service endpoint"; } } // container endpoint container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type leafref { path "../../../../../bfd/bfd-template/name"; } description "BFD template associated with the SDP binding"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd } // list spoke-sdp } // list ipipe container nat { description "Enter the nat context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list firewall-policy { key "name"; max-elements 2048; description "Enter the firewall-policy list instance"; leaf name { type types-sros:external-named-item; description "Firewall policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf filtering { type types-nat:filtering; description "Filtering"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice address-location { case l2-outside { leaf l2-outside { type empty; description "Allow NAT policy to use Layer 2 outside service instead of Layer 3 outside service"; } } case domain { container domain { description "Enter the domain context"; leaf router-instance { type string; description "Virtual router instance"; } leaf name { type types-sros:named-item; description "Domain name"; } } // container domain } } container alg { description "Enter the alg context"; leaf ftp { type boolean; default "true"; description "FTP ALG"; } leaf rtsp { type boolean; default "false"; description "RTSP ALG"; } leaf sip { type boolean; default "false"; description "SIP ALG"; } } // container alg container port-limits { description "Enter the port-limits context"; leaf forwarding { type uint16 { range "1..64"; } description "Maximum number of port forwarding entries"; } } // container port-limits container priority-sessions { description "Enter the priority-sessions context"; container fc { description "Enter the fc context"; leaf be { type boolean; default "false"; description "Assign BE forwarding class as containing prioritized traffic"; } leaf l2 { type boolean; default "false"; description "Assign L2 forwarding class as containing prioritized traffic"; } leaf af { type boolean; default "false"; description "Assign AF forwarding class as containing prioritized traffic"; } leaf l1 { type boolean; default "false"; description "Assign L1 forwarding class as containing prioritized traffic"; } leaf h2 { type boolean; default "false"; description "Assign H2 forwarding class as containing prioritized traffic"; } leaf ef { type boolean; default "false"; description "Assign EF forwarding class as containing prioritized traffic"; } leaf h1 { type boolean; default "false"; description "Assign H1 forwarding class as containing prioritized traffic"; } leaf nc { type boolean; default "false"; description "Assign NC forwarding class as containing prioritized traffic"; } } // container fc } // container priority-sessions container session-limits { description "Enter the session-limits context"; leaf max { type uint16 { range "1..65535"; } default "65535"; description "Session limit"; } leaf reserved { type uint16 { range "1..65534"; } description "Number of sessions reserved for prioritized sessions"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; mandatory true; description "Percentage for high watermark"; } leaf low { type types-sros:percent; mandatory true; description "Percentage for low watermark"; } } // container watermarks } // container session-limits container tcp { description "Enter the tcp context"; leaf mss-adjust { type uint32 { range "160..10240"; } description "Value to adjust the TCP Maximum Segment Size (MSS) option"; } } // container tcp container timeouts { description "Enter the timeouts context"; leaf icmp6-query { type types-sros:time-duration { range "60..240"; } default "60"; description "Timeout applied to an ICMPv6 Query session"; } leaf sip { type types-sros:time-duration { range "10..7200"; } default "120"; description "SIP inactive media timeout"; } leaf unknown-protocol { type types-sros:time-duration { range "60..86400"; } sros-ext:isa-auto-clear-on-modify; default "300"; description "Timeout for flows with an unknown protocol"; } container tcp { description "Enter the tcp context"; leaf established { type types-sros:time-duration { range "60..86400"; } default "7440"; description "Idle timeout applied to a TCP session in the established state"; } leaf rst { type types-sros:time-duration { range "0..240"; } default "0"; description "Time after receiving RST before a TCP session can return to the state LISTEN"; } leaf syn { type types-sros:time-duration { range "6..86400"; } default "15"; description "Timeout applied to a TCP session when synchronizing its initial sequence"; } leaf time-wait { type types-sros:time-duration { range "0..240"; } default "0"; description "Timeout applied to a TCP session in the time-wait state"; } leaf transitory { type types-sros:time-duration { range "60..86400"; } default "240"; description "Idle timeout applied to a TCP session in a transitory state"; } } // container tcp container udp { description "Enter the udp context"; leaf normal { type types-sros:time-duration { range "60..86400"; } default "300"; description "UDP mapping timeouts"; } leaf dns { type types-sros:time-duration { range "15..86400"; } default "15"; description "Timeout applied to a UDP session with destination port 53"; } leaf initial { type types-sros:time-duration { range "10..300"; } default "15"; description "UDP mapping timeout applied to new sessions"; } } // container udp } // container timeouts container udp { description "Enter the udp context"; leaf inbound-refresh { type boolean; default "false"; description "Extend UDP session timeout on inbound traffic"; } } // container udp container unknown-protocols { description "Enter the unknown-protocols context"; choice unknown-protocols { case all { leaf all { type empty; description "Flows with any protocol that are allowed"; } } case protocol { leaf-list protocol { type uint8 { range "0..255"; } max-elements 8; description "Protocol number"; } } } } // container unknown-protocols } // list firewall-policy list prefix-list { key "name"; description "Enter the prefix-list list instance"; leaf name { type types-sros:named-item; description "Maps prefixes to policies"; } leaf application { type types-nat:prefix-list-application; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "Prefix list for the application"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list prefix { key "ip-prefix"; max-elements 1024; description "Enter the prefix list instance"; leaf ip-prefix { type types-sros:ipv4-prefix; description "NAT prefix"; } leaf nat-policy { type leafref { path "../../../nat-policy/name"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "NAT policy for LSN"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // list prefix-list list pcp-server-policy { key "name"; description "Enter the pcp-server-policy list instance"; leaf name { type types-sros:named-item; description "Name of this policy"; } leaf description { type types-sros:description; description "Text description"; } leaf max-description-size { type uint32 { range "1..64"; } default "64"; description "Maximum length of mapping descriptions made by the PCP servers"; } leaf reuse-external-ip-address { type boolean; default "false"; description "Reuse the same external IP address for NAT subscriber"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container lifetime { description "Enter the lifetime context"; leaf minimum { type uint32 { range "60..86399"; } default "120"; description "Minimum lifetime of explicit mappings made by the PCP servers"; } leaf maximum { type uint32 { range "61..86400"; } default "86400"; description "Maximum lifetime of explicit mappings made by the PCP servers"; } } // container lifetime container version { description "Enter the version context"; leaf minimum { type uint16 { range "1..255"; } default "1"; description "Minimum protocol version supported by the PCP servers"; } leaf maximum { type uint16 { range "1..255"; } default "1"; description "Maximum protocol version supported by the PCP servers"; } } // container version container opcode { description "Enter the opcode context"; leaf announce { type boolean; default "false"; description "Process the announce PCP requests"; } leaf get { type boolean; default "false"; description "Process the get PCP requests"; } leaf map { type boolean; default "false"; description "Process the map PCP requests"; } } // container opcode container option { description "Enter the option context"; leaf description { type boolean; default "false"; description "Text description"; } leaf next { type boolean; default "false"; description "Process the PCP requests that contain the next option"; } leaf port-reservation { type boolean; default "false"; description "Process the PCP requests that contain the prefer failure option"; } leaf port-set { type boolean; default "false"; description "Support the PORT_SET option in PCP MAP requests"; } leaf prefer-failure { type boolean; default "false"; description "Process the PCP requests that contain the port reservation option"; } leaf third-party { type boolean; default "false"; description "Process the PCP requests that contain the third party option"; } } // container option } // list pcp-server-policy container syslog { description "Enter the syslog context"; list export-policy { key "name"; max-elements 8; description "Enter the export-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf facility { type types-nat:syslog-facility; default "local0"; description "Facility number in the PRI part of the NAT SYSLOG messages"; } leaf log-prefix { type types-sros:named-item; default "TMNX"; description "Optional prefix text in the MSG part of the NAT syslog messages"; } leaf max-tx-delay { type uint32 { range "0..100"; } units "deciseconds"; default "3"; description "Maximum time a syslog message delays in the output buffer to aggregate multiple events"; } leaf mtu { type uint32 { range "512..9000"; } default "1500"; description "Maximum transmission unit"; } leaf rate-limit { type uint32 { range "10..2147483647"; } units "packets per second"; description "Frame limit"; } leaf severity-level { type types-nat:syslog-severity-level; default "info"; description "Severity level in the PRI part of the syslog messages"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container include { description "Enter the include context"; leaf destination-ip { type boolean; default "false"; description "Include the translated destination IP address"; } leaf foreign-ip { type boolean; default "false"; description "Include the original destination IPv4 address"; } leaf foreign-port { type boolean; default "false"; description "Include the original destination port"; } leaf nat-policy-name { type boolean; default "false"; description "Include the nat-policy name"; } leaf sub-id { type boolean; default "false"; description "Subscriber ID in subscriber aware NAT"; } } // container include list collector { key "router-instance ip-address"; max-elements 2; description "Enter the collector list instance"; leaf router-instance { type string; description "Router instance"; } leaf ip-address { type types-sros:ipv4-unicast-address; description "IPv4 address of the collector"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the collector node"; } leaf destination-port { type types-sros:tcp-udp-port-non-zero; default "514"; description "Destination port"; } leaf ipv4-source-address { type types-sros:ipv4-unicast-address; description "IPv4 source address"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list collector } // list export-policy } // container syslog list classifier { key "name"; max-elements 8; description "Enter the classifier list instance"; leaf name { type types-sros:named-item; description "The name that identifies this NAT classifier"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container default { description "Enter the default context"; leaf dnat-ip-address { type types-sros:ipv4-unicast-address; sros-ext:isa-auto-clear-on-modify; description "Default destination IP address for matching entries with dNAT action"; } container action { description "Enter the action context"; choice action-choice { default "forward-option"; case dnat-option { leaf dnat { status obsolete; type empty; sros-ext:isa-auto-clear-on-modify; description "Default destination IP address for DNAT action"; } leaf dnat-ip-address { status obsolete; type types-sros:ipv4-unicast-address; sros-ext:isa-auto-clear-on-modify; description "Substitute IP address for the destination IP address of the packets matching this classifier"; } container destination-nat { presence "Enter the 'destination-nat' context"; description "Enable the destination-nat context"; leaf ip-address { type types-sros:ipv4-unicast-address; description "The IP address to substitute for the destination IP address of the packets matching this classifier entry"; } } // container destination-nat } case forward-option { leaf forward { type empty; sros-ext:isa-auto-clear-on-modify; description "Forward mode of operation"; } } } } // container action } // container default list entry { key "id"; max-elements 32; description "Enter the entry list instance"; leaf id { type uint32 { range "1..1000"; } description "Classifier rule entry ID"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container action { description "Enter the action context"; choice action-choice { case dnat-option { leaf dnat { status obsolete; type empty; sros-ext:isa-auto-clear-on-modify; description "Destination-NAT mode of operation"; } leaf dnat-ip-address { status obsolete; type types-sros:ipv4-unicast-address; sros-ext:isa-auto-clear-on-modify; description "Substitute IP address for the destination IP address of the packets matching this classifier"; } container destination-nat { presence "Enter the 'destination-nat' context"; description "Enable the destination-nat context"; leaf ip-address { type types-sros:ipv4-unicast-address; description "The IP address to substitute for the destination IP address of the packets matching this classifier entry"; } } // container destination-nat } case forward-option { leaf forward { type empty; sros-ext:isa-auto-clear-on-modify; description "Forward mode of operation"; } } } } // container action container match { description "Enter the match context"; leaf protocol { type types-nat:ip-protocol-tcp-or-udp; sros-ext:isa-auto-clear-on-modify; description "IP protocol to match"; } leaf foreign-ip-address { type types-sros:ipv4-unicast-address; sros-ext:isa-auto-clear-on-modify; description "The foreign IP address to match. The foreign IP address is the destination IP address in the packet received at the inside, before address translation."; } container dst-port-range { description "Enter the dst-port-range context"; leaf start { type types-sros:tcp-udp-port; sros-ext:isa-auto-clear-on-modify; default "0"; description "Start of port number"; } leaf end { type types-sros:tcp-udp-port; sros-ext:isa-auto-clear-on-modify; default "65535"; description "End port number"; } } // container dst-port-range } // container match } // list entry } // list classifier list nat-policy { key "name"; max-elements 4096; description "Enter the nat-policy list instance"; leaf name { type types-sros:external-named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf block-limit { type uint16 { range "1..40"; } default "1"; description "Maximum number of port blocks per subscriber"; } leaf filtering { type types-nat:filtering; description "Filtering"; } leaf port-forwarding-range-end { type uint16 { range "1023..65535"; } default "1023"; description "End of the port forwarding range"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice address-location { case pool { container pool { description "Enter the pool context"; leaf router-instance { type string; sros-ext:isa-auto-clear-on-modify; description "The virtual router instance of the pool."; } leaf name { type types-sros:named-item; sros-ext:isa-auto-clear-on-modify; description "NAT pool name"; } } // container pool } case dnat { container dnat-only { presence "Enter the 'dnat-only' context"; description "Enable the dnat-only context"; leaf router-instance { type string; sros-ext:isa-auto-clear-on-modify; mandatory true; description "Attribute router-instance for dnat-only"; } choice isa { mandatory true; case nat { leaf nat-group { type leafref { path "../../../../../isa/nat-group/id"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "NAT group"; } } case wlan-gw { leaf wlan-gw-group { type leafref { path "../../../../../isa/wlan-gw-group/id"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "WLAN GW group used for NAT"; } } } } // container dnat-only } case l2-outside { leaf l2-outside { type empty; description "Allow NAT policy to use Layer 2 outside service instead of Layer 3 outside service"; } } } container alg { description "Enter the alg context"; leaf ftp { type boolean; default "true"; description "FTP ALG"; } leaf pptp { type boolean; default "false"; description "PPTP ALG"; } leaf rtsp { type boolean; default "false"; description "RTSP ALG"; } leaf sip { type boolean; default "false"; description "SIP ALG"; } } // container alg container dnat { description "Enter the dnat context"; leaf classifier { type leafref { path "../../../classifier/name"; } sros-ext:isa-auto-clear-on-modify; description "NAT classifier"; } } // container dnat container flow-log-policy { description "Enter the flow-log-policy context"; leaf ipfix { type leafref { path "../../../../ipfix/export-policy/name"; } description "IPFIX export policy"; } leaf syslog { type leafref { path "../../../syslog/export-policy/name"; } description "SYSLOG export policy"; } } // container flow-log-policy container port-limits { description "Enter the port-limits context"; leaf forwarding { type uint16 { range "1..64"; } description "Maximum number of port forwarding entries"; } leaf reserved { type uint16 { range "1..65534"; } description "Number of ports reserved for prioritized sessions"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; mandatory true; description "Percentage for high watermark"; } leaf low { type types-sros:percent; mandatory true; description "Percentage for low watermark"; } } // container watermarks } // container port-limits container priority-sessions { description "Enter the priority-sessions context"; container fc { description "Enter the fc context"; leaf be { type boolean; default "false"; description "Assign BE forwarding class as containing prioritized traffic"; } leaf l2 { type boolean; default "false"; description "Assign L2 forwarding class as containing prioritized traffic"; } leaf af { type boolean; default "false"; description "Assign AF forwarding class as containing prioritized traffic"; } leaf l1 { type boolean; default "false"; description "Assign L1 forwarding class as containing prioritized traffic"; } leaf h2 { type boolean; default "false"; description "Assign H2 forwarding class as containing prioritized traffic"; } leaf ef { type boolean; default "false"; description "Assign EF forwarding class as containing prioritized traffic"; } leaf h1 { type boolean; default "false"; description "Assign H1 forwarding class as containing prioritized traffic"; } leaf nc { type boolean; default "false"; description "Assign NC forwarding class as containing prioritized traffic"; } } // container fc } // container priority-sessions container session-limits { description "Enter the session-limits context"; leaf max { type uint16 { range "1..65535"; } default "65535"; description "Session limit"; } leaf reserved { type uint16 { range "1..65534"; } description "Number of sessions reserved for prioritized sessions"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; mandatory true; description "Percentage for high watermark"; } leaf low { type types-sros:percent; mandatory true; description "Percentage for low watermark"; } } // container watermarks } // container session-limits container tcp { description "Enter the tcp context"; leaf reset-unknown { type boolean; default "false"; description "Send of TCP RST upon non-SYN TCP message for unknown flow"; } leaf mss-adjust { type uint32 { range "160..10240"; } description "Value to adjust the TCP Maximum Segment Size (MSS) option"; } } // container tcp container timeouts { description "Enter the timeouts context"; leaf icmp-query { type types-sros:time-duration { range "60..240"; } default "60"; description "Timeout applied to an ICMP Query session"; } leaf sip { type types-sros:time-duration { range "10..7200"; } default "120"; description "SIP inactive media timeout"; } leaf subscriber-retention { type types-sros:time-duration { range "0..1440"; } units "minutes"; default "0"; description "Time a subscribers' IP address is kept after all hosts and port blocks have expired"; } container tcp { description "Enter the tcp context"; leaf established { type types-sros:time-duration { range "60..86400"; } default "7440"; description "Idle timeout applied to a TCP session in the established state"; } leaf rst { type types-sros:time-duration { range "0..240"; } default "0"; description "Time after receiving RST before a TCP session can return to the state LISTEN"; } leaf syn { type types-sros:time-duration { range "6..86400"; } default "15"; description "Timeout applied to a TCP session when synchronizing its initial sequence"; } leaf time-wait { type types-sros:time-duration { range "0..240"; } default "0"; description "Timeout applied to a TCP session in the time-wait state"; } leaf transitory { type types-sros:time-duration { range "60..86400"; } default "240"; description "Idle timeout applied to a TCP session in a transitory state"; } } // container tcp container udp { description "Enter the udp context"; leaf normal { type types-sros:time-duration { range "60..86400"; } default "300"; description "UDP mapping timeouts"; } leaf dns { type types-sros:time-duration { range "15..86400"; } default "15"; description "Timeout applied to a UDP session with destination port 53"; } leaf initial { type types-sros:time-duration { range "10..300"; } default "15"; description "UDP mapping timeout applied to new sessions"; } } // container udp } // container timeouts container udp { description "Enter the udp context"; leaf inbound-refresh { type boolean; default "false"; description "Extend UDP session timeout on inbound traffic"; } } // container udp } // list nat-policy list up-nat-policy { key "name"; max-elements 32; description "Enter the up-nat-policy list instance"; leaf name { type types-sros:external-named-item; description "NAT UP policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf filtering { type types-nat:filtering; description "Filtering"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alg { description "Enter the alg context"; leaf ftp { type boolean; default "true"; description "FTP ALG"; } leaf pptp { type boolean; default "false"; description "PPTP ALG"; } leaf rtsp { type boolean; default "false"; description "RTSP ALG"; } leaf sip { type boolean; default "false"; description "SIP ALG"; } } // container alg container flow-log-policy { description "Enter the flow-log-policy context"; leaf ipfix { type leafref { path "../../../../ipfix/export-policy/name"; } description "IPFIX export policy"; } } // container flow-log-policy container port-limits { description "Enter the port-limits context"; leaf reserved { type uint16 { range "1..65534"; } description "Number of ports reserved for prioritized sessions"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; mandatory true; description "Percentage for high watermark"; } leaf low { type types-sros:percent; mandatory true; description "Percentage for low watermark"; } } // container watermarks } // container port-limits container priority-sessions { description "Enter the priority-sessions context"; container fc { description "Enter the fc context"; leaf be { type boolean; default "false"; description "Assign BE forwarding class as containing prioritized traffic"; } leaf l2 { type boolean; default "false"; description "Assign L2 forwarding class as containing prioritized traffic"; } leaf af { type boolean; default "false"; description "Assign AF forwarding class as containing prioritized traffic"; } leaf l1 { type boolean; default "false"; description "Assign L1 forwarding class as containing prioritized traffic"; } leaf h2 { type boolean; default "false"; description "Assign H2 forwarding class as containing prioritized traffic"; } leaf ef { type boolean; default "false"; description "Assign EF forwarding class as containing prioritized traffic"; } leaf h1 { type boolean; default "false"; description "Assign H1 forwarding class as containing prioritized traffic"; } leaf nc { type boolean; default "false"; description "Assign NC forwarding class as containing prioritized traffic"; } } // container fc } // container priority-sessions container session-limits { description "Enter the session-limits context"; leaf max { type uint16 { range "1..65535"; } default "65535"; description "Session limit"; } leaf reserved { type uint16 { range "1..65534"; } description "Number of sessions reserved for prioritized sessions"; } container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; mandatory true; description "Percentage for high watermark"; } leaf low { type types-sros:percent; mandatory true; description "Percentage for low watermark"; } } // container watermarks } // container session-limits container tcp { description "Enter the tcp context"; leaf reset-unknown { type boolean; default "false"; description "Send of TCP RST upon non-SYN TCP message for unknown flow"; } leaf mss-adjust { type uint32 { range "160..10240"; } description "Value to adjust the TCP Maximum Segment Size (MSS) option"; } } // container tcp container timeouts { description "Enter the timeouts context"; leaf icmp-query { type types-sros:time-duration { range "60..240"; } default "60"; description "Timeout applied to an ICMP Query session"; } leaf sip { type types-sros:time-duration { range "10..7200"; } default "120"; description "SIP inactive media timeout"; } leaf subscriber-retention { type types-sros:time-duration { range "0..1440"; } units "minutes"; default "0"; description "Time a subscribers' IP address is kept after all hosts and port blocks have expired"; } container tcp { description "Enter the tcp context"; leaf established { type types-sros:time-duration { range "60..86400"; } default "7440"; description "Idle timeout applied to a TCP session in the established state"; } leaf rst { type types-sros:time-duration { range "0..240"; } default "0"; description "Time after receiving RST before a TCP session can return to the state LISTEN"; } leaf syn { type types-sros:time-duration { range "6..86400"; } default "15"; description "Timeout applied to a TCP session when synchronizing its initial sequence"; } leaf time-wait { type types-sros:time-duration { range "0..240"; } default "0"; description "Timeout applied to a TCP session in the time-wait state"; } leaf transitory { type types-sros:time-duration { range "60..86400"; } default "240"; description "Idle timeout applied to a TCP session in a transitory state"; } } // container tcp container udp { description "Enter the udp context"; leaf normal { type types-sros:time-duration { range "60..86400"; } default "300"; description "UDP mapping timeouts"; } leaf dns { type types-sros:time-duration { range "15..86400"; } default "15"; description "Timeout applied to a UDP session with destination port 53"; } leaf initial { type types-sros:time-duration { range "10..300"; } default "15"; description "UDP mapping timeout applied to new sessions"; } } // container udp } // container timeouts container udp { description "Enter the udp context"; leaf inbound-refresh { type boolean; default "false"; description "Extend UDP session timeout on inbound traffic"; } } // container udp } // list up-nat-policy container deterministic-script { description "Enter the deterministic-script context"; leaf location { type types-sros:ftp-tftp-url { length "1..180"; } description "URL for the generated script."; } } // container deterministic-script container map-t { description "Enter the map-t context"; list domain { key "name"; max-elements 63; description "Enter the domain list instance"; leaf name { type types-sros:named-item; description "MAP-T domain name"; } leaf description { type types-sros:description; description "Text description"; } leaf dmr-prefix { type types-sros:ipv6-prefix; description "The Default Mapping Rule prefix"; } leaf mtu { type uint32 { range "160..8686"; } default "8686"; description "Configure the MTU"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MAP domain"; } leaf tcp-mss-adjust { type uint32 { range "0 | 160..8626"; } default "0"; description "The value to adjust the TCP Maximum Segment Size (MSS) option"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ip-fragmentation { description "Enter the ip-fragmentation context"; leaf v6-frag-header { type boolean; default "false"; description "This specifies if an IPv6 fragmentation header is added when a non-fragmented IPv4 packet with the Don't Fragment bit cleared is translated into IPv6"; } } // container ip-fragmentation list mapping-rule { key "rule-name"; max-elements 16383; description "Enter the mapping-rule list instance"; leaf rule-name { type types-sros:named-item; description "The name that identifies this mapping rule"; } leaf description { type types-sros:description; description "Text description"; } leaf ipv4-prefix { type types-sros:ipv4-prefix; description "The IPv4 prefix"; } leaf ea-length { type uint32 { range "0..48"; } default "0"; description "The length of the EA bits field in the End-user IPv6 prefix part of the IPv6 Map Address"; } leaf psid-offset { type uint32 { range "0..16"; } default "6"; description "The offset of the Port Set ID (PSID) within a 16 bits wide port space"; } leaf rule-prefix { type types-sros:ipv6-prefix; description "The IPv6 prefix"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MAP rule"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mapping-rule } // list domain } // container map-t } // container nat list sdp { key "sdp-id"; description "Enter the sdp list instance"; leaf sdp-id { type types-services:sdp-id; description "Service Distribution Point (SDP) identifier"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of SDP"; } leaf delivery-type { type types-services:sdp-delivery-type; sros-ext:immutable; description "Specifies the type of delivery used by this SDP"; } leaf accounting-policy { type leafref { path "../../../log/accounting-policy/policy-id"; } description "Policy to use to collect accounting statistics on this SDP. The value zero indicates that default accounting policy to be used, if one exists."; } leaf adv-mtu-override { type boolean; default "false"; description "Whether the advertised MTU of a VLL spoke SDP bind should include the 14-byte L2 header, so that it is backward compatible with pre-2.0 software."; } leaf booking-factor { type uint32 { range "0..1000"; } default "100"; description "Percentage of the SDP max available bandwidth for VLL call admission. When the value is zero (0), no new VLL spoke-sdp bindings with non-zero bandwidth are permitted with this SDP. It is used to calculate the max SDP available bandwidth. Overbooking, >100% is allowed."; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics for this SDP"; } leaf local-end { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "IP address of the local end of the tunnel defined by this SDP."; } leaf metric { type uint32 { range "1..65535"; } description "Metric to be used within the Tunnel Table Manager for decision making purposes. When multiple SDPs going to the same destination exist, this value is used as a tie-breaker by Tunnel Table Manager users like MP-BGP to select route with lower value."; } leaf network-domain { type leafref { path "../../../router/network-domains/network-domain/domain-name"; } description "Network-domain name this SDP is associated with. The network-domain defines the list of network interfaces this SDP can send traffic on."; } leaf path-mtu { type int32 { range "576..9782"; } units "bytes"; description "Desired largest service frame size (in octets) that can be transmitted through this SDP to the far-end ESR, without requiring the packet to be fragmented. The default value of zero indicates that the path MTU should be computed dynamically from the corresponding MTU of the tunnel."; } leaf pbb-etype { type types-services:etype-value; default "0x88E7"; description "Ethertype used in frames sent out on this SDP when VC type is 'vlan' for Provider Backbone Bridging frames as 0xXXYY with range 0x0600-0xFFFF."; } leaf signaling { type enumeration { enum "off" { value 1; } enum "tldp" { value 2; } enum "bgp" { value 3; } } sros-ext:auto-restart-to-modify; description "Signaling protocol used to obtain the ingress and egress labels used in frames transmitted and received on this SDP. When the value is 'off' then the labels are manually assigned at the time the SDP is bound to a service. Default value of this object is set to 'off' when SDP delivery-type is set to 'l2tpv3' otherwise default value is set to 'tldp'."; } leaf tunnel-far-end { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "IP address of the remote of the tunnel defined by this SDP."; } leaf vlan-vc-etype { type types-services:etype-value; default "0x8100"; description "Ethertype used in frames sent out this SDP, when the VC type is 'vlan' as 0xXXYY with range 0x0600-0xFFFF."; } leaf allow-fragmentation { type boolean; default "false"; description "Whether to allow gre or gre-eth-bridged encapsulated packets to be sent without setting the DF bit."; } leaf ldp { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable LDP-signaled LSPs"; } leaf bgp-tunnel { type boolean; default "false"; description "Whether the transport tunnel is BGP."; } leaf sr-isis { type boolean; default "false"; description "Whether Segment Routing is enabled for IS-IS."; } leaf sr-ospf { type boolean; default "false"; description "Whether Segment Routing is enabled for OSPF."; } leaf weighted-ecmp { type boolean; default "false"; description "Allow weighted load-balancing on an SDP"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container keep-alive { description "Enter the keep-alive context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of keepalive mechanism for the SDP"; } leaf hello-time { type int32 { range "1..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "10"; description "How often the SDP Echo Request messages are transmitted on this SDP."; } leaf hold-down-time { type int32 { range "0..3600"; } units "seconds"; default "10"; description "Amount of time to wait before the keep-alive operating status is eligible to enter the 'alive' state."; } leaf maximum-drop-count { type int32 { range "1..5"; } default "3"; description "Maximum number of consecutive SDP Echo Request messages that can be unacknowledged before the keep-alive protocol reports a fault."; } leaf message-length { type int32 { range "40..9198"; } description "Length of the SDP Echo Request messages transmitted on this SDP. The default value of zero indicates that the message length should be equal to the SDP's operating path MTU"; } leaf timeout { type int32 { range "1..10"; } units "seconds"; default "5"; description "Number of seconds to wait for an SDP Echo Response message before declaring a timeout."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container keep-alive container mixed-lsp-mode { presence "Enter the 'mixed-lsp-mode' context"; description "Enable the mixed-lsp-mode context"; leaf revert-time { type types-services:revert-time; default "immediate"; description "Time to wait before reverting back from LDP to the configured LSPs, after having failed over to LDP."; } } // container mixed-lsp-mode container source-bmac-lsb { description "Enter the source-bmac-lsb context"; leaf value { type types-services:bmac-lsb-no-zero; description "16 least significant bits (lsb as 00:00 or 00-00) which when combined with the 32 most significant bits of the PBB source-bmac forms the virtual backbone MAC address."; } leaf control-pw-vc-id { type types-services:vc-id; description "Spoke-SDP VC identifier to be used as a control pseudo-wire to determine whether Shortest Path Bridging Module (SPBM) advertises the virtual backbone MAC."; } } // container source-bmac-lsb container far-end { description "Enter the far-end context"; choice ip-or-node { case ip { leaf ip-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Specifies the IP address of the far-end."; } } } } // container far-end container class-forwarding { presence "Enter the 'class-forwarding' context"; description "Enable the class-forwarding context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of class-based forwarding on this SDP"; } leaf default-lsp { type leafref { path "../../lsp/lsp-name"; } mandatory true; description "LSP name that is used as a default when class-based forwarding is enabled on this SDP."; } leaf enforce-diffserv-lsp-fc { type boolean; default "false"; description "Whether service manager must validate with RSVP the support of the FC by the LSP."; } leaf multicast-lsp { type leafref { path "../../lsp/lsp-name"; } description "LSP name that all multicast traffic will be forwarded on when class-based forwarding is enabled on this SDP."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list fc { key "fc-name"; description "Enter the fc list instance"; leaf fc-name { type types-sros:fc-name; description "Forwarding class for which this mapping is defined."; } leaf lsp { type leafref { path "../../../lsp/lsp-name"; } mandatory true; description "LSP name that traffic corresponding to the forwarding class will be forwarded on. It MUST be specified at row creation time."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list fc } // container class-forwarding container pw-port { description "Enter the pw-port context"; leaf binding-port { type types-sros:port-named; description "Binding port"; } } // container pw-port list sdp-group { key "group-name"; description "Add a list entry for sdp-group"; leaf group-name { type leafref { path "../../../sdp-group/group-name/group-name"; } description "Service Distribution Point (SDP) SDP Group Name."; } } // list sdp-group list lsp { key "lsp-name"; max-elements 16; description "Add a list entry for lsp"; leaf lsp-name { type types-sros:named-item-64; description "LSP name."; } } // list lsp } // list sdp list vpls { key "service-name"; description "Enter the vpls list instance"; leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type leafref { path "../../customer/customer-name"; } sros-ext:immutable; mandatory true; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf vpn-id { type types-services:vpn-id; sros-ext:immutable; description "VPN identifier for the service"; } leaf service-mtu { type int32 { range "1..9782"; } default "1514"; description "MTU size"; } leaf etree { type boolean; sros-ext:immutable; default "false"; description "Use VPLS as an E-Tree VPLS"; } leaf m-vpls { type boolean; sros-ext:immutable; default "false"; description "Specify whether this is a management VPLS"; } leaf pbb-type { type types-services:pbb-type; sros-ext:immutable; description "PBB VPLS type"; } leaf mcast-ipv6-snooping-scope { type enumeration { enum "sg-based" { value 1; } enum "mac-based" { value 2; } } default "mac-based"; description "IPv6 multicast snooping scope"; } leaf multicast-info-policy { type leafref { path "../../../multicast-management/multicast-info-policy/policy-name"; } description "Multicast information policy"; } leaf shcv-policy-ipv4 { type leafref { path "../../../subscriber-mgmt/shcv-policy/name"; } description "Subscriber host connectivity verification policy for IPv4"; } leaf temp-flooding { type int32 { range "3..600"; } units "seconds"; description "Temporary flooding"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container fdb { description "Enter the fdb context"; leaf discard-unknown { type boolean; default "false"; description "Discard packets with unknown destination MAC addresses"; } leaf mac-subnet-length { when "not(../../pbb-type)"; type int32 { range "24..48"; } default "48"; description "MAC sub-net length."; } leaf selective-learning { when "not(../../pbb-type = 'b-vpls')"; type boolean; default "false"; description "Selective learning status."; } container table { description "Enter the table context"; leaf high-wmark { type int32 { range "0..100"; } default "95"; description "High watermark for the FDB table"; } leaf low-wmark { type int32 { range "0..100"; } default "90"; description "Low watermark for the FDB table"; } leaf size { type int32 { range "1..511999"; } default "250"; description "Maximum MAC entries in the FDB"; } } // container table container mac-learning { description "Enter the mac-learning context"; leaf learning { type boolean; default "true"; description "Enable learning of new MAC addresses"; } leaf aging { type boolean; default "true"; description "Enable aging of MAC addresses"; } leaf local-age-time { type int32 { range "60..86400"; } default "300"; description "Aging time for locally learned MAC addresses"; } leaf remote-age-time { type int32 { range "60..86400"; } default "900"; description "Aging time for locally learned MAC addresses"; } } // container mac-learning container mac-move { description "Enter the mac-move context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MAC move"; } leaf move-frequency { type uint32 { range "1..10"; } default "2"; description "Move frequency to be used, in 5-second intervals. For the default move-frequency of 2 (moves per second), the system will disable a VPLS sap/spoke-sdp as soon as the number of relearns detected has reached, for instance, 10 relearns within a 5 second interval"; } leaf retry-count { type union { type uint32 { range "1..255"; } type enumeration { enum "unlimited" { value 0; } } } default "3"; description "Number of retries for reenabling."; } leaf hold-down-time { type uint32 { range "0..600"; } units "seconds"; default "10"; description "Time to wait before a SAP that has been disabled after exceeding the maximum re-learn rate is re-enabled."; } leaf primary-cumulative-factor { type uint32 { range "3..10"; } default "3"; description "Factor for the primary ports defining how many MAC-relearn periods should be used to measure the MAC-relearn rate. This rate must be exceeded during consecutive periods before the corresponding ports (SAP and/or spoke-SDP) are blocked by the MAC-move feature."; } leaf secondary-cumulative-factor { type uint32 { range "2..9"; } default "2"; description "Factor for the secondary ports defining how many MAC-relearn periods should be used to measure the MAC-relearn rate. This rate must be exceeded during consecutive periods before the corresponding ports (SAP and/or spoke-SDP) are blocked by the MAC-move feature."; } list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type leafref { path "../../../../sap/sap-id"; } description "SAP identifier"; } leaf level { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } mandatory true; description "Configure primary or secondary port level"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sap list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type leafref { path "../../../../spoke-sdp/sdp-bind-id"; } description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf level { type enumeration { enum "primary" { value 1; } enum "secondary" { value 2; } } mandatory true; description "Configure primary or secondary port level"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list spoke-sdp } // container mac-move container static-mac { description "Enter the static-mac context"; list mac { key "mac-address"; description "Enter the mac list instance"; leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "Static MAC address to SAP/SDP-binding or black-hole"; } leaf monitor { type enumeration { enum "none" { value 0; } enum "forward-status" { value 1; } } sros-ext:immutable; default "none"; description "Entity to be monitored to decide whether this entry can be installed in the FDB"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice destination { mandatory true; case spoke-sdp { leaf spoke-sdp { type leafref { path "../../../../spoke-sdp/sdp-bind-id"; } sros-ext:immutable; description "Spoke SDP bind associated with this MAC"; } } case mesh-sdp { leaf mesh-sdp { type leafref { path "../../../../mesh-sdp/sdp-bind-id"; } sros-ext:immutable; description "Mesh SDP bind associated with this MAC"; } } case sap { leaf sap { type leafref { path "../../../../sap/sap-id"; } sros-ext:immutable; description "SAP associated with this MAC"; } } case blackhole { leaf blackhole { type empty; sros-ext:immutable; description "Create a static FDB entry for the MAC address to black-hole traffic"; } } case endpoint { leaf endpoint { type leafref { path "../../../../endpoint/name"; } sros-ext:immutable; description "Endpoint associated with this MAC"; } } } } // list mac } // container static-mac } // container fdb container mfib { description "Enter the mfib context"; container table { description "Enter the table context"; leaf high-wmark { type int32 { range "0..100"; } default "95"; description "High watermark for the MFIB table"; } leaf low-wmark { type int32 { range "0..100"; } default "90"; description "Low watermark for the MFIB table"; } leaf size { type int32 { range "1..40959"; } description "Maximum SG entries in the MFIB"; } } // container table } // container mfib container mac-flush { description "Enter the mac-flush context"; container tldp { description "Enter the tldp context"; leaf propagate { type boolean; default "false"; description "Propagate MAC flush frames from LDP peer to all mesh-SDP and Spoke-SDPs."; } leaf send-on-failure { type boolean; default "false"; description "Send MAC withdraw message on SAP/Spoke-SDP failure"; } } // container tldp } // container mac-flush container vxlan { when "not(../pbb-type)"; description "Enter the vxlan context"; leaf source-vtep { type types-sros:ip-unicast-address; description "Vxlan source virtual tunnel endpoint information"; } list instance { when "../../etree = 'false' and ../../m-vpls = 'false'"; key "vxlan-instance"; description "Enter the instance list instance"; leaf vxlan-instance { type uint32 { range "1..2"; } description "VXLAN instance"; } leaf vni { type types-services:vxlan-vni; sros-ext:immutable; mandatory true; description "VNI of the VXLAN"; } leaf source-vtep-security { type boolean; default "false"; description "Enable/disable source vtep security"; } leaf rx-discard-on-ndf { type enumeration { enum "bm" { value 0; } enum "bum" { value 1; } enum "none" { value 2; } } default "bm"; description "Received multicast traffic type discarded on NDF"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container assisted-replication { description "Enter the assisted-replication context"; choice role { case leaf { container leaf { presence "Enter the 'leaf' context"; description "Enable the leaf context"; leaf acttime { type uint32 { range "1..255"; } units "seconds"; description "Time for the leaf to wait before sending traffic to a new replicator"; } } // container leaf } case replicator { leaf replicator { type empty; description "AR role as replicator"; } } } } // container assisted-replication container network { description "Enter the network context"; container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/network/network-policy-name"; } description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress } // container network list egress-vtep { key "ip-address"; description "Add a list entry for egress-vtep"; leaf ip-address { type types-sros:ip-unicast-address; description "configure egress vtep address for entry"; } } // list egress-vtep container fdb { description "Enter the fdb context"; leaf discard-unknown-source { type boolean; default "false"; description "Enable/disable discarding of frames with unknown source"; } leaf maximum-mac-addresses { type types-services:max-mac-addr; description "Maximum number of MAC entries in the FDB from this vxlan instance"; } leaf protected-src-mac-violation-action { type types-services:protected-src-mac-violation-df-action; description "Action when a relearn request for a protected MAC is received"; } container mac-learning { description "Enter the mac-learning context"; leaf learning { type boolean; default "false"; description "Enable/disable learning of new MAC addresses"; } leaf aging { type boolean; default "false"; description "Enable/disable aging of MAC addresses"; } } // container mac-learning } // container fdb container igmp-snooping { description "Enter the igmp-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Configure as a multicast router port."; } } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Configure as a multicast router port."; } } // container mld-snooping } // list instance } // container vxlan container proxy-arp { when "not(../pbb-type) and not(../m-vpls = 'true')"; presence "Enter the 'proxy-arp' context"; description "Enable the proxy-arp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the proxy"; } leaf dynamic-populate { type boolean; default "false"; description "Populate proxy ARP entries from snooped GARP/ARP/ND messages on SAPs/SDP-bindings"; } leaf age-time { type union { type int32 { range "60..86400"; } type enumeration { enum "never" { value 0; } } } units "seconds"; default "never"; description "Aging timer for proxy entries, where entries are flushed upon timer expiry"; } leaf send-refresh { type union { type int32 { range "120..86400"; } type enumeration { enum "never" { value 0; } } } default "never"; description "Time at which to send a refresh message"; } leaf table-size { type int32 { range "1..16383"; } default "250"; description "Maximum number of learned and static entries allowed in the proxy table of this service"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container evpn { description "Enter the evpn context"; leaf route-tag { type int32 { range "0|1..255"; } sros-ext:auto-restart-to-modify; default "0"; description "Route tag used on export policies to match MAC/IP routes generated by proxy-ARP or proxy-ND module"; } container flood { description "Enter the flood context"; leaf unknown-arp-req { type boolean; default "true"; description "Flood ARP-requests (with source squelching) if there is no active proxy-ARP entry for requested IP"; } leaf gratuitous-arp { type boolean; default "true"; description "Flood GARP-requests/GARP-replies to the EVPN"; } } // container flood } // container evpn container duplicate-detect { description "Enter the duplicate-detect context"; leaf anti-spoof-mac { type types-sros:mac-unicast-address-no-zero; sros-ext:auto-restart-to-modify; description "MAC address to replace the proxy-ARP/ND offending entry's MAC"; } leaf window { type int32 { range "1..15"; } units "minutes"; default "3"; description "Time to monitor the MAC address in the anti-spoofing mechanism"; } leaf num-moves { type int32 { range "3..10"; } default "5"; description "Number of moves required to declare a duplicate entry"; } leaf hold-down-time { type union { type uint32 { range "2..60"; } type enumeration { enum "max" { value -1; } } } units "minutes"; default "9"; description "Hold down time for a duplicate entry"; } leaf static-blackhole { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Consider anti-spoof MAC as black-hole static MAC in FDB"; } } // container duplicate-detect container static-arp { description "Enter the static-arp context"; list ip-address { key "ipv4-address"; description "Enter the ip-address list instance"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "Proxy ARP IP address"; } leaf mac { type types-sros:mac-unicast-address-no-zero; mandatory true; description "Proxy ARP MAC address for static entry"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ip-address } // container static-arp container dynamic-arp { description "Enter the dynamic-arp context"; list ip-address { key "ipv4-address"; description "Enter the ip-address list instance"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "Proxy ARP IP address"; } leaf mac-list { type leafref { path "../../../../../proxy-arp-nd/mac-list/list/list-name"; } description "MAC list for the dynamic entry"; } leaf resolve-retry-time { type int32 { range "1..60"; } units "minutes"; default "5"; description "Frequency at which the resolve messages are sent"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ip-address } // container dynamic-arp } // container proxy-arp container proxy-nd { when "not(../pbb-type) and not(../m-vpls = 'true')"; presence "Enter the 'proxy-nd' context"; description "Enable the proxy-nd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the proxy"; } leaf dynamic-populate { type boolean; default "false"; description "Populate proxy ARP entries from snooped GARP/ARP/ND messages on SAPs/SDP-bindings"; } leaf age-time { type union { type int32 { range "60..86400"; } type enumeration { enum "never" { value 0; } } } units "seconds"; default "never"; description "Aging timer for proxy entries, where entries are flushed upon timer expiry"; } leaf send-refresh { type union { type int32 { range "120..86400"; } type enumeration { enum "never" { value 0; } } } default "never"; description "Time at which to send a refresh message"; } leaf table-size { type int32 { range "1..16383"; } default "250"; description "Maximum number of learned and static entries allowed in the proxy table of this service"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container evpn { description "Enter the evpn context"; leaf route-tag { type int32 { range "0|1..255"; } sros-ext:auto-restart-to-modify; default "0"; description "Route tag used on export policies to match MAC/IP routes generated by proxy-ARP or proxy-ND module"; } leaf advertise-neighbor-type { type enumeration { enum "router" { value 1; } enum "host" { value 2; } } sros-ext:auto-restart-to-modify; default "router"; description "Advertisement type of static or dynamic entries in the EVPN"; } container flood { description "Enter the flood context"; leaf unknown-neighbor-solicitation { type boolean; default "true"; description "Flood unsolicited Neighbor Solicitation messages (with source squelching) into EVPN network"; } leaf unknown-neighbor-advertise-router { type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Flood router unsolicited Neighbor Advertisement (NA) replies to EVPN"; } leaf unknown-neighbor-advertise-host { type boolean; default "true"; description "Flood host unsolicited Neighbor Advertisement (NA) replies to EVPN"; } } // container flood } // container evpn container duplicate-detect { description "Enter the duplicate-detect context"; leaf anti-spoof-mac { type types-sros:mac-unicast-address-no-zero; sros-ext:auto-restart-to-modify; description "MAC address to replace the proxy-ARP/ND offending entry's MAC"; } leaf window { type int32 { range "1..15"; } units "minutes"; default "3"; description "Time to monitor the MAC address in the anti-spoofing mechanism"; } leaf num-moves { type int32 { range "3..10"; } default "5"; description "Number of moves required to declare a duplicate entry"; } leaf hold-down-time { type union { type uint32 { range "2..60"; } type enumeration { enum "max" { value -1; } } } units "minutes"; default "9"; description "Hold down time for a duplicate entry"; } leaf static-blackhole { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Consider anti-spoof MAC as black-hole static MAC in FDB"; } } // container duplicate-detect container static-neighbor { description "Enter the static-neighbor context"; list ip-address { key "ipv6-address"; description "Enter the ip-address list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "Proxy ND IP address"; } leaf mac { type types-sros:mac-unicast-address-no-zero; mandatory true; description "Proxy ARP MAC address for static entry"; } leaf type { type enumeration { enum "host" { value 0; } enum "router" { value 1; } } default "router"; description "Entry type"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ip-address } // container static-neighbor container dynamic-neighbor { description "Enter the dynamic-neighbor context"; list ip-address { key "ipv6-address"; description "Enter the ip-address list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "Proxy ND IP address"; } leaf mac-list { type leafref { path "../../../../../proxy-arp-nd/mac-list/list/list-name"; } description "MAC list for the dynamic entry"; } leaf resolve-retry-time { type int32 { range "1..60"; } units "minutes"; default "5"; description "Frequency at which the resolve messages are sent"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ip-address } // container dynamic-neighbor } // container proxy-nd container routed-vpls { when "not(../pbb-type = 'b-vpls') and not(../m-vpls = 'true')"; presence "Enter the 'routed-vpls' context"; description "Enable the routed-vpls context"; leaf vxlan-ipv4-tep-ecmp { type boolean; default "false"; description "Use ECMP on VXLAN IPv4 destinations for R-VPLS services"; } leaf evpn-mpls-ecmp { type boolean; default "false"; description "Enable/disable ECMP behavior on R-VPLS services"; } container multicast { description "Enter the multicast context"; leaf ip-multicast-ecmp { type boolean; default "false"; description "ECMP behaviour for multicast traffic on bgp-evpn mpls and vxlan"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf forward-to-ip-interface { type boolean; default "false"; description "Forward IPv4 multicast from RVPLS to L3 interface"; } container igmp-snooping { description "Enter the igmp-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate VPLS L3 interface as a multicast router port"; } } // container igmp-snooping } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf forward-to-ip-interface { type boolean; default "false"; description "Forward IPv6 multicast from RVPLS to L3 interface"; } container mld-snooping { description "Enter the mld-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate VPLS L3 interface as a multicast router port"; } } // container mld-snooping } // container ipv6 } // container multicast } // container routed-vpls container load-balancing { description "Enter the load-balancing context"; leaf per-service-hashing { type boolean; default "false"; description "Enable/disable per service hashing."; } leaf spi-load-balancing { when "not(../../pbb-type = 'b-vpls')"; type boolean; default "false"; description "Allow use of SPI (Security Parameter Index) in hashing for ESP/AH encrypted IPv4/IPv6 traffic"; } leaf teid-load-balancing { when "not(../../pbb-type = 'b-vpls')"; type boolean; default "false"; description "Include TEID in hashing algorithm for GTP-U/C encapsulated traffic"; } } // container load-balancing container mac-protect { description "Enter the mac-protect context"; list mac { key "mac-address"; description "Add a list entry for mac"; leaf mac-address { type yang:mac-address; description "The address of the protected MAC."; } } // list mac } // container mac-protect container mrp { when "../pbb-type = 'b-vpls' or ../m-vpls = 'true'"; description "Enter the mrp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable or disable MRP."; } container mmrp { when "../../pbb-type = 'b-vpls' and not(../../m-vpls = 'true')"; description "Enter the mmrp context"; leaf admin-state { type types-sros:admin-state; description "Administratively enable or disable MMRP."; } leaf end-station-only { type boolean; default "false"; description "Specify if only for end-station"; } leaf flood-time { type uint32 { range "3..600"; } description "MMRP flood-time"; } container attribute-table { description "Enter the attribute-table context"; leaf high-wmark { type int32 { range "0..100"; } default "95"; description "High watermark for the MMRP attribute table."; } leaf low-wmark { type int32 { range "0..100"; } default "90"; description "Low watermark for the MMRP attribute table."; } leaf size { type uint32 { range "1..8192"; } default "2048"; description "MMRP max attributes."; } } // container attribute-table } // container mmrp } // container mrp container pbb { description "Enter the pbb context"; leaf force-qtag-forwarding { when "../../pbb-type = 'i-vpls' and not(../../routed-vpls)"; type boolean; default "false"; description "Enable 802.1q tag forwarding"; } list backbone-vpls { when "../../pbb-type = 'i-vpls'"; key "backbone-vpls-service-name"; max-elements 1; description "Enter the backbone-vpls list instance"; leaf backbone-vpls-service-name { type leafref { path "../../../../vpls/service-name"; } description "Backbone VPLS service"; } leaf isid { type types-services:isid; sros-ext:immutable; mandatory true; description "Backbone VPLS ISID"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container igmp-snooping { description "Enter the igmp-snooping context"; list mrouter-destination { key "mac-reference"; description "Add a list entry for mrouter-destination"; leaf mac-reference { type leafref { path "../../../../../../pbb/mac/name"; } description "Mac name reference"; } } // list mrouter-destination } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; list mrouter-destination { key "mac-reference"; description "Add a list entry for mrouter-destination"; leaf mac-reference { type leafref { path "../../../../../../pbb/mac/name"; } description "Mac name reference"; } } // list mrouter-destination } // container mld-snooping list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type leafref { path "../../../../../vpls[service-name=current()/../../backbone-vpls-service-name]/sap/sap-id"; } description "Backbone VPLS SAP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container igmp-snooping { description "Enter the igmp-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container mld-snooping } // list sap list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type leafref { path "../../../../../vpls[service-name=current()/../../backbone-vpls-service-name]/spoke-sdp/sdp-bind-id"; } description "Backbone VPLS SDP Binding ID"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container igmp-snooping { description "Enter the igmp-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container mld-snooping } // list spoke-sdp list mesh-sdp { key "sdp-bind-id"; description "Enter the mesh-sdp list instance"; leaf sdp-bind-id { type leafref { path "../../../../../vpls[service-name=current()/../../backbone-vpls-service-name]/mesh-sdp/sdp-bind-id"; } description "Backbone VPLS SDP Binding ID"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container igmp-snooping { description "Enter the igmp-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container igmp-snooping container mld-snooping { description "Enter the mld-snooping context"; leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } } // container mld-snooping } // list mesh-sdp container fdb { description "Enter the fdb context"; leaf protected-src-mac-violation-action { type types-services:protected-src-mac-violation-df-action; description "Action taken upon a relearn request for protected MAC"; } } // container fdb } // list backbone-vpls container i-vpls-mac-flush { when "../../pbb-type = 'i-vpls'"; description "Enter the i-vpls-mac-flush context"; container tldp { description "Enter the tldp context"; leaf send-on-bvpls-failure { type boolean; default "false"; description "Send negative flush message (flush-all-from-me) on B-VPLS failure"; } leaf propagate-from-bvpls { type boolean; default "false"; description "Propagate MAC flush message from B-VPLS into local I-VPLS"; } container send-to-bvpls { description "Enter the send-to-bvpls context"; leaf all-from-me { type boolean; default "false"; description "Generate LDP MAC withdraw all from me message to b-VPLS"; } leaf all-but-mine { type boolean; default "false"; description "Generate LDP MAC withdraw message to b-VPLS"; } } // container send-to-bvpls } // container tldp container bgp-evpn { description "Enter the bgp-evpn context"; leaf send-to-bvpls { type boolean; default "false"; description "Send b-VPLS EVPN flush"; } } // container bgp-evpn } // container i-vpls-mac-flush container source-bmac { when "../../pbb-type = 'b-vpls'"; description "Enter the source-bmac context"; leaf address { type types-sros:mac-unicast-address-no-zero; description "Base source B-MAC address for the B-VPLS"; } leaf use-es-bmac-lsb { type boolean; default "false"; description "Use LSB from Ethernet-segment backbone MAC"; } leaf use-mclag-bmac-lsb { type boolean; default "false"; description "Use MC LAG backbone MAC LSB"; } } // container source-bmac container mac-notification { when "../../pbb-type = 'b-vpls'"; description "Enter the mac-notification context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MAC notification messages"; } leaf count { type uint32 { range "1..10"; } description "MAC notification messages count"; } leaf interval { type uint32 { range "1..100"; } units "deciseconds"; description "Interval for MAC notification messages"; } leaf renotify { type union { type uint32 { range "240..840"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "none"; description "Re-notify interval for MAC-notification messages"; } } // container mac-notification } // container pbb container stp { description "Enter the stp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of STP"; } leaf forward-delay { type int32 { range "4..30"; } default "15"; description "Configure forward-delay"; } leaf hello-time { type int32 { range "1..10"; } default "2"; description "Configure hello-time"; } leaf hold-count { type int32 { range "1..20"; } default "6"; description "Configure BPDU transmit hold count"; } leaf maximum-age { type int32 { range "6..40"; } default "20"; description "Configure maximum STP information age"; } leaf mode { type enumeration { enum "rstp" { value 2; } enum "comp-dot1w" { value 3; } enum "dot1w" { value 4; } enum "mstp" { value 5; } enum "pmstp" { value 6; } } default "rstp"; description "Configure protocol version"; } leaf mst-maximum-hops { type int32 { range "1..40"; } default "20"; description "Configure the max number of hops in a MSTP region"; } leaf mst-name { type types-sros:named-item; description "Configure the MST region name"; } leaf mst-revision { type int32 { range "0..65535"; } description "Configure MST configuration revision"; } leaf priority { type int32 { range "0..65535"; } default "32768"; description "Configure STP bridge priority"; } list mst-instance { when "../../m-vpls = 'true'"; key "mst-inst-number"; description "Enter the mst-instance list instance"; leaf mst-inst-number { type uint32 { range "1..4094"; } description "Multiple Spanning Tree Instance number"; } leaf mst-priority { type int32 { range "0|4096|8192|12288|16384|20480|24576|28672|32768|36864|40960|45056|49152|53248|57344|61440"; } default "32768"; description "Priority of multiple spanning tree instance for this service."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list vlan-range { key "range"; description "Add a list entry for vlan-range"; leaf range { type string { pattern "((([1-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4]))(\\.\\.(([1-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4])))?)"; } description "Range of vlans that are associated with the Mvpls SAP."; } } // list vlan-range } // list mst-instance } // container stp list bgp { key "bgp-instance"; description "Enter the bgp list instance"; leaf bgp-instance { type int32 { range "1..2"; } description "BGP instance"; } leaf route-distinguisher { type types-services:vpn-route-distinguisher-or-auto-rd; description "High-order 6 bytes that are used as string to compose VSI-ID for use in NLRI"; } leaf-list vsi-import { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "VSI import policies"; } leaf-list vsi-export { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "VSI export policies"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container route-target { description "Enter the route-target context"; leaf export { type types-services:route-target; description "Extended community name for default import policy"; } leaf import { type types-services:route-target; description "Extended community name for default import policy"; } } // container route-target list pw-template-binding { key "pw-template-name"; max-elements 100; description "Enter the pw-template-binding list instance"; leaf pw-template-name { type leafref { path "../../../../pw-template/pw-template-name"; } description "PW template policy name"; } leaf split-horizon-group { type types-sros:named-item; description "Split horizon group"; } leaf bfd-template { type leafref { path "../../../../../bfd/bfd-template/name"; } description "BFD template name for PW-Template binding"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf-list import-rt { type types-services:route-target; max-elements 5; description "Import route-target communities"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice oper-group-association { case oper-group { leaf oper-group { type leafref { path "../../../../oper-group/name"; } description "Operational group"; } } case monitor-oper-group { leaf monitor-oper-group { type leafref { path "../../../../oper-group/name"; } description "Operational group to monitor"; } } } } // list pw-template-binding } // list bgp container igmp-snooping { when "not(../pbb-type = 'b-vpls') and not(../m-vpls = 'true')"; description "Enter the igmp-snooping context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of snooping"; } leaf query-interval { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf robust-count { type uint32 { range "1..255"; } default "2"; description "Robustness variable"; } leaf report-source-address { type types-sros:ipv4-address; description "Source address used when generating IGMP reports."; } leaf query-source-address { type union { type enumeration { enum "system" { value 1; } } type types-sros:ipv4-address; } default "system"; description "Source address for IGMP queries"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mvr { when "not(../../pbb-type = 'i-vpls')"; description "Enter the mvr context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MVR"; } leaf group-policy { type types-sros:named-item; description "Policy that applies MVR"; } leaf description { type types-sros:description; description "Text description"; } } // container mvr container evpn-proxy { description "Enter the evpn-proxy context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EVPN proxy"; } } // container evpn-proxy } // container igmp-snooping container mld-snooping { when "not(../pbb-type = 'b-vpls') and not(../m-vpls = 'true')"; description "Enter the mld-snooping context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of snooping"; } leaf query-interval { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf robust-count { type uint32 { range "1..255"; } default "2"; description "Robustness variable"; } leaf report-source-address { type types-sros:ipv6-address; description "Source address used when generating MLD reports."; } leaf query-source-address { type union { type enumeration { enum "system" { value 1; } } type types-sros:ipv6-address; } default "system"; description "Source address used when generating MLD queries."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mvr { when "not(../../pbb-type = 'i-vpls')"; description "Enter the mvr context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MVR"; } leaf group-policy { type types-sros:named-item; description "Policy that applies MVR"; } leaf description { type types-sros:description; description "Text description"; } } // container mvr container evpn-proxy { description "Enter the evpn-proxy context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EVPN proxy"; } } // container evpn-proxy } // container mld-snooping container pim-snooping { when "not(../pbb-type = 'b-vpls') and not(../m-vpls = 'true')"; presence "Enter the 'pim-snooping' context"; description "Enable the pim-snooping context"; leaf hold-time { type uint32 { range "0..300"; } units "seconds"; default "90"; description "Duration that allows the PIM-snooping switch to snoop all the PIM states in the VPLS"; } leaf-list group-policy { type types-sros:display-string; max-elements 5; ordered-by user; description "Group policy name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of snooping for multicast traffic"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ipv4 container ipv6 { when "not(../../pbb-type = 'i-vpls')"; description "Enter the ipv6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of snooping for multicast traffic"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ipv6 } // container pim-snooping container bgp-ad { when "not(../pbb-type = 'i-vpls') and ../etree = 'false' and ../m-vpls = 'false'"; presence "Enter the 'bgp-ad' context"; description "Enable the bgp-ad context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP AD"; } leaf vpls-id { type types-services:vpls-id; sros-ext:auto-restart-to-modify; description "VPLS identifier as a 8-byte route distinguisher"; } leaf vsi-id-prefix { type types-sros:ipv4-address; sros-ext:auto-restart-to-modify; description "VSI prefix value"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container bgp-ad container bgp-evpn { when "not(../pbb-type = 'i-vpls') and not(../m-vpls = 'true')"; presence "Enter the 'bgp-evpn' context"; description "Enable the bgp-evpn context"; leaf accept-ivpls-evpn-flush { when "../../pbb-type = 'b-vpls'"; type boolean; default "false"; description "Accept non-zero ethernet-tag MAC routes and process for CMAC flushing"; } leaf evi { type types-services:evi; description "EVPN ID"; } leaf incl-mcast-orig-ip { when "not(../../pbb-type = 'b-vpls')"; type types-sros:ipv4-unicast-address; description "Originating IP address"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container routes { description "Enter the routes context"; container mac-ip { description "Enter the mac-ip context"; leaf advertise { type boolean; default "true"; description "Status for the BGP-EVPN MAC/IP routes advertisement"; } leaf cfm-mac { type boolean; default "false"; description "Enable/disable the advertisement of MEP, MIP, and VMEP MAC addresses over the BGP EVPN."; } leaf unknown-mac { when "not(../../../../pbb-type = 'b-vpls')"; type boolean; default "false"; description "Enable/disable the advertisement of MEP, MIP, and VMEP MAC addresses over the BGP EVPN."; } } // container mac-ip container ip-prefix { when "../../../routed-vpls"; description "Enter the ip-prefix context"; leaf advertise { type boolean; default "false"; description "Status for the IP prefix routes advertisement"; } leaf include-direct-interface-host { type boolean; default "false"; description "BGP EVPN IP route advertisement"; } } // container ip-prefix container incl-mcast { description "Enter the incl-mcast context"; leaf advertise-ingress-replication { type boolean; default "true"; description "BGP EVPN IMET-IR route advertisement"; } } // container incl-mcast container sel-mcast { description "Enter the sel-mcast context"; leaf advertise { type boolean; default "false"; description "Advertise Selective Multicast Ethernet Tag routes"; } } // container sel-mcast } // container routes container mac-duplication { description "Enter the mac-duplication context"; leaf retry { type union { type uint32 { range "2..60"; } type enumeration { enum "never" { value 0; } } } units "minutes"; default "9"; description "BGP EVPN MAC duplication retry"; } leaf blackhole { when "not(../../../pbb-type = 'b-vpls') and not(../../../routed-vpls)"; type boolean; default "false"; description "Enable black hole dup MAC configuration"; } container detect { description "Enter the detect context"; leaf num-moves { type uint32 { range "3..10"; } default "5"; description "BGP EVPN MAC duplication detection number of moves"; } leaf window { type uint32 { range "1..15"; } units "minutes"; default "3"; description "BGP EVPN MAC duplication detection window"; } } // container detect } // container mac-duplication container isid-route-target { description "Enter the isid-route-target context"; list range { key "start"; max-elements 8192; description "Enter the range list instance"; leaf start { type types-sros:svc-isid-non-zero; description "Starting value of the isid-range entry"; } leaf end { type types-sros:svc-isid-non-zero; mandatory true; description "Ending value of the isid-range entry"; } leaf type { type enumeration { enum "auto" { value 1; } enum "configured" { value 2; } } sros-ext:immutable; default "auto"; description "Method used to support the PBB-EVPN ISID-based route target advertisement"; } leaf route-target { when "../type = 'configured'"; type types-services:route-target; sros-ext:immutable; description "Route for the ISID range"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list range } // container isid-route-target list vxlan { key "bgp-instance"; description "Enter the vxlan list instance"; leaf bgp-instance { type int32 { range "1..2"; } description "BGP instance"; } leaf vxlan-instance { type leafref { path "../../../vxlan/instance/vxlan-instance"; } sros-ext:immutable; mandatory true; description "VXLAN instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of VXLAN auto-bindings creation"; } leaf send-tunnel-encap { type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Send VXLAN value in encapsulation extended community"; } leaf send-incl-mcast-ir-on-ndf { type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Allow IMET-IR on NDF"; } leaf default-route-tag { type types-services:one-byte-value; sros-ext:auto-restart-to-modify; description "Default route tag"; } leaf ecmp { type types-services:ecmp-value; default "1"; description "Maximum ECMP routes information."; } leaf oper-group { type leafref { path "../../../../oper-group/name"; } description "Operational-Group identifier."; } leaf mh-mode { type enumeration { enum "access" { value 0; } enum "network" { value 1; } } sros-ext:auto-restart-to-modify; default "access"; description "Multi-homing mode"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container routes { description "Enter the routes context"; container auto-disc { description "Enter the auto-disc context"; leaf advertise { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Advertise routes on auto-discovery"; } } // container auto-disc } // container routes } // list vxlan list mpls { key "bgp-instance"; description "Enter the mpls list instance"; leaf bgp-instance { type int32 { range "1..2"; } description "BGP instance"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP EVPN MPLS"; } leaf force-vc-forwarding { when "not(../../../pbb-type = 'b-vpls') and not(../../../routed-vpls)"; type types-services:bgp-evpn-force-vc-forwarding; description "VC forwarding action"; } leaf control-word { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable/disable setting the CW bit in the label message."; } leaf split-horizon-group { type leafref { path "../../../split-horizon-group/shg-name"; } sros-ext:auto-restart-to-modify; description "Split horizon group"; } leaf ingress-replication-bum-label { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Use the same label as the one advertised for unicast traffic"; } leaf ecmp { type types-services:ecmp-value; default "1"; description "Maximum ECMP routes information"; } leaf entropy-label { type boolean; default "false"; description "Enable/disable use of entropy-label."; } leaf default-route-tag { type types-services:one-byte-value; sros-ext:auto-restart-to-modify; description "Default route tag"; } leaf oper-group { type leafref { path "../../../../oper-group/name"; } description "Operational-Group identifier."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container send-tunnel-encap { description "Enter the send-tunnel-encap context"; leaf mpls { type boolean; sros-ext:auto-restart-to-modify; default "true"; description "Enable MPLS encapsulation"; } leaf mpls-over-udp { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable MPLS over UDP encapsulation"; } } // container send-tunnel-encap container auto-bind-tunnel { description "Enter the auto-bind-tunnel context"; leaf resolution { type types-services:resolve-status; default "none"; description "Resolution method for tunnel selection"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Enable/disable enforcement of strict tunnel tagging"; } leaf ecmp { type types-router:mpls-ecmp; default "1"; description "Maximum ECMP routes information"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable flexible algorithm fallback"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; default "false"; description "Use BGP tunneling for next-hop resolution"; } leaf ldp { type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // container auto-bind-tunnel container route-next-hop { description "Enter the route-next-hop context"; choice tag { default "ipv4"; case ipv4 { leaf system-ipv4 { type empty; sros-ext:auto-restart-to-modify; description "Use system IPv4 address"; } } case ipv6 { leaf system-ipv6 { type empty; sros-ext:auto-restart-to-modify; description "Use system IPv6 address"; } } case explicit { leaf ip-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Use specific unicast IPv4/IPv6 address"; } } } } // container route-next-hop container fdb { description "Enter the fdb context"; leaf protected-src-mac-violation-action { type types-services:protected-src-mac-violation-df-action; description "Action when a relearn request for a protected MAC is received"; } } // container fdb } // list mpls } // container bgp-evpn container bgp-vpls { when "not(../pbb-type = 'i-vpls') and ../etree = 'false'"; presence "Enter the 'bgp-vpls' context"; description "Enable the bgp-vpls context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the BGP-VPLS instance"; } leaf maximum-ve-id { type types-services:ve-id; description "Maximum vpls-edge id for BGP-VPLS"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ve { description "Enter the ve context"; leaf name { type types-sros:named-item; description "Name of VPLS edge."; } leaf id { type types-services:ve-id; description "VPLS edge identifier"; } } // container ve } // container bgp-vpls list endpoint { key "name"; max-elements 10; description "Enter the endpoint list instance"; leaf name { type types-sros:named-item; description "Service endpoint name"; } leaf description { type types-sros:description; description "Text description"; } leaf revert-time { type types-services:revert-time; default "immediate"; description "Time to wait before reverting back to the primary spoke-sdp defined on this service endpoint"; } leaf ignore-standby-signaling { type boolean; default "false"; description "Ignore standby-bit received from TLDP peers when performing internal tasks"; } leaf suppress-standby-signaling { type boolean; default "true"; description "Do not send pseudowire standby bit to TLDP peer when specified spoke SDP is selected as standby"; } leaf block-on-mesh-failure { type boolean; default "false"; description "Whether operational status of spoke-SDPs in the endpoint will be affected by the operational status of associated mesh SDPs in this service."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container fdb { description "Enter the fdb context"; leaf mac-pinning { type boolean; default "false"; description "Activate MAC address pinning on this endpoint"; } leaf maximum-mac-addresses { type types-services:max-mac-addr; description "Maximum learned and static entries for this end point"; } leaf auto-learn-mac-protect { type boolean; default "false"; description "Populate automatically MAC protect list with MAC addresses learned on SDP with this endpoint"; } leaf protected-src-mac-violation-action { type types-services:sdp-protected-src-mac-violation-action; description "Action when a relearn request for a protected MAC is received on the SDP"; } } // container fdb } // list endpoint list split-horizon-group { when "not(../m-vpls = 'true')"; key "shg-name"; description "Enter the split-horizon-group list instance"; leaf shg-name { type types-sros:named-item; description "Name for the service split-horizon-group"; } leaf description { type types-sros:description; description "Text description"; } leaf residential { when "not(../../pbb-type) and not(../../routed-vpls)"; type boolean; sros-ext:immutable; default "false"; description "Define as a residential split horizon group"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container fdb { description "Enter the fdb context"; container saps { description "Enter the saps context"; leaf auto-learn-mac-protect { type boolean; default "false"; description "Populate automatically MAC protect list with MAC addresses learned on SDP with split horizon group"; } leaf auto-learn-mac-protect-exclude-list { type leafref { path "../../../../../mac-list/name"; } description "Referenced MAC protect exclusion list name"; } leaf protected-src-mac-violation-action { type types-services:sap-protected-src-mac-violation-action; description "Action to take whenever a relearn request for a protected MAC is received"; } leaf discard-unprotected-dest-mac { type boolean; default "false"; description "Enable/disable unprotected dest MAC restriction"; } } // container saps } // container fdb } // list split-horizon-group container eth-cfm { description "Enter the eth-cfm context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container mcr-default-gtw { when "not(../pbb-type)"; description "Enter the mcr-default-gtw context"; leaf ip { type types-sros:ipv4-unicast-address; description "Multi-chassis ring default gateway IP address"; } leaf mac { type yang:mac-address; default "00:00:00:00:00:00"; description "Multi-chassis ring default gateway MAC address"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mcr-default-gtw list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf vlan-vc-tag { type types-services:vlan-vc-tag; description "SDP bind VC tag"; } leaf split-horizon-group { type leafref { path "../../split-horizon-group/shg-name"; } sros-ext:immutable; description "Name of the split horizon group where the spoke SDP bind belongs to"; } leaf multicast-source { type boolean; sros-ext:immutable; default "false"; description "Enable/disable multicast-source on the spoke SDP Bind."; } leaf collect-stats { type boolean; default "false"; description "Allow agent to collect accounting statistics"; } leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "Policy to collect accounting statistics"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf force-vc-forwarding { type enumeration { enum "vlan" { value 1; } enum "qinq-c-tag-c-tag" { value 2; } enum "qinq-s-tag-c-tag" { value 3; } } description "VC forwarding action"; } leaf etree-root-leaf-tag { when "../../etree = 'true'"; type boolean; sros-ext:immutable; default "false"; description "E-tree root leaf tag status"; } leaf etree-leaf { when "../../etree = 'true'"; type boolean; sros-ext:immutable; default "false"; description "Enable etree leaf access-circuit status"; } leaf vc-type { type types-services:vpls-sdp-bind-vc-type; sros-ext:auto-restart-to-modify; default "ether"; description "Type of virtual circuit (VC) associated with the SDP binding; VPLS not supported"; } leaf bpdu-translation { type types-services:bpdu-translation; description "Bpdu translation."; } leaf ignore-standby-signaling { type boolean; default "false"; description "Ignore standby-bit received from TLDP peers when performing internal tasks"; } leaf block-on-mesh-failure { type boolean; default "false"; description "Enable blocking after all configured SDPs or endpoints are in operationally down state"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf bfd-template { status obsolete; type leafref { path "../../../../bfd/bfd-template/name"; } description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } choice oper-group-association { case oper-group { leaf oper-group { type leafref { path "../../../oper-group/name"; } description "Operational group identifier"; } } case monitor-oper-group { leaf monitor-oper-group { type leafref { path "../../../oper-group/name"; } description "Operational group identifier that affect the state of this SDP bind"; } } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../qos/network/network-policy-name"; } description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../qos/network/network-policy-name"; } description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos container mfib-allowed-mda-destinations { description "Enter the mfib-allowed-mda-destinations context"; list mda { key "mda-id"; description "Add a list entry for mda"; leaf mda-id { type types-isa:slot-mda; description "MFIB allowed MDA destination"; } } // list mda } // container mfib-allowed-mda-destinations } // container egress container endpoint { description "Enter the endpoint context"; leaf name { type leafref { path "../../../../vpls[service-name=current()/../../../service-name]/endpoint/name"; } sros-ext:auto-restart-to-modify; description "Name of endpoint to which this SDP bind is attached."; } leaf precedence { type types-services:sdp-precedence; default "4"; description "Precedence of this SDP bind when there are multiple SDP binds attached to one service endpoint"; } } // container endpoint container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } } } // container cpu-protection container pw-status { description "Enter the pw-status context"; leaf signaling { type boolean; default "true"; description "Whether this SDP binding supports pseudowire status signaling."; } } // container pw-status container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type leafref { path "../../../../../bfd/bfd-template/name"; } description "BFD template associated with the SDP binding"; } leaf failure-action { type types-services:sbind-bfd-fail-action; default "none"; description "VCCV BFD action taken on the SDP binding"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; description "Time to wait for BFD up status"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd container pbb { when "../../pbb-type = 'b-vpls'"; description "Enter the pbb context"; container fault-propagation { description "Enter the fault-propagation context"; list backbone-mac-name { key "name"; description "Add a list entry for backbone-mac-name"; leaf name { type leafref { path "../../../../../../pbb/mac/name"; } description "Backbone MAC address name"; } } // list backbone-mac-name list backbone-mac-address { key "address"; description "Add a list entry for backbone-mac-address"; leaf address { type types-sros:mac-unicast-address-no-zero; description "Backbone MAC address"; } } // list backbone-mac-address } // container fault-propagation } // container pbb container i-vpls-mac-flush { when "../../pbb-type = 'i-vpls'"; description "Enter the i-vpls-mac-flush context"; container bgp-evpn { description "Enter the bgp-evpn context"; leaf send-to-bvpls { type boolean; default "true"; description "Send B-VPLS EVPN flush"; } } // container bgp-evpn } // container i-vpls-mac-flush container fdb { description "Enter the fdb context"; leaf limit-mac-move { type types-services:limit-mac-move; default "blockable"; description "MAC move"; } leaf discard-unknown-source { type boolean; default "false"; description "Discard packets with unknown destination MAC addresses"; } leaf mac-pinning { type boolean; default "false"; description "MAC address pinning in active status"; } leaf maximum-mac-addresses { type types-services:max-mac-addr; description "Maximum MAC entries in the FDB from this SDP"; } leaf auto-learn-mac-protect { type boolean; default "false"; description "Populate automatically MAC protect list with source MAC addresses learned on SDP"; } leaf auto-learn-mac-protect-exclude-list { type leafref { path "../../../../mac-list/name"; } description "Referenced MAC protect exclusion list name"; } leaf protected-src-mac-violation-action { type types-services:sdp-protected-src-mac-violation-action; description "Action when a relearn request for a protected MAC is received on the SDP"; } container mac-learning { description "Enter the mac-learning context"; leaf learning { type boolean; default "true"; description "Enable learning of new MAC addresses"; } leaf aging { type boolean; default "true"; description "Enable aging of MAC addresses"; } } // container mac-learning } // container fdb container stp { description "Enter the stp context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of STP"; } leaf auto-edge { type boolean; default "true"; description "Enable/disable automatic detection of edge-port."; } leaf edge-port { type boolean; default "false"; description "Configure as edge-port."; } leaf link-type { type types-services:stp-link-type; default "pt-pt"; description "Configure STP link-type"; } leaf path-cost { type types-services:stp-path-cost; default "10"; description "Configure path-cost"; } leaf priority { type int32 { range "0..255"; } default "128"; description "Configure STP priority"; } leaf root-guard { type boolean; default "false"; description "Enable/disable STP root-guard"; } leaf port-num { type types-services:stp-port-num; description "Configure virtual port number"; } } // container stp container l2pt { description "Enter the l2pt context"; container termination { presence "Enter the 'termination' context"; description "Enable the termination context"; container protocols { description "Enter the protocols context"; leaf stp { type boolean; default "true"; description "Enable/disable spanning tree protocols stp/mstp/pvst/rstp."; } leaf cdp { type boolean; default "false"; description "Enable Cisco discovery protocol"; } leaf vtp { type boolean; default "false"; description "Enable/disable virtual trunk protocol."; } leaf dtp { type boolean; default "false"; description "Enable dynamic trunking protocol"; } leaf pagp { type boolean; default "false"; description "Enable/disable port aggregation protocol."; } leaf udld { type boolean; default "false"; description "Enable/disable unidirectional link detection."; } } // container protocols } // container termination } // container l2pt container dhcp { when "not(../../pbb-type)"; description "Enter the dhcp context"; leaf description { type types-sros:description; description "Text description"; } leaf snoop { type boolean; default "false"; description "Allow DHCP snooping of DHCP messages on the SAP or SDP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dhcp container igmp-snooping { when "not(../../pbb-type = 'b-vpls') and not(../../m-vpls = 'true')"; description "Enter the igmp-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum sources that are allowed per group"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum group source combinations"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv4-multicast-address; description "Group address of static IGMP multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container igmp-snooping container mld-snooping { when "not(../../pbb-type = 'b-vpls') and not(../../m-vpls = 'true')"; description "Enter the mld-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv6-multicast-address; description "Group address of multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container mld-snooping container pim-snooping { when "not(../../pbb-type = 'b-vpls') and not(../../m-vpls = 'true')"; description "Enter the pim-snooping context"; leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups for this interface"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container pim-snooping container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list squelch-ingress-ctag-levels { type uint32 { range "0..7"; } max-elements 8; description "Squelch levels using additional VLAN C-Tag space"; } leaf vmep-filter { type boolean; default "false"; description "Suppress eth-cfm PDUs based on level lower than or equal to configured Virtual MEP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf primary-vlan { type boolean; sros-ext:immutable; default "false"; description "MEP provisioned using MA primary VLAN ID"; } leaf direction { type types-eth-cfm:mp-direction; sros-ext:immutable; description "Direction the MEP faces"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container static-isid { description "Enter the static-isid context"; list range { when "../../../pbb-type = 'b-vpls'"; key "range-id"; description "Enter the range list instance"; leaf range-id { type uint32 { range "1..8191"; } description "The range identifier for static ISID."; } leaf start { type types-services:isid-no-zero; description "The low value of the range for this entry."; } leaf end { type types-services:isid-no-zero; description "The high value of the range for this entry."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list range } // container static-isid container mrp { when "../../pbb-type = 'b-vpls' and not(../../m-vpls = 'true')"; description "Enter the mrp context"; leaf join-time { type uint32 { range "1..10"; } units "deciseconds"; default "2"; description "Set the maximum rate for attribute join messages to be sent on the SDP."; } leaf leave-time { type uint32 { range "30..60"; } units "deciseconds"; default "30"; description "Set the time an attribute is held in leave state before registration is removed."; } leaf leave-all-time { type uint32 { range "60..300"; } units "deciseconds"; default "100"; description "Set the frequency where all attribute declarations on the SDP are refreshed."; } leaf periodic-time { type uint32 { range "10..100"; } units "deciseconds"; default "10"; description "Set the freqeuency of retransmission of attribute declarations."; } leaf periodic-timer { type boolean; default "false"; description "Enable/Disable retransmission of attribute declarations."; } leaf policy { type leafref { path "../../../../mrp/policy/policy-name"; } description "Specify they MRP policy to control which Group BMAC attributes will advertise on the egress SDP Bind."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mrp } // list spoke-sdp list mesh-sdp { key "sdp-bind-id"; description "Enter the mesh-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf vlan-vc-tag { type types-services:vlan-vc-tag; description "SDP bind VC tag"; } leaf collect-stats { type boolean; default "false"; description "Allow agent to collect accounting statistics"; } leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "Policy to collect accounting statistics"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf force-vc-forwarding { type enumeration { enum "vlan" { value 1; } enum "qinq-c-tag-c-tag" { value 2; } enum "qinq-s-tag-c-tag" { value 3; } } description "VC forwarding action"; } leaf etree-root-leaf-tag { when "../../etree = 'true'"; type boolean; sros-ext:immutable; default "false"; description "Status for E-tree root leaf tag"; } leaf etree-leaf { when "../../etree = 'true'"; type boolean; sros-ext:immutable; default "false"; description "Enable etree leaf access-circuit status"; } leaf vc-type { type types-services:vpls-sdp-bind-vc-type; sros-ext:auto-restart-to-modify; default "ether"; description "Type of virtual circuit (VC) associated with the SDP binding; VPLS not supported"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf bfd-template { status obsolete; type leafref { path "../../../../bfd/bfd-template/name"; } description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../qos/network/network-policy-name"; } description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../qos/network/network-policy-name"; } description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos container mfib-allowed-mda-destinations { description "Enter the mfib-allowed-mda-destinations context"; list mda { key "mda-id"; description "Add a list entry for mda"; leaf mda-id { type types-isa:slot-mda; description "MFIB allowed MDA destination"; } } // list mda } // container mfib-allowed-mda-destinations } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } } } // container cpu-protection container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type leafref { path "../../../../../bfd/bfd-template/name"; } description "BFD template associated with the SDP binding"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd container pbb { when "../../pbb-type = 'b-vpls'"; description "Enter the pbb context"; container fault-propagation { description "Enter the fault-propagation context"; list backbone-mac-name { key "name"; description "Add a list entry for backbone-mac-name"; leaf name { type leafref { path "../../../../../../pbb/mac/name"; } description "Backbone MAC address name"; } } // list backbone-mac-name list backbone-mac-address { key "address"; description "Add a list entry for backbone-mac-address"; leaf address { type types-sros:mac-unicast-address-no-zero; description "Backbone MAC address"; } } // list backbone-mac-address } // container fault-propagation } // container pbb container fdb { description "Enter the fdb context"; leaf mac-pinning { type boolean; default "false"; description "MAC address pinning in active status"; } leaf auto-learn-mac-protect { type boolean; default "false"; description "Enable/disable of automatic marking of MACs as protected"; } leaf auto-learn-mac-protect-exclude-list { type leafref { path "../../../../mac-list/name"; } description "Referenced MAC protect exclusion list name"; } leaf protected-src-mac-violation-action { type types-services:sdp-protected-src-mac-violation-action; description "Action to take whenever a relearn request for a protected MAC is received"; } } // container fdb container dhcp { when "not(../../pbb-type)"; description "Enter the dhcp context"; leaf description { type types-sros:description; description "Text description"; } leaf snoop { type boolean; default "false"; description "Allow DHCP snooping of DHCP messages on the SAP or SDP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dhcp container igmp-snooping { when "not(../../pbb-type = 'b-vpls') and not(../../m-vpls = 'true')"; description "Enter the igmp-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum sources that are allowed per group"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum group source combinations"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv4-multicast-address; description "Group address of static IGMP multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container igmp-snooping container mld-snooping { when "not(../../pbb-type = 'b-vpls') and not(../../m-vpls = 'true')"; description "Enter the mld-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv6-multicast-address; description "Group address of multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container mld-snooping container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list squelch-ingress-ctag-levels { type uint32 { range "0..7"; } max-elements 8; description "Squelch levels using additional VLAN C-Tag space"; } leaf vmep-filter { type boolean; default "false"; description "Suppress eth-cfm PDUs based on level lower than or equal to configured Virtual MEP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf primary-vlan { type boolean; sros-ext:immutable; default "false"; description "MEP provisioned using MA primary VLAN ID"; } leaf direction { type types-eth-cfm:mp-direction; sros-ext:immutable; description "Direction the MEP faces"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container mrp { when "../../pbb-type = 'b-vpls' and not(../../m-vpls = 'true')"; description "Enter the mrp context"; leaf join-time { type uint32 { range "1..10"; } units "deciseconds"; default "2"; description "Set the maximum rate for attribute join messages to be sent on the SDP."; } leaf leave-time { type uint32 { range "30..60"; } units "deciseconds"; default "30"; description "Set the time an attribute is held in leave state before registration is removed."; } leaf leave-all-time { type uint32 { range "60..300"; } units "deciseconds"; default "100"; description "Set the frequency where all attribute declarations on the SDP are refreshed."; } leaf periodic-time { type uint32 { range "10..100"; } units "deciseconds"; default "10"; description "Set the freqeuency of retransmission of attribute declarations."; } leaf periodic-timer { type boolean; default "false"; description "Enable/Disable retransmission of attribute declarations."; } leaf policy { type leafref { path "../../../../mrp/policy/policy-name"; } description "Specify they MRP policy to control which Group BMAC attributes will advertise on the egress SDP Bind."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mrp } // list mesh-sdp list bgp-mh-site { key "site-name"; description "Enter the bgp-mh-site list instance"; leaf site-name { type types-sros:named-item; description "Name for the specific site"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the VPLS BGP multi-homing site"; } leaf id { type types-services:site-id; sros-ext:auto-restart-to-modify; description "ID for the site"; } leaf boot-timer { type types-services:site-boot-timer; units "seconds"; description "Time that system waits after node reboot and before it runs DF election algorithm"; } leaf activation-timer { type types-services:site-activation-timer; units "seconds"; description "Time that the local sites are in standby status, waiting for BGP updates"; } leaf monitor-oper-group { type leafref { path "../../../oper-group/name"; } description "Operational group to monitor"; } leaf failed-threshold { type types-services:failed-threshold; default "all"; description "Threshold for the site to be declared down"; } leaf min-down-timer { type types-services:site-min-down-timer; units "seconds"; description "Minimum downtime for BGP multi-homing site after transition from up to down"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice site-object { case spoke-sdp { leaf spoke-sdp { type types-services:sdp-bind-id; sros-ext:auto-restart-to-modify; description "SDP to be associated with this site"; } } case sap { leaf sap { type types-sros:sap; sros-ext:auto-restart-to-modify; description "SAP to be associated with this site"; } } case mesh-sdp { leaf mesh-sdp-binds { type empty; description "Specify if a mesh-sdp-binding is associated with this site"; } } case shg { leaf shg-name { type types-sros:named-item; sros-ext:auto-restart-to-modify; description "Split horizon group to be associated with this site"; } } } } // list bgp-mh-site list sap { key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type types-sros:sap; description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "Accounting policy"; } leaf anti-spoof { type types-services:anti-spoof-option; description "Type of anti-spoof filtering"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf calling-station-id { type types-sros:string-not-all-spaces { length "1..64"; } description "Calling station ID"; } leaf cflowd { when "not(../../pbb-type = 'b-vpls')"; type boolean; default "false"; description "Enable Cflowd collection and analysis on this SAP"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type leafref { path "../../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Distributed CPU protection policy for SAP"; } leaf host-admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of hosts"; } leaf host-lockout-policy { type leafref { path "../../../../subscriber-mgmt/host-lockout-policy/name"; } description "Host lockout policy"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf split-horizon-group { type leafref { path "../../split-horizon-group/shg-name"; } sros-ext:immutable; description "Split horizon group"; } leaf multicast-source { type boolean; sros-ext:immutable; default "false"; description "Enable/disable multicast-source on the SAP."; } leaf etree-leaf { when "../../etree = 'true'"; type boolean; sros-ext:immutable; default "false"; description "Enable etree leaf access-circuit status"; } leaf arp-reply-agent { when "not(../../pbb-type)"; type types-services:arp-reply-agent; description "Enable arp-reply-agent function"; } leaf bpdu-translation { type types-services:bpdu-translation; description "Bpdu translation on this SAP"; } leaf process-cpm-traffic-on-sap-down { type boolean; default "false"; description "Process CPM traffic on SAP down event"; } leaf bgp-vpls-mh-veid { type int32 { range "1..65535"; } description "BGP-VPLS multi-homing VE-ID"; } leaf radius-auth-policy { type leafref { path "../../../../subscriber-mgmt/radius-authentication-policy/name"; } description "RADIUS authentication policy"; } leaf shcv-policy-ipv4 { type leafref { path "../../../../subscriber-mgmt/shcv-policy/name"; } description "Subscriber host connectivity verification policy for IPv4"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice oper-group-association { case oper-group { leaf oper-group { type leafref { path "../../../oper-group/name"; } description "Operational group"; } } case monitor-oper-group { leaf monitor-oper-group { type leafref { path "../../../oper-group/name"; } description "Monitor operational group"; } } } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Queue group instance"; } } // container fp-redirect-group container overrides { description "Enter the overrides context"; container ip-criteria { description "Enter the ip-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv4 criteria"; } } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv6 criteria"; } } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qtag-manipulation { if-feature nokia-features:sros-qtag-manipulation; when "not(../../../pbb-type = 'b-vpls') and not(../../../pbb-type = 'i-vpls') and not(../../../m-vpls = 'true')"; description "Enter the qtag-manipulation context"; choice tags { case push-dot1q-vlan { leaf push-dot1q-vlan { type types-services:qtag-manipulation-info; description "VLAN translation information"; } } } } // container qtag-manipulation container vlan-manipulation { if-feature nokia-features:sros-vlan-manipulation; description "Enter the vlan-manipulation context"; leaf action { type types-services:vlan-manipulation-ingress-action-type; description "Action to manipulate the VLAN tag(s) of the packets."; } leaf outer-tag { type types-services:vlan-manipulate-ingress-vlan-type; default "null"; description "Outer VLAN tag to be applied."; } leaf inner-tag { type types-services:vlan-manipulate-ingress-vlan-type; default "null"; description "Inner VLAN tag to be applied in case of QinQ encapsulation."; } } // container vlan-manipulation container aggregate-policer { description "Enter the aggregate-policer context"; leaf rate { type types-qos:aggr-policer-rate; default "max"; description "Aggregate policer rate to be used in kbps"; } leaf burst { type types-qos:aggr-policer-burst; default "default"; description "Aggregate policer burst"; } leaf cir { type types-qos:aggr-policer-cir; description "Aggregate policer cir to be used in kbps"; } leaf cbs { type types-qos:aggr-policer-cbs; description "Aggregate policer cbs"; } } // container aggregate-policer } // container ingress container egress { description "Enter the egress context"; leaf dest-mac-rewrite { type types-sros:mac-unicast-address-no-zero; description "Destination MAC overwrite for unicast"; } container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port redirect queue group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of port queue group"; } } // container port-redirect-group container overrides { description "Enter the overrides context"; leaf hs-secondary-shaper { type types-sros:named-item; description "HS Secondary Shaper"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf secondary-shaper { status obsolete; type types-sros:named-item; description "Secondary shaper for the HSMDA queue"; } leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Packet byte offset for HSMDA queue"; } leaf wrr-policy { status obsolete; type leafref { path "../../../../../../../../../qos/hsmda-wrr-policy/hsmda-wrr-policy-name"; } description "WRR policy for the HSMDA queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type leafref { path "../../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../../policy-name]/hsmda-queues/queue/queue-id"; } description "Egress HSMDA queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; description "Administrative PIR rate."; } leaf slope-policy { status obsolete; type leafref { path "../../../../../../../../../../qos/hsmda-slope-policy/hsmda-slope-policy-name"; } description "Name of the slope-policy which is used to override the default slope-policy for the named buffer pool."; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "Weight value for the HSMDA queue"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list queue } // container hsmda-queues list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type leafref { path "../../../../../../../../../../qos/slope-policy/slope-policy-name"; } description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/hs-wrr-group/group-id"; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Weight of scheduling class."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "Administrative PIR."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent."; } } } } // list hs-wrr-group } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/vlan-qos-policy/vlan-qos-policy-name"; } description "Egress vlan-qos-policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type leafref { path "../../../../../../../qos/egress-remark-policy/egress-remark-policy-name"; } description "Egress-remark-policy name"; } } // container egress-remark-policy } // container qos container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate container vlan-manipulation { if-feature nokia-features:sros-vlan-manipulation; description "Enter the vlan-manipulation context"; leaf action { type types-services:vlan-manipulation-egress-action-type; description "Action to manipulate the VLAN tag(s) of the packets."; } leaf tag { type types-services:vlan-manipulation-egress-vlan-type; default "null"; description "VLAN tag to be applied by action."; } } // container vlan-manipulation } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container etree-root-leaf-tag { when "../../etree = 'true'"; presence "Enter the 'etree-root-leaf-tag' context"; description "Enable the etree-root-leaf-tag context"; leaf leaf { type int32 { range "1..4094"; } sros-ext:immutable; mandatory true; description "Leaf tag value"; } } // container etree-root-leaf-tag container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; description "Time during which the system continues to track inactive hosts"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of multicast groups to be tracked"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of multicast groups to be tracked per group"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of multicast sources to be tracked"; } leaf router-alert-check { type boolean; default "true"; description "Enable IGMP router alert check option"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container igmp-host-tracking container igmp-snooping { when "not(../../pbb-type = 'b-vpls') and not(../../m-vpls = 'true')"; description "Enter the igmp-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum sources that are allowed per group"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum group source combinations"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type types-mcast-cac:constraints-level; description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } mandatory true; description "Bandwidth available for this level"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type uint32 { range "1..64"; } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; mandatory true; description "Level ID to associate with number of down LAG ports"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list number-down } // container mc-constraints container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container mvr { when "not(../../../pbb-type = 'i-vpls')"; description "Enter the mvr context"; leaf from-vpls { type leafref { path "../../../../../vpls/service-name"; } description "MVR VPLS from which the multicast channels are taken"; } leaf to-sap { type types-sros:sap; description "Multicast channels copied to SAP"; } } // container mvr container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv4-multicast-address; description "Group address of static IGMP multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container igmp-snooping container mld-snooping { when "not(../../pbb-type = 'b-vpls') and not(../../m-vpls = 'true')"; description "Enter the mld-snooping context"; leaf router-alert-check { type boolean; default "true"; description "Enable IP router alert check option"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups allowed"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf mrouter-port { type boolean; default "false"; description "Operate port as a multicast router port"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss."; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mvr { when "not(../../../pbb-type = 'i-vpls')"; description "Enter the mvr context"; leaf from-vpls { type leafref { path "../../../../../vpls/service-name"; } description "MVR VPLS from which the multicast channels are taken"; } leaf to-sap { type types-sros:sap; description "The SAP to which the multicast channels are copied"; } } // container mvr container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv6-multicast-address; description "Group address of multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // container mld-snooping container pim-snooping { when "not(../../pbb-type = 'b-vpls') and not(../../m-vpls = 'true')"; description "Enter the pim-snooping context"; leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum groups for this interface"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container pim-snooping container stp { description "Enter the stp context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of STP"; } leaf auto-edge { type boolean; default "true"; description "Enable/disable automatic detection of edge-port."; } leaf edge-port { type boolean; default "false"; description "Configure as edge-port."; } leaf link-type { type types-services:stp-link-type; default "pt-pt"; description "Configure STP link-type"; } leaf path-cost { type types-services:stp-path-cost; default "10"; description "Configure path-cost"; } leaf priority { type int32 { range "0..255"; } default "128"; description "Configure STP priority"; } leaf root-guard { type boolean; default "false"; description "Enable/disable STP root-guard"; } leaf port-num { type types-services:stp-port-num; description "Configure virtual port number"; } list mst-instance { when "../../../m-vpls = 'true'"; key "mst-inst-number"; description "Enter the mst-instance list instance"; leaf mst-inst-number { type uint32 { range "1..4094"; } description "Multiple Spanning Tree Instance number"; } leaf mst-path-cost { type types-services:stp-path-cost; default "10"; description "MSTI path cost."; } leaf mst-port-priority { type int32 { range "0|16|32|48|64|80|96|112|128|144|160|176|192|208|224|240"; } default "128"; description "MSTI port priority. The value of the port priority field which is contained in the most significant 4 bits of the 16-bit Port ID associated with this SAP and MSTI."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mst-instance } // container stp container l2pt { description "Enter the l2pt context"; container termination { presence "Enter the 'termination' context"; description "Enable the termination context"; container protocols { description "Enter the protocols context"; leaf stp { type boolean; default "true"; description "Enable/disable spanning tree protocols stp/mstp/pvst/rstp."; } leaf cdp { type boolean; default "false"; description "Enable Cisco discovery protocol"; } leaf vtp { type boolean; default "false"; description "Enable/disable virtual trunk protocol."; } leaf dtp { type boolean; default "false"; description "Enable dynamic trunking protocol"; } leaf pagp { type boolean; default "false"; description "Enable/disable port aggregation protocol."; } leaf udld { type boolean; default "false"; description "Enable/disable unidirectional link detection."; } } // container protocols } // container termination container force-boundary { when "../../../m-vpls = 'true'"; presence "Enter the 'force-boundary' context"; description "Enable the force-boundary context"; container protocols { description "Enter the protocols context"; leaf stp { type boolean; default "true"; description "Enable/disable spanning tree protocols stp/mstp/pvst/rstp."; } leaf cdp { type boolean; default "false"; description "Enable Cisco discovery protocol"; } leaf vtp { type boolean; default "false"; description "Enable/disable virtual trunk protocol."; } leaf dtp { type boolean; default "false"; description "Enable dynamic trunking protocol"; } leaf pagp { type boolean; default "false"; description "Enable/disable port aggregation protocol."; } leaf udld { type boolean; default "false"; description "Enable/disable unidirectional link detection."; } } // container protocols } // container force-boundary } // container l2pt container fdb { description "Enter the fdb context"; leaf discard-unknown-source { type boolean; default "false"; description "Discard frames with unknown source"; } leaf limit-mac-move { type types-services:limit-mac-move; default "blockable"; description "MAC move"; } leaf mac-pinning { type boolean; default "false"; description "Enable MAC address pinning on this SAP"; } leaf maximum-mac-addresses { type types-services:max-mac-addr; description "Maximum number of MAC entries in the FDB"; } leaf auto-learn-mac-protect { type boolean; default "false"; description "Enable automatic update of MAC protect list"; } leaf auto-learn-mac-protect-exclude-list { type leafref { path "../../../../mac-list/name"; } description "Referenced MAC protect exclusion list"; } leaf protected-src-mac-violation-action { type types-services:sap-protected-src-mac-violation-action; description "Action to take whenever a relearn request for a protected MAC is received"; } leaf discard-unprotected-dest-mac { type boolean; default "false"; description "Enable/disable unprotected dest MAC restriction"; } container mac-learning { description "Enter the mac-learning context"; leaf learning { type boolean; default "true"; description "Enable learning of new MAC addresses"; } leaf aging { type boolean; default "true"; description "Enable aging of MAC addresses"; } } // container mac-learning } // container fdb container mrp { when "../../pbb-type = 'b-vpls' or ../../m-vpls = 'true'"; description "Enter the mrp context"; leaf join-time { type uint32 { range "1..10"; } default "2"; description "Set the maximum rate for attribute join messages to be sent on the SDP."; } leaf leave-time { type uint32 { range "30..60"; } default "30"; description "Set the time an attribute is held in leave state before registration is removed."; } leaf leave-all-time { type uint32 { range "60..300"; } default "100"; description "Set the frequency where all attribute declarations on the SDP are refreshed."; } leaf periodic-time { type uint32 { range "10..100"; } default "10"; description "Set the freqeuency of retransmission of attribute declarations."; } leaf periodic-timer { type boolean; default "false"; description "Enable/Disable retransmission of attribute declarations."; } leaf policy { type leafref { path "../../../../mrp/policy/policy-name"; } description "Specify they MMRP policy"; } } // container mrp container l2tpv3-session { presence "Enter the 'l2tpv3-session' context"; description "Enable the l2tpv3-session context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the session for the service"; } leaf vc-id { type types-services:vc-id; sros-ext:auto-restart-to-modify; description "VC identifier."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container pseudo-wire { sros-ext:auto-restart-to-modify; description "Enter the pseudo-wire context"; choice type { case ethernet { leaf ethernet { type empty; sros-ext:auto-restart-to-modify; description "Ethernet type."; } } case ethernet-vlan-id { leaf ethernet-vlan-id { type int32 { range "0..4095"; } sros-ext:auto-restart-to-modify; description "Ethernet VLAN identifier."; } } } } // container pseudo-wire container router { sros-ext:auto-restart-to-modify; description "Enter the router context"; leaf group { type types-sros:named-item; sros-ext:auto-restart-to-modify; description "Tunnel group name."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; sros-ext:auto-restart-to-modify; description "Router instance hosting the l2tpv3 session."; } } // container router } // container l2tpv3-session container i-vpls-mac-flush { when "../../pbb-type = 'i-vpls'"; description "Enter the i-vpls-mac-flush context"; container bgp-evpn { description "Enter the bgp-evpn context"; leaf send-to-bvpls { type boolean; default "true"; description "Send B-VPLS EVPN flush"; } } // container bgp-evpn } // container i-vpls-mac-flush container arp-host { description "Enter the arp-host context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ARP hosts"; } leaf host-limit { type uint32 { range "1..131071"; } default "1"; description "Maximum number of ARP triggered hosts."; } leaf min-auth-interval { type types-sros:time-duration { range "1..6000"; } units "minutes"; default "15"; description "Minimal time that has to pass before incoming ARPs of an active ARP host are re-authenticated."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container arp-host container dhcp { when "not(../../pbb-type)"; description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf snoop { type boolean; default "false"; description "DHCP snooping."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP proxy"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..66"; } description "Use user-defined hexadecimal string in the option"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..66"; } description "Use user-defined hexadecimal string in the option."; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "0..131071"; } default "0"; description "Maximum number of DHCPv4 leases"; } } // container lease-populate } // container dhcp container static-host { description "Enter the static-host context"; list ipv4 { key "ip mac"; description "Enter the ipv4 list instance"; leaf ip { type types-sros:ipv4-address; description "IP address"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type leafref { path "../../../../../../subscriber-mgmt/sub-profile/name"; } description "Sub-profile name"; } leaf sla-profile { type leafref { path "../../../../../../subscriber-mgmt/sla-profile/name"; } description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id container shcv { description "Enter the shcv context"; } // container shcv } // list ipv4 } // container static-host container sub-sla-mgmt { when "not(../../pbb-type = 'b-vpls') and not(../../pbb-type = 'i-vpls')"; description "Enter the sub-sla-mgmt context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of subscriber management on this SAP"; } leaf sub-ident-policy { type leafref { path "../../../../../subscriber-mgmt/sub-ident-policy/name"; } description "Subscriber identification policy used on this SAP"; } leaf subscriber-limit { type types-submgt:sap-subscriber-limit; default "1"; description "Maximum number of subscribers on this SAP"; } leaf mac-da-hashing { type boolean; default "false"; description "Use destination MAC address instead of subscriber ID to select egress LAG link"; } container defaults { description "Enter the defaults context"; leaf sub-profile { type leafref { path "../../../../../../subscriber-mgmt/sub-profile/name"; } description "Default subscriber profile used for subscribers on this SAP"; } leaf sla-profile { type leafref { path "../../../../../../subscriber-mgmt/sla-profile/name"; } description "Default SLA profile for hosts on this SAP"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case auto-id { leaf auto-id { type empty; description "Use auto-generated subscriber identification string"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID as default subscriber identification string"; } } case string { leaf string { type types-submgt:subscriber-id; description "Default subscriber identification string for the SAP"; } } } } // container subscriber-id container int-dest-id { description "Enter the int-dest-id context"; choice int-dest-id { case top-q-tag { leaf top-q-tag { type empty; description "Use the top Q-tag of this SAP"; } } case string { leaf string { type types-submgt:int-dest-id; description "Use the configured string"; } } } } // container int-dest-id } // container defaults container single-sub-parameters { description "Enter the single-sub-parameters context"; leaf profiled-traffic-only { type boolean; default "false"; description "Include all traffic in subscriber profile"; } container non-sub-traffic { presence "Enter the 'non-sub-traffic' context"; description "Enable the non-sub-traffic context"; leaf sub-profile { type leafref { path "../../../../../../../subscriber-mgmt/sub-profile/name"; } mandatory true; description "Subscriber ID profile applied for all non-subscriber traffic"; } leaf sla-profile { type leafref { path "../../../../../../../subscriber-mgmt/sla-profile/name"; } mandatory true; description "SLA profile applicable for all non-subscriber traffic"; } leaf subscriber-id { type types-submgt:subscriber-id; sros-ext:immutable; description "Subscriber ID applied for all non-subscriber traffic"; } } // container non-sub-traffic } // container single-sub-parameters } // container sub-sla-mgmt container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list squelch-ingress-ctag-levels { type uint32 { range "0..7"; } max-elements 8; description "Squelch levels using additional VLAN C-Tag space"; } leaf vmep-filter { type boolean; default "false"; description "Suppress eth-cfm PDUs based on level lower than or equal to configured Virtual MEP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf primary-vlan { type boolean; sros-ext:immutable; default "false"; description "MEP provisioned using MA primary VLAN ID"; } leaf direction { type types-eth-cfm:mp-direction; sros-ext:immutable; description "Direction the MEP faces"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf mac-address { type types-sros:mac-unicast-address-no-zero; description "MAC address for the MEP"; } leaf install-mep { type boolean; default "false"; description "Install MEP in the forwarding plane"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf lbm-svc-act-responder { type boolean; default "false"; description "Process service activation streams in ETH-CFM LBM"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container ais { presence "Enter the 'ais' context"; description "Enable the ais context"; leaf-list client-meg-level { type uint32 { range "1..7"; } max-elements 7; description "Client MEG level for AIS message generation"; } leaf interface-support { type boolean; default "false"; description "Allow generation of AIS PDUs based on the associated endpoint state"; } leaf interval { type uint32 { range "1|60"; } units "seconds"; default "1"; description "Transmission interval for AIS messages"; } leaf low-priority-defect { type enumeration { enum "all-def" { value 1; } enum "mac-rem-err-xcon" { value 2; } } default "all-def"; description "Lowest priority defect for MEP AIS generation"; } leaf priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of AIS messages originated by the node"; } } // container ais container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container mc-ring { presence "Enter the 'mc-ring' context"; description "Enable the mc-ring context"; leaf ring-node { type types-sros:named-item; mandatory true; description "Name for the ring node associated with this SAP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mc-ring container static-isid { description "Enter the static-isid context"; list range { when "../../../pbb-type = 'b-vpls'"; key "range-id"; description "Enter the range list instance"; leaf range-id { type uint32 { range "1..8191"; } description "The range identifier for static ISID."; } leaf start { type types-services:isid-no-zero; description "The low value of the range for this entry."; } leaf end { type types-services:isid-no-zero; description "The high value of the range for this entry."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list range } // container static-isid container managed-vlan-list { when "../../m-vpls = 'true'"; description "Enter the managed-vlan-list context"; list range { key "vlan-range"; description "Add a list entry for range"; leaf vlan-range { type string { pattern "((([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4]))(\\.\\.(([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-4])))?)|(default-sap)"; } description "Range of vlans that are associated with the Mvpls SAP."; } } // list range } // container managed-vlan-list container pbb { when "../../pbb-type = 'b-vpls'"; description "Enter the pbb context"; container fault-propagation { description "Enter the fault-propagation context"; list backbone-mac-name { key "name"; description "Add a list entry for backbone-mac-name"; leaf name { type leafref { path "../../../../../../pbb/mac/name"; } description "Backbone MAC address name."; } } // list backbone-mac-name list backbone-mac-address { key "address"; description "Add a list entry for backbone-mac-address"; leaf address { type types-sros:mac-unicast-address-no-zero; description "Backbone MAC address."; } } // list backbone-mac-address } // container fault-propagation } // container pbb } // list sap list capture-sap { when "not(../pbb-type) and ../etree = 'false' and not(../m-vpls = 'true')"; key "sap-id"; description "Enter the capture-sap list instance"; leaf sap-id { type types-sros:sap; description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf dist-cpu-protection { type leafref { path "../../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Distributed CPU protection policy for SAP"; } leaf host-lockout-policy { type leafref { path "../../../../subscriber-mgmt/host-lockout-policy/name"; } description "Host lockout policy"; } leaf radius-auth-policy { type leafref { path "../../../../subscriber-mgmt/radius-authentication-policy/name"; } description "RADIUS authentication policy"; } leaf nasreq-auth-policy { type leafref { path "../../../../subscriber-mgmt/diameter-nasreq-policy/name"; } description "Diameter NASREQ application policy to use for authentication"; } leaf allow-dot1q-msaps { type boolean; default "false"; description "Create IEEE 802.1q Managed SAP's on an IEEE 802.1ad port"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance that this capture SAP tracks"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; container filter { description "Enter the filter context"; leaf mac { type leafref { path "../../../../../../filter/mac-filter/filter-name"; } description "MAC filter policy name"; } } // container filter } // container ingress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } } } // container cpu-protection container pfcp { description "Enter the pfcp context"; leaf association { type leafref { path "../../../../../subscriber-mgmt/pfcp/association/name"; } description "Association used for PFCP messages on the capture SAP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container pfcp container trigger-packet { description "Enter the trigger-packet context"; leaf arp { type boolean; default "false"; description "ARP packet"; } leaf data { type boolean; default "false"; description "Data packet"; } leaf dhcp { type boolean; default "false"; description "DHCP packet"; } leaf dhcp6 { type boolean; default "false"; description "DHCP6 packet"; } leaf pppoe { type boolean; default "false"; description "PPPoE packet"; } leaf rtr-solicit { type boolean; default "false"; description "Router-solicit packet"; } } // container trigger-packet container msap-defaults { description "Enter the msap-defaults context"; leaf policy { type leafref { path "../../../../../subscriber-mgmt/msap-policy/name"; } description "MSAP policy"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf group-interface { type types-sros:interface-name; description "Group interface"; } } // container msap-defaults container ipoe-session { description "Enter the ipoe-session context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IPoE session management"; } leaf description { type types-sros:description; description "Text description"; } leaf ipoe-session-policy { type leafref { path "../../../../../subscriber-mgmt/ipoe-session-policy/name"; } sros-ext:auto-restart-to-modify; description "IPoE Session policy to be used for new sessions"; } leaf user-db { type leafref { path "../../../../../subscriber-mgmt/local-user-db/name"; } sros-ext:auto-restart-to-modify; description "Local user database that is used to (pre-)authenticate new sessions"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ipoe-session container dhcp { description "Enter the dhcp context"; leaf python-policy { type leafref { path "../../../../../python/python-policy/name"; } description "Python policy"; } leaf user-db { type leafref { path "../../../../../subscriber-mgmt/local-user-db/name"; } description "Local user database"; } } // container dhcp container dhcp6 { description "Enter the dhcp6 context"; leaf python-policy { type leafref { path "../../../../../python/python-policy/name"; } description "Python policy"; } leaf user-db { type leafref { path "../../../../../subscriber-mgmt/local-user-db/name"; } description "Local user database"; } } // container dhcp6 container pppoe { description "Enter the pppoe context"; leaf policy { type leafref { path "../../../../../subscriber-mgmt/ppp-policy/name"; } description "PPP policy"; } leaf python-policy { type leafref { path "../../../../../python/python-policy/name"; } description "Python policy"; } leaf user-db { type leafref { path "../../../../../subscriber-mgmt/local-user-db/name"; } description "Local user database"; } } // container pppoe container router-solicit { description "Enter the router-solicit context"; leaf user-db { type leafref { path "../../../../../subscriber-mgmt/local-user-db/name"; } description "Local user database"; } } // container router-solicit } // list capture-sap list interface { when "not(../pbb-type = 'b-vpls') and not(../pbb-type = 'i-vpls') and not(../routed-vpls)"; key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Router interface name"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the interface"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 } // container hold-time container ipv4 { description "Enter the ipv4 context"; container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-address; mandatory true; description "IP address of the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container primary container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf timeout { type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "ARP timeout value to determine how long an ARP entry remains in the ARP cache"; } list static-neighbor { key "ipv4-address"; description "Enter the static-neighbor list instance"; leaf ipv4-address { type types-sros:ipv4-address; description "IPv4 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; mandatory true; description "Media-dependent physical address"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list static-neighbor } // container neighbor-discovery } // container ipv4 } // list interface container igmp-host-tracking { when "not(../pbb-type) and not(../routed-vpls) and not(../m-vpls = 'true')"; description "Enter the igmp-host-tracking context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IGMP host tracking"; } leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "260"; description "Time during which the system continues to track inactive hosts"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container igmp-host-tracking container wlan-gw { description "Enter the wlan-gw context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WLAN-GW"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container wlan-gw container gsmp { when "not(../pbb-type) and ../etree = 'false'"; description "Enter the gsmp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of GSMP"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group { key "name"; max-elements 1024; description "Enter the group list instance"; leaf name { type types-sros:named-item; description "GSMP neighbor group name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the GSMP group"; } leaf description { type types-sros:description; description "Text description"; } leaf keepalive { type types-sros:time-duration { range "1..25"; } units "seconds"; default "10"; description "Keepalive value for the GSMP connections in this group"; } leaf hold-multiplier { type uint32 { range "1..100"; } default "3"; description "Hold-multiplier for the GSMP connections in this group"; } leaf persistency { type boolean; default "false"; description "Store DSL line information when the GSMP connection terminates"; } leaf idle-filter { type boolean; default "false"; description "Filter ANCP messages from IDLE DSL lines"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ancp { description "Enter the ancp context"; leaf dynamic-topology-discovery { type boolean; default "true"; description "Enable the ANCP dynamic topology discovery capability"; } leaf oam { type boolean; default "false"; description "Enable GSMP ANCP OAM capability at startup of GSMP connection"; } } // container ancp list neighbor { key "remote-address"; description "Enter the neighbor list instance"; leaf remote-address { type types-sros:ipv4-unicast-address; description "GSMP neighbor remote IP address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the GSMP neighbor"; } leaf description { type types-sros:description; description "Text description"; } leaf local-address { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "Restrict connections to this local address only within the service running ANCP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container priority-marking { sros-ext:auto-restart-to-modify; description "Enter the priority-marking context"; choice priority-marking { case dscp { leaf dscp { type types-qos:dscp-name; sros-ext:auto-restart-to-modify; description "DSCP that is used while remarking the in profile packets"; } } case prec { leaf prec { type types-qos:precedence-value; sros-ext:auto-restart-to-modify; description "Precedence priority marking"; } } } } // container priority-marking } // list neighbor } // list group } // container gsmp container provider-tunnel { presence "Enter the 'provider-tunnel' context"; description "Enable the provider-tunnel context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container inclusive { sros-ext:auto-restart-to-modify; description "Enter the inclusive context"; leaf data-delay-interval { type int32 { range "3..180"; } units "seconds"; sros-ext:auto-restart-to-modify; default "15"; description "Configure the delay interval that the system waits before BUM packets are forwarded over the provider-tunnel."; } leaf owner { type enumeration { enum "bgp-ad" { value 1; } enum "bgp-vpls" { value 2; } enum "bgp-evpn-mpls" { value 3; } } sros-ext:auto-restart-to-modify; description "Configure provider-tunnel owner"; } leaf root-and-leaf { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Configure whether the provider tunnel acts as a leaf or both a root and leaf"; } leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of P2MP LSP as the I-PMSI"; } choice ipmsi { case mldp { leaf mldp { type empty; sros-ext:auto-restart-to-modify; description "Enable/Disable MLDP"; } } case rsvp { container rsvp { presence "Enter the 'rsvp' context"; sros-ext:auto-restart-to-modify; description "Enable the rsvp context"; leaf lsp-template { type leafref { path "../../../../../../router/mpls/lsp-template/template-name"; } sros-ext:auto-restart-to-modify; description "Configure LSP template name"; } } // container rsvp } } } // container inclusive } // container provider-tunnel container isid-policy { description "Enter the isid-policy context"; list entry { when "../../pbb-type = 'b-vpls'"; key "range-entry-id"; description "Enter the entry list instance"; leaf range-entry-id { type uint32 { range "1..8191"; } description "Range identifier for the ISID policy."; } leaf advertise-local { type boolean; default "true"; description "Local advertisement of the range."; } leaf use-def-mcast { type boolean; default "false"; description "Use default multicast tree to propagate ISIS range."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container range { description "Enter the range context"; leaf start { type types-services:isid-no-zero; description "The low value of the range for this entry."; } leaf end { type types-services:isid-no-zero; description "The high value of the range for this entry."; } } // container range } // list entry } // container isid-policy } // list vpls list vprn { key "service-name"; description "Enter the vprn list instance"; leaf service-name { type types-services:service-name; description "Administrative service name"; } leaf service-id { type types-services:external-service-id; sros-ext:immutable; description "Unique service ID; cannot be used by any other service, regardless of service type"; } leaf description { type types-sros:description; description "Text description"; } leaf customer { type leafref { path "../../customer/customer-name"; } sros-ext:immutable; mandatory true; description "Service customer ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the mirror destination service"; } leaf hash-label { type boolean; default "false"; description "Include hash label"; } leaf autonomous-system { type uint32 { range "1..max"; } description "AS number advertised to peers for this router"; } leaf ecmp { type types-router:ip-ecmp; default "1"; description "Maximum equal-cost routes for routing table instance"; } leaf entropy-label { type boolean; default "false"; description "Use entropy label"; } leaf fib-priority { type enumeration { enum "standard" { value 1; } enum "high" { value 2; } } default "standard"; description "FIB priority for VPRN BGP routes"; } leaf multicast-info-policy { type leafref { path "../../../multicast-management/multicast-info-policy/policy-name"; } description "Multicast policy name for virtual router"; } leaf router-id { type types-router:router-id; description "Unique router ID for the router in the AS"; } leaf weighted-ecmp { type enumeration { enum "false" { value 0; } enum "true" { value 1; } enum "strict" { value 2; } } default "false"; description "Allow weighted load-balancing"; } leaf label-mode { type enumeration { enum "vrf" { value 1; } enum "next-hop" { value 2; } } sros-ext:auto-restart-to-modify; default "vrf"; description "Allocation mode for VPRN service labels"; } leaf allow-export-bgp-vpn { type boolean; default "false"; description "Include BGP-VPN routes for export"; } leaf ignore-nh-metric { type boolean; default "false"; description "Ignore next hop metric"; } leaf export-inactive-bgp { type boolean; default "false"; description "Export best BGP route as a VPN-IP route even if inactive due to a preferred route from another PE"; } leaf ecmp-unequal-cost { type boolean; default "false"; description "Enable/disable ecmp unequal cost capability. If enabled, BGP paths with unequal cost can be part of the same ECMP set."; } leaf class-forwarding { type boolean; default "false"; description "Enable/disable class forwarding. If class forwarding is enabled, packets are forwarded based on their forwarding class."; } leaf vprn-type { type enumeration { enum "regular" { value 1; } enum "hub" { value 2; } enum "spoke" { value 3; } enum "subscriber-split-horizon" { value 4; } } sros-ext:auto-restart-to-modify; default "regular"; description "VPRN type"; } leaf carrier-carrier-vpn { type boolean; default "false"; description "Allow VPRN service to support a Carrier Supporting Carrier model"; } leaf selective-fib { type boolean; default "true"; description "Enable/disable selective FIB. If disabled, all active routes of this routing instance are installed on all line cards."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf route-distinguisher { status obsolete; type types-services:vpn-route-distinguisher-or-auto-rd; description "Route distinguisher"; } container nat { presence "Enter the 'nat' context"; description "Enable the nat context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container inside { description "Enter the inside context"; container l2-aware { description "Enter the l2-aware context"; list subscribers { key "prefix"; description "Add a list entry for subscribers"; leaf prefix { type types-sros:ipv4-prefix-with-host-bits; description "Layer-2 Aware NAT subscriber prefix"; } } // list subscribers } // container l2-aware container large-scale { description "Enter the large-scale context"; leaf nat-policy { type leafref { path "../../../../../nat/nat-policy/name"; } sros-ext:isa-auto-clear-on-modify; description "NAT policy for LSN"; } container nat44 { description "Enter the nat44 context"; leaf max-subscriber-limit { type types-nat:lsn-max-subscriber-limit; sros-ext:isa-auto-clear-on-modify; description "Largest value for all subscriber limits in each deterministic pool"; } list destination-prefix { key "ip-prefix-length"; max-elements 6144; description "Enter the destination-prefix list instance"; leaf ip-prefix-length { type types-sros:ipv4-unicast-prefix; description "Traffic sent to destinations within this prefix will be NATed"; } leaf nat-policy { type leafref { path "../../../../../../../nat/nat-policy/name"; } sros-ext:isa-auto-clear-on-modify; description "NAT policy"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list destination-prefix container deterministic { description "Enter the deterministic context"; list policy-map { key "source-prefix"; description "Enter the policy-map list instance"; leaf source-prefix { type types-sros:ipv4-unicast-prefix; description "Source prefix that adds traffic to NAT pool"; } leaf nat-policy { type leafref { path "../../../../../../../../nat/nat-policy/name"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; mandatory true; description "NAT policy"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this prefix"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list map { key "from to"; description "Enter the map list instance"; leaf from { type types-sros:ipv4-address; description "Beginning of the range for IPv4 addresses that is mapped on the inside to outside IPv4 addresses"; } leaf to { type types-sros:ipv4-address; description "Ending of the range for IPv4 addresses that is mapped on the inside to outside IPv4 addresses"; } leaf first-outside-address { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "IPv6 address range that is mapped to outside IPv4 address"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list map } // list policy-map } // container deterministic } // container nat44 container dual-stack-lite { description "Enter the dual-stack-lite context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Dual Stack Lite"; } leaf max-subscriber-limit { type types-nat:lsn-max-subscriber-limit; sros-ext:isa-auto-clear-on-modify; description "Largest value for all subscriber limits in each deterministic pool"; } leaf subscriber-prefix-length { type types-nat:ipv6-subscriber-prefix-length; sros-ext:auto-restart-to-modify; sros-ext:isa-auto-clear-on-modify; description "IPv6 prefix length of the Dual Stack Lite subscribers"; } list endpoint { key "address"; max-elements 128; description "Enter the endpoint list instance"; leaf address { type types-sros:ipv6-address; description "Dual Stack Lite IPv6 address"; } leaf ip-fragmentation { type types-nat:ip-fragmentation; description "Fragmentation control of the AFTR originated downstream IPv6 traffic"; } leaf tunnel-mtu { type uint32 { range "512..9212"; } default "1500"; description "Maximum size of IPv4 packet inside of DS-Lite tunnel"; } leaf reassembly { type boolean; default "false"; description "Reassembly of IPv6 payload datagrams"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list endpoint container deterministic { description "Enter the deterministic context"; list policy-map { key "source-prefix"; description "Enter the policy-map list instance"; leaf source-prefix { type types-sros:ipv6-unicast-prefix; description "Source prefix that adds traffic to NAT pool"; } leaf nat-policy { type leafref { path "../../../../../../../../nat/nat-policy/name"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; mandatory true; description "NAT policy"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this prefix"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list map { key "from to"; description "Enter the map list instance"; leaf from { type types-sros:ipv6-prefix; description "Beginning of the range for IPv6 addresses that is mapped on the inside to outside IPv6addresses"; } leaf to { type types-sros:ipv6-prefix; description "Ending of the range for IPv6 addresses that is mapped on the inside to outside IPv6 addresses"; } leaf first-outside-address { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "IPv6 address range that is mapped to outside IPv4 address"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list map } // list policy-map } // container deterministic } // container dual-stack-lite container nat64 { presence "Enter the 'nat64' context"; description "Enable the nat64 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NAT64"; } leaf drop-zero-ipv4-checksum { type boolean; default "false"; description "Drop UDP datagrams with zero IPv4 checksum"; } leaf insert-ipv6-fragment-header { type boolean; default "false"; description "Include IPv6 fragment header to indicate that the sender allows fragmentation"; } leaf ip-fragmentation { type types-nat:ip-fragmentation; description "Control fragmentation of originated downstream IPv6 traffic"; } leaf ipv6-mtu { type uint32 { range "1280..9212"; } default "1520"; description "Size of the IPv6 downstream packet in NAT64"; } leaf prefix { type types-sros:ipv6-prefix; sros-ext:isa-auto-clear-on-modify; default "64:ff9b::/96"; description "IPv6 prefix to derive the IPv6 address from the IPv4 address"; } leaf subscriber-prefix-length { type types-nat:ipv6-subscriber-prefix-length; sros-ext:isa-auto-clear-on-modify; description "IPv6 prefix length for the NAT64 subscribers"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container tos { description "Enter the tos context"; container upstream { description "Enter the upstream context"; leaf set-tos { type union { type enumeration { enum "use-ipv6" { value -1; } } type uint32 { range "0..255"; } } default "use-ipv6"; description "TOS/DSCP bits in IPv4 frame in the upstream direction"; } } // container upstream container downstream { description "Enter the downstream context"; leaf use-ipv4 { type boolean; default "false"; description "Copy TOS/DSCP bits from the incoming IPv4 frame to the outgoing IPv6 frame"; } } // container downstream } // container tos } // container nat64 container subscriber-identification { description "Enter the subscriber-identification context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of subscriber identification"; } leaf description { type types-sros:description; description "Text description"; } leaf drop-unidentified-traffic { type boolean; default "false"; description "Drop traffic from unidentified flows"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container attribute { description "Enter the attribute context"; leaf vendor { type types-nat:nat-subscriber-identification-attr-vendor-id; default "nokia"; description "The RADIUS Vendor"; } leaf type { type types-nat:nat-subscriber-identification-attr-type; default "alc-sub-string"; description "The RADIUS Vendor-Id value corresponding with this vendor."; } } // container attribute container radius-proxy-server { presence "Enter the 'radius-proxy-server' context"; description "Enable the radius-proxy-server context"; leaf router-instance { type string; mandatory true; description "Router instance"; } leaf server { type types-sros:named-item; mandatory true; description "Server name"; } } // container radius-proxy-server } // container subscriber-identification container dnat-only { description "Enter the dnat-only context"; leaf source-prefix-list { type leafref { path "../../../../../../nat/prefix-list/name"; } description "NAT prefix list that contains source IP addresses"; } } // container dnat-only container redundancy { description "Enter the redundancy context"; leaf peer { type types-sros:ipv4-unicast-address; description "IP address of the NAT redundancy peer for this virtual router instance"; } leaf peer6 { type types-sros:ipv6-unicast-address; description "IPv6 address of the NAT redundancy peer for this virtual router instance"; } leaf steering-route { type types-sros:ipv4-unicast-prefix; description "IP address and prefix length of the steering route"; } } // container redundancy container filters { description "Enter the filters context"; container downstream { description "Enter the downstream context"; leaf ipv4 { type leafref { path "../../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container downstream } // container filters } // container large-scale } // container inside container outside { description "Enter the outside context"; leaf mtu { type uint32 { range "512..9000"; } description "MTU for downstream traffic"; } container filters { description "Enter the filters context"; container downstream { description "Enter the downstream context"; leaf ipv4 { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container downstream container upstream { description "Enter the upstream context"; leaf ipv4 { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container upstream } // container filters container dnat-only { description "Enter the dnat-only context"; leaf route-limit { type uint32 { range "1..131072"; } default "32768"; description "Number that is used to limit internal routes for downstream traffic"; } } // container dnat-only list pool { key "name"; max-elements 4096; description "Enter the pool list instance"; leaf name { type types-sros:named-item; description "NAT pool name"; } leaf type { type types-nat:pool-type; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; mandatory true; description "NAT pool type"; } leaf description { type types-sros:description; description "Text description"; } leaf mode { type types-nat:pool-mode; sros-ext:isa-auto-clear-on-modify; description "Mode of operation of this NAT address pool"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the outside NAT pool"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice isa { mandatory true; case nat { leaf nat-group { type leafref { path "../../../../../../isa/nat-group/id"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "Create a NAT group"; } } case wlan-gw { leaf wlan-gw-group { type leafref { path "../../../../../../isa/wlan-gw-group/id"; } sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; description "Create a WLAN GW group for NAT"; } } } container applications { description "Enter the applications context"; leaf agnostic { when "../../type = 'large-scale'"; type boolean; sros-ext:immutable; sros-ext:isa-auto-clear-on-modify; default "false"; description "NAT pool to create in the outside routing context"; } } // container applications container port-forwarding { description "Enter the port-forwarding context"; leaf dynamic-block-reservation { when "not(../../type = 'l2-aware')"; type boolean; sros-ext:isa-auto-clear-on-modify; default "false"; description "Dynamic block to reserve for each subscriber with a forwarding port"; } leaf range-end { type uint16 { range "0|1023..65535"; } sros-ext:isa-auto-clear-on-modify; description "End of the wildcard range for port forwards"; } } // container port-forwarding container port-reservation { description "Enter the port-reservation context"; choice port-reservation { default "port-blocks"; case port-blocks { leaf port-blocks { type uint16 { range "1..64512"; } sros-ext:isa-auto-clear-on-modify; description "Number of dynamic port blocks per outside IP address"; } } case ports { leaf ports { type uint16 { range "1..32256"; } sros-ext:isa-auto-clear-on-modify; description "Number of ports in each dynamic port block within the pool"; } } } } // container port-reservation container watermarks { presence "Enter the 'watermarks' context"; description "Enable the watermarks context"; leaf high { type types-sros:percent; mandatory true; description "Percentage for high watermark"; } leaf low { type types-sros:percent; mandatory true; description "Percentage for low watermark"; } } // container watermarks container large-scale { when "../type = 'large-scale'"; description "Enter the large-scale context"; leaf subscriber-limit { type uint32 { range "1..65535"; } sros-ext:isa-auto-clear-on-modify; description "Maximum number of subscribers per IP address"; } container redundancy { description "Enter the redundancy context"; choice redundancy { default "export-monitor-route"; case follow-pool { container follow { description "Enter the follow context"; leaf router-instance { type string; description "The virtual router instance of the pool."; } leaf name { type types-sros:named-item; description "NAT pool name"; } } // container follow } case export-monitor-route { leaf export-route { type types-sros:ipv4-unicast-prefix; description "Route to export to the peer"; } leaf monitor-route { type types-sros:ipv4-unicast-prefix; description "Monitor the peer route"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multi-chassis redundancy"; } } } } // container redundancy container deterministic { description "Enter the deterministic context"; leaf port-reservation { type types-nat:port-number; sros-ext:isa-auto-clear-on-modify; description "Number of ports per deterministic port-block"; } } // container deterministic } // container large-scale container l2-aware { when "../type = 'l2-aware'"; description "Enter the l2-aware context"; leaf external-assignment { type boolean; sros-ext:isa-auto-clear-on-modify; default "false"; description "External IP address for Layer-2-aware"; } } // container l2-aware list address-range { key "start end"; max-elements 4096; description "Enter the address-range list instance"; leaf start { type types-sros:ipv4-unicast-address; description "Start address of this range"; } leaf end { type types-sros:ipv4-unicast-address; description "End address of this range"; } leaf description { type types-sros:description; description "Text description"; } leaf drain { type boolean; default "false"; description "Start or stop draining this NAT address range"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address-range } // list pool } // container outside container map { description "Enter the map context"; list map-domain { key "domain-name"; description "Add a list entry for map-domain"; leaf domain-name { type leafref { path "../../../../../nat/map-t/domain/name"; } description "MAP domain name"; } } // list map-domain } // container map } // container nat container firewall { description "Enter the firewall context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list domain { key "name"; max-elements 1024; description "Enter the domain list instance"; leaf name { type types-sros:named-item; description "Firewall domain name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the firewall domain"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice isa { mandatory true; case nat { leaf nat-group { type leafref { path "../../../../../isa/nat-group/id"; } sros-ext:immutable; description "NAT group for this domain"; } } case wlan-gw { leaf wlan-gw-group { type leafref { path "../../../../../isa/wlan-gw-group/id"; } sros-ext:immutable; description "WLAN GW group used for NAT in this domain"; } } } container dhcpv6-server { description "Enter the dhcpv6-server context"; leaf router-instance { type string; sros-ext:auto-restart-to-modify; description "Router name"; } leaf name { type types-sros:named-item; sros-ext:auto-restart-to-modify; description "DHCPv6 server name"; } } // container dhcpv6-server list prefix { key "ip-prefix"; max-elements 4096; description "Enter the prefix list instance"; leaf ip-prefix { type types-sros:ipv6-unicast-prefix; description "IP prefix and prefix length for the domain firewall"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // list domain } // container firewall container gtp { description "Enter the gtp context"; container s11 { description "Enter the s11 context"; list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type leafref { path "../../../../../vprn[service-name=current()/../../../../service-name]/interface/interface-name"; } description "Interface where s11 is enabled."; } leaf apn-policy { type leafref { path "../../../../../../subscriber-mgmt/gtp/apn-policy/name"; } description "The APN policy for this interface."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list interface container peer-profile-map { description "Enter the peer-profile-map context"; list prefix { key "peer-prefix"; description "Enter the prefix list instance"; leaf peer-prefix { type types-sros:ip-unicast-prefix; description "Attribute ip-prefix/ip-prefix-length for address."; } leaf peer-profile { type leafref { path "../../../../../../../subscriber-mgmt/gtp/peer-profile/name"; } mandatory true; description "Peer profile used for peers in this prefix"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // container peer-profile-map } // container s11 container upf-data-endpoint { presence "Enter the 'upf-data-endpoint' context"; description "Enable the upf-data-endpoint context"; leaf interface { type leafref { path "../../../../vprn[service-name=current()/../../../service-name]/interface/interface-name"; } mandatory true; description "The interface on which the data endpoint gtp packets are enabled."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container upf-data-endpoint container uplink { presence "Enter the 'uplink' context"; description "Enable the uplink context"; leaf apn { type string { length "1..80"; pattern "([a-zA-Z0-9]+-+)*([a-zA-Z0-9]+\\.([a-zA-Z0-9]+-+)*)*[a-zA-Z0-9]+" { error-message "wrong format of apn name"; } } description "Network Identifier part of APN"; } leaf pdn-type { type enumeration { enum "ipv4" { value 0; } enum "ipv6" { value 1; } enum "ipv4v6" { value 2; } } default "ipv4"; description "Default 3GPP PDN in GTP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container peer-profile-map { description "Enter the peer-profile-map context"; list prefix { key "peer-prefix"; description "Enter the prefix list instance"; leaf peer-prefix { type types-sros:ip-unicast-prefix; description "Attribute ip-prefix/ip-prefix-length for address."; } leaf peer-profile { type leafref { path "../../../../../../../subscriber-mgmt/gtp/peer-profile/name"; } mandatory true; description "Peer profile name"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // container peer-profile-map } // container uplink } // container gtp container l2tp { presence "Enter the 'l2tp' context"; description "Enable the l2tp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of L2TP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:base-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:base-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:base-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:base-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:base-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:base-max-retries; description "Maximum retries for unestablished tunnels"; } leaf rtm-debounce-time { type types-l2tp:rtm-debounce-time; description "Debounce timer that declares L2TP action for route table management events"; } leaf radius-accounting-policy { type leafref { path "../../../../aaa/radius/l2tp-accounting-policy/name"; } description "RADIUS accounting policy"; } leaf peer-address-change-policy { type types-l2tp:peer-address-change-policy-option; description "Reaction when a L2TP response is received from a different address"; } leaf local-name { type types-l2tp:host-name; description "Local host name"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TP password"; } leaf challenge { type boolean; default "false"; description "Use challenge-response authentication"; } leaf avp-hiding { type types-l2tp:base-avp-hiding; description "Attribute of the Value Pair (AVP) hiding algorithm"; } leaf session-limit { type types-l2tp:base-session-limit; description "L2TP session limit of this router"; } leaf group-session-limit { type types-l2tp:base-session-limit; description "L2TP session limit for each group of this router"; } leaf tunnel-session-limit { type types-l2tp:base-tunnel-session-limit; description "L2TP session limit for each tunnel of this router"; } leaf session-assign-method { type types-l2tp:base-session-assign-method; description "Session assignment method"; } leaf next-attempt { type enumeration { enum "same-preference-level" { value 0; } enum "next-preference-level" { value 1; } } default "next-preference-level"; description "Tunnel that is selected when previous session setup failed"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container exclude-avps { description "Enter the exclude-avps context"; leaf calling-number { type boolean; default "false"; description "Calling Number AVP to exclude"; } leaf initial-rx-lcp-conf-req { type boolean; default "false"; description "Exclude the Initial Received LCP CONFREQ AVP"; } } // container exclude-avps container ignore-avps { description "Enter the ignore-avps context"; leaf sequencing-required { type boolean; default "false"; description "Ignore Sequencing Required AVP"; } } // container ignore-avps container replace-result-code { description "Enter the replace-result-code context"; leaf cdn-invalid-dst { type boolean; default "false"; description "Replace result code with general error code"; } leaf cdn-permanent-no-facilities { type boolean; default "false"; description "Replace result code with general error"; } leaf cdn-temporary-no-facilities { type boolean; default "false"; description "Replace result code with general error"; } } // container replace-result-code container lac { description "Enter the lac context"; leaf df-bit { type boolean; default "true"; description "Send all L2TP packets with DF bit set to 1"; } leaf calling-number-format { type types-sros:ascii-specification { length "1..255"; pattern "([^%]+|%[Scrsl%])+"; } default "%S %s"; description "Calling Number AVP for L2TP control messages"; } container cisco-nas-port { description "Enter the cisco-nas-port context"; leaf ethernet { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[smpoi])+"; } description "L2TP Cisco NAS port AVP with binary patterns for Ethernet"; } } // container cisco-nas-port } // container lac container tunnel-selection-blacklist { description "Enter the tunnel-selection-blacklist context"; leaf max-time { type int32 { range "1..60"; } units "minutes"; default "5"; description "Max time that a tunnel or peer can remain in denylist"; } leaf max-list-length { type union { type int32 { range "1..65535"; } type enumeration { enum "infinite" { value -1; } } } default "infinite"; description "Tunnels or peers in the denylist"; } leaf timeout-action { type enumeration { enum "remove-from-blacklist" { value 0; } enum "try-one-session" { value 1; } } default "remove-from-blacklist"; description "Action when a tunnel or peer exceeds time in denylist"; } container add-tunnel-on { description "Enter the add-tunnel-on context"; leaf address-change-timeout { type boolean; default "false"; description "Enable a timed-out tunnel to be forced to the denylist"; } leaf cdn-err-code { type boolean; default "false"; description "Add to deny if CDN is received with code: General error"; } leaf cdn-invalid-dst { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 6"; } leaf cdn-permanent-no-facilities { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 5"; } leaf cdn-temporary-no-facilities { type boolean; default "false"; description "Force tunnel to the denylist in case of Result Codes 4"; } leaf stop-ccn-err-code { type boolean; default "false"; description "Add to denylist if received with general error code"; } leaf stop-ccn-other { type boolean; default "false"; description "Add to denylist if StopCCN received with general error"; } leaf tx-cdn-not-established-in-time { type boolean; default "false"; description "Add to denylist if CDN transmitted with result code"; } } // container add-tunnel-on } // container tunnel-selection-blacklist container failover { description "Enter the failover context"; leaf recovery-method { type types-l2tp:base-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:base-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } leaf recovery-max-session-lifetime { type uint32 { range "2..4294967295"; } units "centiseconds"; default "2"; description "Subset of sessions that this system attempts to synchronize in the Session State Synchronization phase"; } list track-srrp { key "id"; description "Enter the track-srrp list instance"; leaf id { type leafref { path "../../../../../../redundancy/multi-chassis/peer/sync/track-srrp/id"; } description "SRRP instance ID for multi-chassis redundancy failover"; } leaf peer { type leafref { path "../../../../../../redundancy/multi-chassis/peer/ip-address"; } mandatory true; description "Multi-chassis peer address"; } leaf sync-tag { type types-sros:named-item; mandatory true; description "Synchronization tag on the multi-chassis peer"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list track-srrp } // container failover container l2tpv3 { description "Enter the l2tpv3 context"; leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TPv3 password"; } leaf cookie-length { type types-l2tp:base-v3-cookie-length; description "Cookie field length"; } leaf digest-type { type types-l2tp:base-v3-digest-type; description "Hashing algorithm that calculates the message digest"; } leaf nonce-length { type types-l2tp:base-v3-nonce-length; description "Length of the local L2TPv3 nonce (random number)"; } leaf public-tcp-mss-adjust { type types-l2tp:base-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:base-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } container transport-type { description "Enter the transport-type context"; leaf ip { type boolean; default "false"; description "Use IP as the transport type for the L2TPv3 tunnel"; } } // container transport-type } // container l2tpv3 container ethernet-tunnel { description "Enter the ethernet-tunnel context"; leaf reconnect-timeout { type types-l2tp:base-v3-reconnect-timeout; description "Timeout for a session setup retry"; } } // container ethernet-tunnel list group { key "tunnel-group-name"; description "Enter the group list instance"; leaf tunnel-group-name { type types-sros:named-item-64 { length "1..63"; } description "Tunnel group name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2TP tunnel group"; } leaf description { type types-sros:description; description "Text description"; } leaf protocol { type types-l2tp:protocol-version; sros-ext:immutable; description "Protocol version"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:child-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:child-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:child-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:child-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:child-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:child-max-retries; description "Maximum retries for unestablished tunnels"; } leaf radius-accounting-policy { type leafref { path "../../../../../aaa/radius/l2tp-accounting-policy/name"; } description "RADIUS accounting policy"; } leaf local-name { type types-l2tp:host-name; description "The local host name."; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "The password."; } leaf challenge { type types-sros:bool-with-inherit; description "Enable/disable the use of challenge-response authentication."; } leaf avp-hiding { type types-l2tp:child-avp-hiding; description "The AVP hiding algorithm"; } leaf session-limit { type types-l2tp:child-session-limit; description "Session limit"; } leaf session-assign-method { type types-l2tp:child-session-assign-method; description "Session assignment method"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container failover { when "../protocol = 'v2'"; description "Enter the failover context"; leaf recovery-method { type types-l2tp:child-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:child-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } } // container failover container lac { when "../protocol = 'v2'"; description "Enter the lac context"; leaf df-bit { type types-sros:bool-with-inherit; description "DF (do not fragment) bit in data traffic transmitted as LAC"; } } // container lac container l2tpv3 { when "not(../protocol = 'v2')"; description "Enter the l2tpv3 context"; leaf rem-router-id { type types-sros:ipv4-address; default "0.0.0.0"; description "Filter on remote router ID"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "L2TPv3 password"; } leaf track-password-change { type boolean; default "false"; description "Enable tracking of password changes"; } leaf cookie-length { type types-l2tp:child-v3-cookie-length; description "Cookie field length"; } leaf digest-type { type types-l2tp:child-v3-digest-type; description "Hashing algorithm that calculates the message digest"; } leaf nonce-length { type types-l2tp:child-v3-nonce-length; description "Length for the local L2TPv3 nonce (random number)"; } leaf public-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP Maximum Segment Size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } container pw-cap-list { description "Enter the pw-cap-list context"; leaf ethernet { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Advertise Ethernet pseudowire type"; } leaf ethernet-vlan { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Advertise Ethernet VLAN pseudowire type"; } } // container pw-cap-list } // container l2tpv3 container ethernet-tunnel { when "not(../protocol = 'v2')"; description "Enter the ethernet-tunnel context"; leaf reconnect-timeout { type types-l2tp:child-v3-reconnect-timeout; description "Timeout for a session setup retry at group level"; } } // container ethernet-tunnel container lns { when "../protocol = 'v2'"; description "Enter the lns context"; leaf load-balance-method { type types-l2tp:base-load-balance-method; default "per-session"; description "New sessions for L2TP ISA MDA"; } leaf lns-group { type leafref { path "../../../../../../isa/lns-group/id"; } description "ISA LNS group"; } container ppp { description "Enter the ppp context"; leaf authentication-policy { type types-sros:named-item; description "Authentication policy when a DHCP message is received"; } leaf user-db { type types-sros:named-item; description "Local user database for PPP PAP and CHAP authentication"; } leaf proxy-lcp { type boolean; default "false"; description "Proxy LCP AVPs that are received from LAC"; } leaf lcp-ignore-magic-numbers { type boolean; default "false"; description "Check Magic-Number field in LCP Echo-Request and LCP Echo-Reply messages"; } leaf lcp-force-ack-accm { type boolean; default "false"; description "Force acknowledgement of the LCP Asynchronous Control Character Map (ACCM) option"; } leaf reject-disabled-ncp { type boolean; default "false"; description "Enable/disable rejection of disabled Network Control Protocols (NCP)"; } leaf mtu { type types-l2tp:base-ppp-mtu; default "1500"; description "Maximum PPP MTU size"; } leaf proxy-authentication { type boolean; default "false"; description "Use authentication AVPs that are received from LAC"; } leaf authentication { type types-l2tp:base-ppp-auth-protocol; default "pref-chap"; description "PPP authentication protocol to negotiate"; } leaf ipcp-subnet-negotiation { type boolean; default "false"; description "Allow IPCP subnet negotiation for PPPoE hosts"; } container default-group-interface { description "Enter the default-group-interface context"; leaf interface { type types-sros:named-item; description "Group interface"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } } // container default-group-interface container keepalive { description "Enter the keepalive context"; leaf interval { type types-l2tp:base-lcp-keepalive-interval; default "30"; description "PPP keepalive interval"; } leaf multiplier { type types-l2tp:base-lcp-keepalive-multiplier; default "3"; description "PPP keepalive multiplier"; } } // container keepalive container chap-challenge-length { description "Enter the chap-challenge-length context"; leaf start { type types-l2tp:base-chap-challenge-length; default "32"; description "Minimum PPP CHAP challenge length"; } leaf end { type types-l2tp:base-chap-challenge-length; default "64"; description "Maximum PPP CHAP challenge length"; } } // container chap-challenge-length } // container ppp container mlppp { description "Enter the mlppp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MLPPP in this L2TP tunnel group"; } leaf max-links { type types-l2tp:base-mlppp-max-links; default "1"; description "Maximum MLPPP links"; } leaf interleave { type boolean; default "false"; description "Enable link fragmentation and interleaving"; } leaf max-fragment-delay { type types-l2tp:base-mlppp-max-frag-delay; default "no-fragmentation"; description "Maximum fragment delay caused by transmission on a link"; } leaf reassembly-timeout { type types-l2tp:base-mlppp-reassembly-timeout; default "1000"; description "Reassembly timeout"; } leaf short-sequence-numbers { type boolean; default "false"; description "Request a peer to send short sequence numbers"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container endpoint { description "Enter the endpoint context"; choice endpoint { case ip { leaf ip { type types-ppp:mlppp-ip-endpoint; description "Endpoint ID as an IP address"; } } case mac { leaf mac { type types-ppp:mlppp-mac-endpoint; description "Endpoint ID as a MAC address"; } } } } // container endpoint } // container mlppp } // container lns list tunnel { key "tunnel-name"; max-elements 31; description "Enter the tunnel list instance"; leaf tunnel-name { type types-sros:named-item { length "1..32"; } description "Tunnel name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2TP tunnel"; } leaf description { type types-sros:description; description "Text description"; } leaf preference { type uint32 { range "0..16777215"; } default "50"; description "Tunnel preference number with its group"; } leaf auto-establish { type boolean; default "false"; description "Allow the tunnel to be automatically set up by the system"; } leaf peer { type types-sros:ipv4-unicast-address; description "Peer address"; } leaf local-address { type types-sros:ipv4-unicast-address; description "Local address"; } leaf receive-window-size { type types-l2tp:child-receive-window-size; description "L2TP receive window size"; } leaf hello-interval { type types-l2tp:child-hello-interval; description "Hello interval"; } leaf idle-timeout { type types-l2tp:child-idle-timeout; description "Idle timeout"; } leaf destruct-timeout { type types-l2tp:child-destruct-timeout; description "Destruction timeout"; } leaf max-retries-estab { type types-l2tp:child-max-retries; description "Maximum retries for established tunnels"; } leaf max-retries-not-estab { type types-l2tp:child-max-retries; description "Maximum retries for unestablished tunnels"; } leaf radius-accounting-policy { type leafref { path "../../../../../../aaa/radius/l2tp-accounting-policy/name"; } description "RADIUS accounting policy"; } leaf remote-name { type types-l2tp:host-name; description "Remote host name for tunnel"; } leaf local-name { type types-l2tp:host-name; description "The local host name."; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "The password."; } leaf challenge { type types-sros:bool-with-inherit; description "Enable/disable the use of challenge-response authentication."; } leaf avp-hiding { type types-l2tp:child-avp-hiding; description "The AVP hiding algorithm"; } leaf session-limit { type types-l2tp:child-tunnel-session-limit; description "L2TP session limit for each tunnel of this router"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container failover { when "../../protocol = 'v2'"; description "Enter the failover context"; leaf recovery-method { type types-l2tp:child-failover-recovery-method; description "Recovery method of the sequence numbers after failover"; } leaf recovery-time { type types-l2tp:child-failover-recovery-time; description "Time requested from the L2TP peer before assuming failover as failed"; } } // container failover container lac { when "../../protocol = 'v2'"; description "Enter the lac context"; leaf df-bit { type types-sros:bool-with-inherit; description "DF (do not fragment) bit in data traffic transmitted as LAC"; } } // container lac container l2tpv3 { when "not(../../protocol = 'v2')"; description "Enter the l2tpv3 context"; leaf public-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on public network"; } leaf private-tcp-mss-adjust { type types-l2tp:child-v3-tcp-mss-adjust; description "TCP maximum segment size (MSS) on private network"; } } // container l2tpv3 container lns { when "../../protocol = 'v2'"; description "Enter the lns context"; leaf load-balance-method { type types-l2tp:child-load-balance-method; description "New sessions for L2TP ISA MDA"; } leaf lns-group { type leafref { path "../../../../../../../isa/lns-group/id"; } description "ISA LNS group"; } container ppp { description "Enter the ppp context"; leaf authentication-policy { type types-sros:named-item; description "Authentication policy when a DHCP message is received"; } leaf user-db { type types-sros:named-item; description "Local user database for PPP PAP and CHAP authentication"; } leaf proxy-lcp { type types-sros:bool-with-inherit; description "Use the Proxy LCP AVPs that are received from the LAC"; } leaf lcp-ignore-magic-numbers { type types-sros:bool-with-inherit; description "Magic-Number field in LCP Echo-Request and LCP Echo-Reply messages that are checked"; } leaf lcp-force-ack-accm { type types-sros:bool-with-inherit; description "Forced acknowledgement of the LCP Asynchronous Control Character Map (ACCM) option"; } leaf reject-disabled-ncp { type types-sros:bool-with-inherit; description "Enable/disable rejection of disabled Network Control Protocols (NCP)"; } leaf mtu { type types-l2tp:child-ppp-mtu; description "Maximum PPP MTU size"; } leaf proxy-authentication { type types-sros:bool-with-inherit; description "Authentication AVPs that are received from LAC"; } leaf authentication { type types-l2tp:child-ppp-auth-protocol; description "PPP authentication protocol to negotiate"; } leaf ipcp-subnet-negotiation { type types-sros:bool-with-inherit; description "Use of IPCP subnet negotiation for PPPoE hosts"; } container default-group-interface { description "Enter the default-group-interface context"; leaf interface { type types-sros:named-item; description "Group interface"; } leaf service-name { type types-services:service-name; description "Administrative service name"; } } // container default-group-interface container keepalive { description "Enter the keepalive context"; leaf interval { type types-l2tp:child-lcp-keepalive-interval; description "PPP keepalive interval"; } leaf multiplier { type types-l2tp:child-lcp-keepalive-multiplier; description "PPP keepalive multiplier"; } } // container keepalive container chap-challenge-length { description "Enter the chap-challenge-length context"; leaf start { type types-l2tp:child-chap-challenge-length; description "Minimum PPP CHAP challenge length"; } leaf end { type types-l2tp:child-chap-challenge-length; description "Minimum PPP CHAP challenge length"; } } // container chap-challenge-length } // container ppp container mlppp { description "Enter the mlppp context"; leaf admin-state { type types-sros:admin-state-with-inherit; description "Administrative state of MLPPP in the L2TP tunnel"; } leaf max-links { type types-l2tp:child-mlppp-max-links; description "Maximum MLPPP links"; } leaf interleave { type types-sros:bool-with-inherit; description "Use of Link fragmentation and interleaving"; } leaf max-fragment-delay { type types-l2tp:child-mlppp-max-frag-delay; description "Maximum fragment delay caused by transmission on a link"; } leaf reassembly-timeout { type types-l2tp:child-mlppp-reassembly-timeout; description "Reassembly timeout"; } leaf short-sequence-numbers { type types-sros:bool-with-inherit; description "Request a peer to send short sequence numbers"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container endpoint { description "Enter the endpoint context"; choice endpoint { case ip { leaf ip { type types-ppp:mlppp-ip-endpoint; description "Endpoint ID as an IP address"; } } case mac { leaf mac { type types-ppp:mlppp-mac-endpoint; description "Endpoint ID as a MAC address"; } } } } // container endpoint } // container mlppp } // container lns } // list tunnel } // list group } // container l2tp container igmp { presence "Enter the 'igmp' context"; description "Enable the igmp context"; leaf group-if-query-source-address { type types-sros:ipv4-unicast-address; description "Default query-source address for all group interfaces"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } units "seconds"; default "1"; description "Time between group-specific query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..10"; } default "2"; description "Number of retries after message loss"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv4-multicast-address; description "IP address that specifies the start of the group range"; } leaf end { type types-sros:ipv4-multicast-address; description "IP address that specifies the end of the group range"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } // list group-range } // container ssm-translate list interface { key "ip-interface-name"; description "Enter the interface list instance"; leaf ip-interface-name { type types-sros:interface-name; description "Interface name."; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf subnet-check { type boolean; default "true"; description "Allow subnet checking"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf redundant-mcast { type boolean; default "false"; description "Use interface as a redundant-pair member for multicast"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type types-mcast-cac:constraints-level; description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } mandatory true; description "Bandwidth available for this level"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type uint32 { range "1..64"; } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; mandatory true; description "Level ID to associate with number of down LAG ports"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list number-down } // container mc-constraints container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv4-multicast-address; description "IP address that specifies the start of the group range"; } leaf end { type types-sros:ipv4-multicast-address; description "IP address that specifies the end of the group range"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } // list group-range } // container ssm-translate container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv4-multicast-address; description "Group address of static IGMP multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group list group-range { key "start end step"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv4-multicast-address; description "IP address for the start of the static group range"; } leaf end { type types-sros:ipv4-multicast-address; description "IP address for the end of the static group range"; } leaf step { type types-sros:ipv4-address; description "Step interval in the group-range address"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group-range } // container static } // list interface list group-interface { key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type leafref { path "../../../subscriber-interface/group-interface/group-interface-name"; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf subnet-check { type boolean; default "true"; description "Allow subnet checking"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow IGMP traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv4-unicast-address; description "Source address for IGMP queries"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list group-interface list forwarding-group-interface { key "forwarding-service group-interface-name"; description "Enter the forwarding-group-interface list instance"; leaf forwarding-service { type types-services:service-name; description "Forwarding service for a subscriber interface in a retailer context"; } leaf group-interface-name { type leafref { path "../../../../vprn[service-name=current()/../forwarding-service]/subscriber-interface/group-interface/group-interface-name"; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of IGMP in this context"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf subnet-check { type boolean; default "true"; description "Allow subnet checking"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow IGMP traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv4-unicast-address; description "Source address for IGMP queries"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list forwarding-group-interface } // container igmp container ipsec { description "Enter the ipsec context"; leaf allow-reverse-route-override-type { type enumeration { enum "same-idi" { value 1; } enum "any-idi" { value 2; } } description "System behavior for new reverse route"; } leaf allow-reverse-route-override { status obsolete; type boolean; default "false"; description "Override the reverse route."; } list security-policy { key "id"; description "Enter the security-policy list instance"; leaf id { type uint32 { range "1..32768"; } description "IPsec security policy ID."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..16"; } description "IPsec security policy entry ID."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container local-ip { description "Enter the local-ip context"; choice any-or-ip { default "any"; case any { leaf any { type boolean; default "false"; description "Any IP address."; } } case ip { leaf address { type types-sros:ipv4-prefix; description "The IP address."; } } } } // container local-ip container local-ipv6 { description "Enter the local-ipv6 context"; choice any-or-ip { default "any"; case any { leaf any { type boolean; default "false"; description "Any IP address."; } } case ip { leaf address { type types-sros:ipv6-prefix; description "The IP address."; } } } } // container local-ipv6 container remote-ip { description "Enter the remote-ip context"; choice any-or-ip { default "any"; case any { leaf any { type boolean; default "false"; description "Any IP address."; } } case ip { leaf address { type types-sros:ipv4-prefix; description "The IP address."; } } } } // container remote-ip container remote-ipv6 { description "Enter the remote-ipv6 context"; choice any-or-ip { default "any"; case any { leaf any { type boolean; default "false"; description "Any IP address."; } } case ip { leaf address { type types-sros:ipv6-prefix; description "The IP address."; } } } } // container remote-ipv6 } // list entry } // list security-policy } // container ipsec container mld { presence "Enter the 'mld' context"; description "Enable the mld context"; leaf group-if-query-source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source address in queries for group interfaces when not configured at group interface level"; } leaf query-interval { type uint32 { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } units "seconds"; default "1"; description "Time between group-specific query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..10"; } default "2"; description "Robust count to tune for the expected packet loss on a subnet"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MLD operation"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv6-multicast-address; description "Start of group range"; } leaf end { type types-sros:ipv6-multicast-address; description "End of group range"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } // list group-range } // container ssm-translate list interface { key "ip-interface-name"; description "Enter the interface list instance"; leaf ip-interface-name { type types-sros:interface-name; description "Interface name."; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy to filter MLD packets"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type types-mcast-cac:constraints-level; description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } mandatory true; description "Bandwidth available for this level"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type uint32 { range "1..64"; } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; mandatory true; description "Level ID to associate with number of down LAG ports"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list number-down } // container mc-constraints container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac container ssm-translate { description "Enter the ssm-translate context"; list group-range { key "start end"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv6-multicast-address; description "Start of group range"; } leaf end { type types-sros:ipv6-multicast-address; description "End of group range"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list source { key "source-address"; min-elements 1; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } // list group-range } // container ssm-translate container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv6-multicast-address; description "Group address of multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group list group-range { key "start end step"; description "Enter the group-range list instance"; leaf start { type types-sros:ipv6-multicast-address; description "Start of group range of multicast channel"; } leaf end { type types-sros:ipv6-multicast-address; description "End of group range for multicast channel"; } leaf step { type types-sros:ipv6-address; description "Step interval for the group-range addresses"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group-range } // container static } // list interface list group-interface { key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type leafref { path "../../../subscriber-interface/group-interface/group-interface-name"; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy to filter MLD packets"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } leaf subnet-check { type boolean; default "true"; description "Enable subnet checking"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow MLD traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source address for MLD queries"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list group-interface list forwarding-group-interface { key "forwarding-service group-interface-name"; description "Enter the forwarding-group-interface list instance"; leaf forwarding-service { type types-services:service-name; description "Forwarding service for a subscriber interface in a retailer context"; } leaf group-interface-name { type leafref { path "../../../../vprn[service-name=current()/../forwarding-service]/subscriber-interface/group-interface/group-interface-name"; } description "Group interface name"; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy to filter MLD packets"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } leaf subnet-check { type boolean; default "true"; description "Enable subnet checking"; } leaf sub-hosts-only { type boolean; default "true"; description "Allow MLD traffic from known hosts only"; } leaf query-source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source address for MLD queries"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // container mcac } // list forwarding-group-interface } // container mld container pim { presence "Enter the 'pim' context"; description "Enable the pim context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PIM"; } leaf apply-to { type enumeration { enum "all" { value 3; } enum "none" { value 4; } } default "none"; description "IES and non-IES interfaces to create in PIM"; } leaf mc-ecmp-balance { type boolean; default "true"; description "Enable/disable multicast balancing of traffic over ECMP links."; } leaf mc-ecmp-balance-hold { type uint32 { range "2..600"; } units "minutes"; description "Hold time for multicast balancing over ECMP links"; } leaf non-dr-attract-traffic { type boolean; default "false"; description "Attract traffic when the router is not the designated one"; } leaf bgp-nh-override { type boolean; default "false"; description "Disable VRF import EC support for next-hop resolution"; } leaf mtu-over-head { type int32 { range "0|44|76|140|268|536"; } default "0"; description "MVPN tunnel MTU size reduction to allow for BIER header"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf ssm-assert-compatible-mode { type boolean; default "false"; description "Enable SSM assert compatible mode"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PIM operation for IPv4"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "Route table(s) for RPF lookup"; } leaf ssm-default-range { type boolean; default "true"; description "SSM default range"; } container grt-extranet { description "Enter the grt-extranet context"; choice prefix { case any { leaf any { type empty; description "GRT or VRF extranet for this instance"; } } case group-prefix { list group-prefix { key "ip-prefix"; description "Enter the group-prefix list instance"; leaf ip-prefix { type types-sros:ip-multicast-prefix; description "IP address and mask length"; } leaf starg { type boolean; default "false"; description "Add a static (*,G) entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list group-prefix } } } // container grt-extranet } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PIM operation for IPv6"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "Route table(s) for RPF lookup"; } leaf ssm-default-range { type boolean; default "true"; description "SSM default range"; } } // container ipv6 container mc-ecmp-hashing { presence "Enter the 'mc-ecmp-hashing' context"; description "Enable the mc-ecmp-hashing context"; leaf rebalance { type boolean; default "false"; description "Rebalance flows to newly added links immediately instead of waiting until they are pruned"; } } // container mc-ecmp-hashing container import { description "Enter the import context"; leaf-list join-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Name of the policy is limited to 32 characters."; } leaf-list register-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Name of the policy is limited to 32 characters."; } } // container import list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Service VPRN interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of this interface"; } leaf assert-period { type int32 { range "1..300"; } default "60"; description "Time for periodic refreshes of PIM Assert messages on an interface"; } leaf hello-interval { type int32 { range "0..255"; } default "30"; description "Frequency at which PIM Hello messages are sent over this interface"; } leaf hello-multiplier { type uint32 { range "20..100"; } default "35"; description "Multiplier of Hello in multiples of 0.1"; } leaf instant-prune-echo { type boolean; default "false"; description "Allow PIM to send an instant prune echo when router starts the prune pending timer for PIM interface"; } leaf max-groups { type uint32 { range "0|1..16000"; } default "0"; description "Max number of groups for which PIM can have local receiver information based on received PIM reports"; } leaf priority { type uint32 { range "1..max"; } default "1"; description "DR election priority for this interface"; } leaf three-way-hello { type boolean; default "false"; description "Allow three-way hello compatibility mode"; } leaf tracking-support { type boolean; default "false"; description "Allow upstream routers to explicitly track join membership"; } leaf bsm-check-rtr-alert { type boolean; default "false"; description "Check router alert option in bootstrap messages received"; } leaf improved-assert { type boolean; default "true"; description "Allow improved assert processing on interface"; } leaf multicast-senders { type enumeration { enum "auto" { value 0; } enum "always" { value 1; } enum "never" { value 2; } } default "auto"; description "Subnet matching for the incoming data packets"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container p2mp-ldp-tree-join { description "Enter the p2mp-ldp-tree-join context"; leaf ipv4 { type boolean; default "false"; description "Allow dynamic mLDP in-band signaling for IPv4 PIM joins"; } leaf ipv6 { type boolean; default "false"; description "Allow dynamic mLDP in-band signaling for IPv6 PIM joins"; } } // container p2mp-ldp-tree-join container bfd-liveness { description "Enter the bfd-liveness context"; leaf ipv4 { type boolean; default "false"; description "Use Bidirectional Forwarding Detection for IPv4 on PIM interface"; } leaf ipv6 { type boolean; default "false"; description "Use Bidirectional Forwarding Detection for IPv6 on PIM interface"; } } // container bfd-liveness container ipv4 { description "Enter the ipv4 context"; leaf multicast { type boolean; default "true"; description "Enable PIM interface operation"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf name { type leafref { path "../../../../../../oper-group/name"; } description "Operational group to monitor for address family"; } leaf operation { type enumeration { enum "add" { value 1; } enum "subtract" { value 2; } enum "set" { value 3; } } description "Perform given operation when oper-group is active."; } leaf priority-delta { type uint32 { range "1..4294967295"; } description "Delta priority with operation when operational group is active"; } } // container monitor-oper-group } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf multicast { type boolean; default "true"; description "Enable PIM interface operation"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf name { type leafref { path "../../../../../../oper-group/name"; } description "Operational group to monitor for address family"; } leaf operation { type enumeration { enum "add" { value 1; } enum "subtract" { value 2; } enum "set" { value 3; } } description "Perform given operation when oper-group is active."; } leaf priority-delta { type uint32 { range "1..4294967295"; } description "Delta priority with operation when operational group is active"; } } // container monitor-oper-group } // container ipv6 container sticky-dr { presence "Enter the 'sticky-dr' context"; description "Enable the sticky-dr context"; leaf priority { type uint32 { range "1..max"; } default "1024"; description "DR election priority for this interface"; } } // container sticky-dr container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../../mcac/interface-policy/policy-name"; } description "Name of multicast CAC interface policy"; } leaf policy { type leafref { path "../../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight in calculating MCAC constraints"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of constraint for multicast CAC policy"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type types-mcast-cac:constraints-level; description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth { range "0..2147483647"; } mandatory true; description "Bandwidth available for this level"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type uint32 { range "1..64"; } description "Number of ports that are down in this LAG link"; } leaf level { type types-mcast-cac:constraints-level; mandatory true; description "Level ID to associate with number of down LAG ports"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list number-down } // container mc-constraints } // container mcac } // list interface container rp { description "Enter the rp context"; container bootstrap { description "Enter the bootstrap context"; leaf-list import { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Name of the policy is limited to 32 characters."; } leaf-list export { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Name of the policy is limited to 32 characters."; } } // container bootstrap container ipv4 { description "Enter the ipv4 context"; leaf auto-rp-discovery { type boolean; default "false"; description "Enable auto RP discovery"; } leaf candidate { type boolean; default "false"; description "Enable the auto-RP to advertise candidate RP information"; } leaf mapping-agent { type boolean; default "false"; description "Enable the mapping agent on the node"; } list anycast { key "ipv4-address rp-set-peer"; description "Add a list entry for anycast"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "Anycast RP address"; } leaf rp-set-peer { type types-sros:ipv4-unicast-address; description "Configure a peer in the anycast rp-set."; } } // list anycast container bsr-candidate { description "Enter the bsr-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate BSR"; } leaf priority { type int32 { range "0..255"; } default "0"; description "Bootstrap priority of the router"; } leaf address { type types-sros:ipv4-unicast-address; description "Candidate BSR IP address for Bootstrap Router election"; } leaf hash-mask-len { type int32 { range "0..32"; } default "30"; description "Length for bootstrap hash mask"; } } // container bsr-candidate container rp-candidate { description "Enter the rp-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate RP"; } leaf holdtime { type int32 { range "5..255"; } units "seconds"; default "150"; description "Time during which the neighboring router considers this router to be up"; } leaf priority { type int32 { range "0..255"; } default "192"; description "Candidate RP priority"; } leaf address { type types-sros:ipv4-unicast-address; description "Local RP address"; } list group-range { key "ipv4-prefix"; description "Add a list entry for group-range"; leaf ipv4-prefix { type types-sros:ipv4-multicast-prefix; description "IPv4 address and prefix length"; } } // list group-range } // container rp-candidate container static { description "Enter the static context"; list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "Configure the address of the statically configured RP."; } leaf override { type boolean; default "false"; description "Change the precedence for static RP over dynamically learnt RP"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group-prefix { key "ipv4-prefix"; description "Add a list entry for group-prefix"; leaf ipv4-prefix { type types-sros:ipv4-multicast-prefix; description "IPv4 address and prefix length"; } } // list group-prefix } // list address } // container static } // container ipv4 container ipv6 { description "Enter the ipv6 context"; list anycast { key "ipv6-address rp-set-peer"; description "Add a list entry for anycast"; leaf ipv6-address { type types-sros:ipv6-unicast-address; description "Anycast RP address"; } leaf rp-set-peer { type types-sros:ipv6-unicast-address; description "Configure a peer in the anycast rp-set."; } } // list anycast container bsr-candidate { description "Enter the bsr-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate BSR"; } leaf priority { type int32 { range "0..255"; } default "0"; description "Bootstrap priority of the router"; } leaf address { type types-sros:ipv6-unicast-address; description "Candidate BSR IP address for Bootstrap Router election"; } leaf hash-mask-len { type int32 { range "0..128"; } default "126"; description "Length for bootstrap hash mask"; } } // container bsr-candidate container embedded-rp { presence "Enter the 'embedded-rp' context"; description "Enable the embedded-rp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of embedded RP"; } list group-range { key "ipv6-prefix"; description "Add a list entry for group-range"; leaf ipv6-prefix { type types-sros:ipv6-multicast-prefix; description "IPv6 address and prefix length"; } } // list group-range } // container embedded-rp container rp-candidate { description "Enter the rp-candidate context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the Candidate RP"; } leaf holdtime { type int32 { range "5..255"; } units "seconds"; default "150"; description "Time during which the neighboring router considers this router to be up"; } leaf priority { type int32 { range "0..255"; } default "192"; description "Candidate RP priority"; } leaf address { type types-sros:ipv6-unicast-address; description "Local RP address"; } list group-range { key "ipv6-prefix"; description "Add a list entry for group-range"; leaf ipv6-prefix { type types-sros:ipv6-multicast-prefix; description "IPv6 address and prefix length"; } } // list group-range } // container rp-candidate container static { description "Enter the static context"; list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type types-sros:ipv6-unicast-address; description "Static IP address of the RP"; } leaf override { type boolean; default "false"; description "Change the precedence for static RP over dynamically learnt RP"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group-prefix { key "ipv6-prefix"; description "Add a list entry for group-prefix"; leaf ipv6-prefix { type types-sros:ipv6-multicast-prefix; description "IPv6 address and prefix length"; } } // list group-prefix } // list address } // container static } // container ipv6 } // container rp list spt-switchover { key "ip-prefix"; description "Enter the spt-switchover list instance"; leaf ip-prefix { type types-sros:ip-multicast-prefix; description "IP address and mask length"; } leaf threshold { type union { type uint32 { range "1..4294967294"; } type enumeration { enum "infinity" { value -1; } } } units "kilobps"; mandatory true; description "SPT switchover threshold"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list spt-switchover container ssm-groups { description "Enter the ssm-groups context"; list group-range { key "ip-prefix"; description "Add a list entry for group-range"; leaf ip-prefix { type types-sros:ip-multicast-prefix; description "IP address and mask length"; } } // list group-range } // container ssm-groups } // container pim container vrf-target { status obsolete; description "Enter the vrf-target context"; choice vrf-target { status obsolete; case vrf-both-target { status obsolete; leaf community { status obsolete; type types-services:route-target; description "Extended BGP community"; } } case vrf-ovr-target { status obsolete; leaf import-community { status obsolete; type types-services:route-target; description "Communities accepted from remote PE neighbors"; } leaf export-community { status obsolete; type types-services:route-target; description "Communities to be sent to remote PE neighbors"; } } } } // container vrf-target container bgp-shared-queue { presence "Enter the 'bgp-shared-queue' context"; description "Enable the bgp-shared-queue context"; leaf cir { type types-qos:bgp-shared-queue-cir-rate; units "kilobps"; default "4000"; description "Committed information rate for shared queue"; } leaf pir { type types-qos:bgp-shared-queue-pir-rate; units "kilobps"; default "4000"; description "Peak information rate for shared queue"; } } // container bgp-shared-queue container vrf-import { status obsolete; presence "Enter the 'vrf-import' context"; description "Enable the vrf-import context"; leaf-list policy { status obsolete; type types-sros:vrf-policy; min-elements 1; max-elements 15; ordered-by user; description "Name of the import policy. The name of the policy is limited to 64 characters except for the first policy."; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container vrf-import container vrf-export { status obsolete; presence "Enter the 'vrf-export' context"; description "Enable the vrf-export context"; leaf-list policy { status obsolete; type types-sros:vrf-policy; min-elements 1; max-elements 15; ordered-by user; description "Name of the export policy. The name of the policy is limited to 64 characters except for the first policy."; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container vrf-export container wpp { presence "Enter the 'wpp' context"; description "Enable the wpp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WPP"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list portal { key "name"; description "Enter the portal list instance"; leaf name { type types-sros:named-item; description "WPP portal name"; } leaf address { type types-sros:ip-unicast-without-local-address; sros-ext:immutable; mandatory true; description "WPP portal address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the WPP portal"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Message authentication between portal and BRAS by applying the secret used by WPPv2"; } leaf version { type uint32 { range "1|2"; } default "1"; description "Protocol version to be expected by the WPP portal"; } leaf retry-interval { type uint32 { range "10..2000"; } units "milliseconds"; default "2000"; description "Time between two consecutive retransmissions"; } leaf ntf-logout-retry-count { type uint32 { range "0..5"; } default "5"; description "Number of retransmissions of an NTF_LOGOUT message"; } leaf ack-auth-retry-count { type uint32 { range "0..5"; } default "5"; description "Number of retransmissions of an ACK_OUT message"; } leaf port-format { type enumeration { enum "standard" { value 1; } enum "vendor-specific" { value 2; } } default "standard"; description "Format of the port in the ACK_INO message"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list portal } // container wpp container mvpn { presence "Enter the 'mvpn' context"; description "Enable the mvpn context"; leaf c-mcast-signaling { type enumeration { enum "bgp" { value 0; } enum "pim" { value 1; } } default "pim"; description "Specifies the protocol to use for PE-to-PE signaling of CE multicast states."; } leaf mdt-type { type enumeration { enum "sender-only" { value 0; } enum "receiver-only" { value 1; } enum "sender-receiver" { value 2; } } default "sender-receiver"; description "Specifies the type of the PE node (for P2MP only)."; } leaf umh-selection { type enumeration { enum "highest-ip" { value 0; } enum "hash-based" { value 1; } enum "tunnel-status" { value 2; } enum "unicast-rt-pref" { value 3; } } default "highest-ip"; description "Specifies the algorithm for selecting the UMH from the UMH route candidate set."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container auto-discovery { description "Enter the auto-discovery context"; leaf type { type enumeration { enum "bgp" { value 1; } enum "mdt-safi" { value 2; } } description "Whether multicast VPN membership auto-discovery via BGP is enabled."; } leaf source-address { type types-sros:ipv4-address; default "0.0.0.0"; description "a.b.c.d - source address."; } } // container auto-discovery container intersite-shared { description "Enter the intersite-shared context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of inter-site shared C-trees use"; } leaf persistent-type5-advertisement { type boolean; default "false"; description "Whether to advertise of source active route by RP."; } leaf kat-type5-advertisement-withdraw { type boolean; default "false"; description "Whether the withdrawal of Type 5 routes is enabled."; } } // container intersite-shared container redundant-source-list { description "Enter the redundant-source-list context"; list source-prefix { key "ip-prefix"; max-elements 16; description "Add a list entry for source-prefix"; leaf ip-prefix { type types-sros:ip-unicast-prefix; description "Attribute ip-prefix/prefix-length."; } } // list source-prefix } // container redundant-source-list container rpf-select { description "Enter the rpf-select context"; list core-mvpn { key "core-mvpn-service-name"; description "Enter the core-mvpn list instance"; leaf core-mvpn-service-name { type leafref { path "../../../../../vprn/service-name"; } description "Core-mvpn instance."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group-prefix { key "ip-group-prefix"; min-elements 1; description "Enter the group-prefix list instance"; leaf ip-group-prefix { type types-sros:ipv4-multicast-prefix; description "Multicast group-prefix/prefix-length."; } leaf starg { type boolean; sros-ext:immutable; default "false"; description "Starg flag."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list group-prefix } // list core-mvpn } // container rpf-select container umh-pe-backup { description "Enter the umh-pe-backup context"; list umh-pe { key "ip-address"; description "Enter the umh-pe list instance"; leaf ip-address { type types-sros:ipv4-unicast-address; description "[a.b.c.d]."; } leaf standby { type types-sros:ipv4-unicast-address; mandatory true; description "ip-address."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list umh-pe } // container umh-pe-backup container vrf-import { description "Enter the vrf-import context"; choice vrf-import { case policy { leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Name of the import policy. The name of the policy is limited to 64 characters except for the first policy."; } } case unicast { leaf unicast { type boolean; default "false"; description "The unicast boolean."; } } } } // container vrf-import container vrf-export { description "Enter the vrf-export context"; choice vrf-export { case policy { leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Name of the export policy. The name of the policy is limited to 64 characters except for the first policy."; } } case unicast { leaf unicast { type boolean; default "false"; description "The unicast boolean."; } } } } // container vrf-export container vrf-target { description "Enter the vrf-target context"; leaf community { type types-services:route-target; description "Extended community name for the Multicast VPN (MVPN) vrf-import or vrf-export policy."; } leaf unicast { type boolean; default "false"; description "The boolean to specify whether unicast vrf-target extended community is used for the Multicast VPN."; } container import { description "Enter the import context"; leaf community { type types-services:route-target; description "Extended community name for the Multicast VPN vrf-import policy."; } leaf unicast { type boolean; default "false"; description "The boolean to specify whether unicast vrf-target import extended community is used for the Multicast VPN."; } } // container import container export { description "Enter the export context"; leaf community { type types-services:route-target; description "Extended community name for the Multicast VPN vrf-export policy."; } leaf unicast { type boolean; default "false"; description "The boolean to specify whether unicast vrf-target export extended community is used for the Multicast VPN."; } } // container export } // container vrf-target container provider-tunnel { description "Enter the provider-tunnel context"; container inclusive { description "Enter the inclusive context"; leaf bsr { type enumeration { enum "unicast" { value 1; } enum "spmsi" { value 2; } } description "The bsr signaling."; } leaf wildcard-spmsi { type boolean; default "false"; description "Whether the wildcard spmsi is enabled."; } choice ipmsi { case rsvp { container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RSVP use for provider tunnels"; } leaf bfd-leaf { type boolean; default "false"; description "Whether the bfd-leaf is enabled."; } leaf lsp-template { type leafref { path "../../../../../../../router/mpls/lsp-template/template-name"; } description "Specify the Lsp Template."; } container bfd-root { presence "Enter the 'bfd-root' context"; description "Enable the bfd-root context"; leaf transmit-interval { type uint32 { range "10..100000"; } mandatory true; description "[10..100000] in milliseconds."; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "[3..20]."; } } // container bfd-root } // container rsvp } case mldp { container mldp { presence "Enter the 'mldp' context"; description "Enable the mldp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MLDP LSP use for tunnels"; } } // container mldp } case pim { container pim { presence "Enter the 'pim' context"; description "Enable the pim context"; leaf mode { type enumeration { enum "asm" { value 1; } enum "ssm" { value 2; } } mandatory true; description "keyword - PIM mode."; } leaf group-address { type types-sros:ipv4-multicast-address; mandatory true; description "a.b.c.d - multicast group address."; } leaf hello-interval { type uint32 { range "0..255"; } default "30"; description "The frequency at which PIM hello messages are sent over this interface."; } leaf hello-multiplier { type uint32 { range "20..100"; } default "35"; description "Hello-multiplier in multiples of 0.1 (deci-units)."; } leaf improved-assert { type boolean; default "true"; description "Whether the improved assert processing is enabled."; } leaf three-way-hello { type boolean; default "false"; description "Compatibility mode for three-way-hello."; } leaf tracking-support { type boolean; default "false"; description "Whether the tracking support is enabled."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of PIM use for provider tunnels"; } } // container pim } case bier { container bier { presence "Enter the 'bier' context"; description "Enable the bier context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the use of BIER."; } leaf sub-domain { type int32 { range "0..255"; } description "The BIER sub domain."; } } // container bier } } } // container inclusive container selective { description "Enter the selective context"; leaf auto-discovery { type boolean; default "false"; description "Whether the multicast VPN membership auto-discovery via BGP is enabled."; } leaf data-delay-interval { type uint32 { range "3..180"; } default "3"; description "The data delay interval."; } leaf join-tlv-packing { type boolean; default "true"; description "Disable/enable packing of multiple MDT join tlvs."; } leaf asm-mdt { type boolean; default "false"; description "Whether the mdt-range check at egress for classic draft-rosen only is enabled."; } choice spmsi { case rsvp { container rsvp { presence "Enter the 'rsvp' context"; description "Enable the rsvp context"; leaf lsp-template { type leafref { path "../../../../../../../router/mpls/lsp-template/template-name"; } description "Specify the Lsp Template."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RSVP use for provider tunnels"; } leaf maximum-p2mp-spmsi { type uint32 { range "1..4000"; } default "10"; description "Specify the maximum number of p2mp s-pmsi tunnels for the mvpn."; } } // container rsvp } case mldp { container mldp { presence "Enter the 'mldp' context"; description "Enable the mldp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MLDP LSP use for tunnels"; } leaf maximum-p2mp-spmsi { type uint32 { range "1..4000"; } default "10"; description "Specify the maximum number of p2mp s-pmsi tunnels for the mvpn."; } } // container mldp } case pim { container pim { presence "Enter the 'pim' context"; description "Enable the pim context"; leaf mode { type enumeration { enum "asm" { value 1; } enum "ssm" { value 2; } } mandatory true; description "PIM mode."; } leaf group-prefix { type types-sros:ipv4-multicast-prefix; mandatory true; description "Multicast group-prefix."; } } // container pim } case bier { container bier { presence "Enter the 'bier' context"; description "Enable the bier context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the use of BIER."; } leaf sub-domain { type int32 { range "0..255"; } description "The BIER sub domain."; } } // container bier } } container data-threshold { description "Enter the data-threshold context"; list group-prefix { key "ip-group-prefix"; description "Enter the group-prefix list instance"; leaf ip-group-prefix { type types-sros:ip-multicast-prefix; description "Multicast group-prefix."; } leaf threshold { type int64 { range "0..4294967294"; } units "kilobps"; mandatory true; description "The threshold in kbps for a group prefix."; } leaf pe-threshold-add { type uint32 { range "1..65535"; } default "65535"; description "The threshold."; } leaf pe-threshold-delete { type uint32 { range "2..65535"; } default "65535"; description "The threshold."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list group-prefix } // container data-threshold list multistream-spmsi { key "multistream-id"; description "Enter the multistream-spmsi list instance"; leaf multistream-id { type uint32 { range "1..1024"; } description "Multistream spmsi id"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multi-stream S-PMSI"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice spmsi { case lsp-template { leaf lsp-template { type leafref { path "../../../../../../../router/mpls/lsp-template/template-name"; } description "Specify the Lsp Template."; } } case pim { container pim { presence "Enter the 'pim' context"; description "Enable the pim context"; leaf mode { type enumeration { enum "asm" { value 1; } enum "ssm" { value 2; } } description "The mode."; } leaf group-address { type types-sros:ipv4-multicast-address; description "a.b.c.d - multicast group address."; } } // container pim } } list group-prefix { key "ip-group-prefix source-prefix"; description "Add a list entry for group-prefix"; leaf ip-group-prefix { type types-sros:ip-multicast-prefix; description "Multicast group-prefix/prefix-length."; } leaf source-prefix { type types-sros:ip-unicast-prefix; description "Multicast source-prefix/prefix-length."; } } // list group-prefix } // list multistream-spmsi } // container selective } // container provider-tunnel } // container mvpn container ntp { presence "Enter the 'ntp' context"; description "Enable the ntp context"; leaf authentication-check { type boolean; default "true"; description "Reject NTP PDUs that do not match the authentication key-id, type, or key requirements"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NTP execution"; } leaf authenticate { type boolean; default "false"; description "Authentication of NTP PDUs when acting as a server"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list authentication-key { key "key-id"; description "Enter the authentication-key list instance"; leaf key-id { type uint32 { range "1..255"; } description "Index of the NTP authentication key table that uniquely identifies an authentication key and type"; } leaf key { type types-sros:encrypted-leaf { length "1..71"; } mandatory true; description "Key to authenticate NTP packets"; } leaf type { type enumeration { enum "des" { value 1; } enum "message-digest" { value 2; } } mandatory true; description "Type of authentication method to authenticate NTP packet"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list authentication-key list broadcast { key "interface-name"; description "Enter the broadcast list instance"; leaf interface-name { type leafref { path "../../../../vprn[service-name=current()/../../../service-name]/interface/interface-name"; } description "Router interface name."; } leaf version { type uint32 { range "2..4"; } default "4"; description "NTP version number generated or accepted by this node in NTP packets"; } leaf ttl { type uint32 { range "1..255"; } default "127"; description "TTL value of messages transmitted by this broadcast address"; } leaf key-id { type leafref { path "../../authentication-key/key-id"; } description "Specifies the key-id of the authentication key and its authentication type used by this node to receive and transmit NTP packets to and from an NTP node."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list broadcast } // container ntp container bgp-evpn { description "Enter the bgp-evpn context"; list mpls { key "bgp-instance"; description "Enter the mpls list instance"; leaf bgp-instance { type int32 { range "1"; } description "BGP instance ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP-EVPN MPLS"; } leaf route-distinguisher { type types-services:vprn-bgp-evpn-mpls-rd; description "Route distinguisher"; } leaf default-route-tag { type types-services:one-byte-value; description "Default route tag"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container send-tunnel-encap { description "Enter the send-tunnel-encap context"; leaf mpls { type boolean; default "true"; description "Enable MPLS encapsulation"; } leaf mpls-over-udp { type boolean; default "false"; description "Enable MPLS over UDP encapsulation"; } } // container send-tunnel-encap container vrf-export { presence "Enter the 'vrf-export' context"; description "Enable the vrf-export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container vrf-export container vrf-import { presence "Enter the 'vrf-import' context"; description "Enable the vrf-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container vrf-import container vrf-target { description "Enter the vrf-target context"; choice vrf-target { case vrf-both-target { leaf community { type types-services:route-target; description "Extended BGP community"; } } case vrf-ovr-target { leaf import-community { type types-services:route-target; description "Communities accepted from remote PE neighbors"; } leaf export-community { type types-services:route-target; description "Communities sent to remote PE neighbors"; } } } } // container vrf-target container auto-bind-tunnel { description "Enter the auto-bind-tunnel context"; leaf resolution { type types-services:resolve-status; default "none"; description "Resolution method for tunnel selection"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Allow enforcement of strict tunnel tagging"; } leaf ecmp { type types-router:mpls-ecmp; default "1"; description "Maximum ECMP routes allowed"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable/disable routes with another flex-algo-id as fallback"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; default "false"; description "Use BGP tunneling for next-hop resolution"; } leaf ldp { type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // container auto-bind-tunnel } // list mpls } // container bgp-evpn container bgp-ipvpn { description "Enter the bgp-ipvpn context"; container mpls { description "Enter the mpls context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BGP-IPVPN MPLS"; } leaf route-distinguisher { type types-services:vprn-bgp-evpn-mpls-rd; description "Route distinguisher"; } container vrf-target { description "Enter the vrf-target context"; choice vrf-target { case vrf-both-target { leaf community { type types-services:route-target; description "Extended BGP community"; } } case vrf-ovr-target { leaf import-community { type types-services:route-target; description "Communities accepted from remote PE neighbors"; } leaf export-community { type types-services:route-target; description "Communities sent to remote PE neighbors"; } } } } // container vrf-target container vrf-import { presence "Enter the 'vrf-import' context"; description "Enable the vrf-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container vrf-import container vrf-export { presence "Enter the 'vrf-export' context"; description "Enable the vrf-export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container vrf-export container auto-bind-tunnel { description "Enter the auto-bind-tunnel context"; leaf ecmp { type types-router:mpls-ecmp; default "1"; description "Maximum ECMP routes allowed"; } leaf weighted-ecmp { type boolean; default "false"; description "Allow weighted load-balancing"; } leaf resolution { type types-services:resolve-status; default "none"; description "Resolution method for tunnel selection"; } leaf enforce-strict-tunnel-tagging { type boolean; default "false"; description "Allow enforcement of strict tunnel tagging"; } leaf allow-flex-algo-fallback { type boolean; default "false"; description "Enable flexible algorithm fallback"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resolution-filter { description "Enter the resolution-filter context"; leaf bgp { type boolean; default "true"; description "Use BGP tunneling for next-hop resolution"; } leaf gre { type boolean; default "false"; description "Use GRE tunneling for next-hop resolution"; } leaf ldp { type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf rib-api { type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf mpls-fwd-policy { type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-policy { type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf sr-ospf3 { type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // container auto-bind-tunnel } // container mpls } // container bgp-ipvpn container aaa { description "Enter the aaa context"; container remote-servers { description "Enter the remote-servers context"; container tacplus { presence "Enter the 'tacplus' context"; description "Enable the tacplus context"; leaf interactive-authentication { type boolean; default "false"; description "Enable/disable TACACS+ interactive authentication."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the TACACS+ protocol operation"; } leaf server-timeout { type types-sros:time-duration { range "1..90"; } units "seconds"; default "3"; description "Timeout for a response from an TACACS+ server."; } leaf use-default-template { type boolean; default "true"; description "Enable/disable TACACS+ default template."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container accounting { presence "Enter the 'accounting' context"; description "Enable the accounting context"; leaf record-type { type enumeration { enum "start-stop" { value 1; } enum "stop-only" { value 2; } } default "stop-only"; description "Configure the type of accounting record packet that is to be sent to the TACACS+ server."; } } // container accounting container authorization { presence "Enter the 'authorization' context"; description "Enable the authorization context"; leaf use-priv-lvl { type boolean; default "false"; description "Enable/disable the privilege level mapping."; } } // container authorization container priv-lvl-map { description "Enter the priv-lvl-map context"; list priv-lvl { key "level"; description "Enter the priv-lvl list instance"; leaf level { type uint32 { range "0..15"; } description "Specifies the privilege level for this mapping."; } leaf user-profile-name { type leafref { path "../../../../../../../../system/security/aaa/local-profiles/profile/user-profile-name"; } mandatory true; description "Specifies the user profile for this mapping."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priv-lvl } // container priv-lvl-map list server { key "index"; max-elements 5; description "Enter the server list instance"; leaf index { type uint32 { range "1..5"; } description "Identifies a specific TACACS+ server."; } leaf address { type types-sros:ip-unicast-address; mandatory true; description "IP address of TACACS+ server."; } leaf port { type types-qos:tcp-udp-match-port; default "49"; description "TCP port number on which to contact TACACS+ server."; } leaf secret { type types-sros:encrypted-leaf { length "1..199"; } mandatory true; description "The secret key associated with the TACACS+ server. The value of secret cannot be set to an empty string."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server } // container tacplus container radius { presence "Enter the 'radius' context"; description "Enable the radius context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RADIUS authentication"; } leaf accounting { type boolean; default "false"; description "Enable/disable RADIUS command accounting."; } leaf accounting-port { type uint32 { range "1..65535"; } default "1813"; description "Port number on which to contact RADIUS server for accounting requests."; } leaf authorization { type boolean; default "false"; description "Enable/disable RADIUS command authorization."; } leaf interactive-authentication { type boolean; default "false"; description "Enable/disable RADIUS interactive authentication."; } leaf server-retry { type uint32 { range "1..10"; } default "3"; description "Number of attempts to retry contacting RADIUS."; } leaf server-timeout { type uint32 { range "1..90"; } units "seconds"; default "3"; description "Timeout for a response from RADIUS server."; } leaf port { type uint32 { range "1..65535"; } default "1812"; description "Port number on which to contact RADIUS server."; } leaf use-default-template { type boolean; default "false"; description "Enable/disable RADIUS default template."; } leaf access-algorithm { type enumeration { enum "direct" { value 1; } enum "round-robin" { value 2; } } default "direct"; description "Configure the algorithm used to access the set of RADIUS servers."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list server { key "index"; max-elements 5; description "Enter the server list instance"; leaf index { type uint32 { range "1..5"; } description "Unique number which identifies a specific RADIUS server."; } leaf address { type types-sros:ip-unicast-address; mandatory true; description "IP address of Radius server."; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } mandatory true; description "The secret key associated with RADIUS server. The value of secret cannot be set to an empty string."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server } // container radius } // container remote-servers } // container aaa container aggregates { description "Enter the aggregates context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list aggregate { key "ip-prefix"; description "Enter the aggregate list instance"; leaf ip-prefix { type types-sros:ip-unicast-prefix; description "Destination IP address prefix of the aggregate route"; } leaf as-set { type boolean; default "false"; description "Use AS_SET path segment type for the aggregate route"; } leaf-list community { type types-sros:community; max-elements 12; ordered-by user; description "Community name that is added to the aggregate route"; } leaf description { type types-sros:description; description "Text description"; } leaf summary-only { type boolean; default "false"; description "Advertise the aggregate route only"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Local preference used when aggregate route is exported"; } leaf discard-component-communities { type boolean; default "false"; description "Advertise aggregate with aggregate route community set"; } leaf policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Policy name for the aggregated route"; } leaf tunnel-group { type types-redundancy:tunnel-group-id; description "Tunnel group from which to associate the MC IPSec state"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice next-hop { case blackhole { container blackhole { presence "Enter the 'blackhole' context"; description "Enable the blackhole context"; leaf generate-icmp { type boolean; default "false"; description "Send ICMP unreachable messages for aggregate routes"; } } // container blackhole } case indirect { leaf indirect { type types-sros:ip-unicast-address; sros-ext:immutable; description "Address of the indirect next hop"; } } } container aggregator { description "Enter the aggregator context"; leaf as-number { type uint32 { range "1..max"; } description "Aggregator AS number"; } leaf address { type types-sros:ipv4-unicast-address; description "Aggregator IP address"; } } // container aggregator } // list aggregate } // container aggregates container wlan-gw { presence "Enter the 'wlan-gw' context"; description "Enable the wlan-gw context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mobility-triggered-accounting { description "Enter the mobility-triggered-accounting context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of mobility-triggered-accounting"; } leaf include-counters { type boolean; default "false"; description "Include counters in interim updates"; } leaf hold-down { type types-sros:time-duration { range "60..86400"; } units "seconds"; description "Hold additional mobility-triggered update until this timer expires"; } } // container mobility-triggered-accounting container distributed-subscriber-mgmt { description "Enter the distributed-subscriber-mgmt context"; leaf ipv6-tcp-mss-adjust { type uint32 { range "160..10240"; } description "Insert or decrease the TCP Maximum Segment Size option to this value for upstream IPv6 SYN messages"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container distributed-subscriber-mgmt container xconnect { description "Enter the xconnect context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the WLAN-GW cross-connect"; } leaf tunnel-source-ip { type types-sros:ipv6-prefix; sros-ext:auto-restart-to-modify; description "IPv6 prefix from which source addresses of cross-connect tunnels will be chosen"; } leaf wlan-gw-group { type leafref { path "../../../../../isa/wlan-gw-group/id"; } sros-ext:auto-restart-to-modify; description "ISA WLAN-GW Group"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container xconnect } // container wlan-gw container auto-bind-tunnel { status obsolete; description "Enter the auto-bind-tunnel context"; leaf ecmp { status obsolete; type types-router:mpls-ecmp; default "1"; description "Maximum ECMP routes allowed"; } leaf weighted-ecmp { status obsolete; type boolean; default "false"; description "Allow weighted load-balancing"; } leaf resolution { status obsolete; type types-services:resolve-status; default "none"; description "Resolution method for tunnel selection"; } leaf enforce-strict-tunnel-tagging { status obsolete; type boolean; default "false"; description "Allow enforcement of strict tunnel tagging"; } leaf allow-flex-algo-fallback { status obsolete; type boolean; default "false"; description "Enable flexible algorithm fallback"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container resolution-filter { status obsolete; description "Enter the resolution-filter context"; leaf bgp { status obsolete; type boolean; default "true"; description "Use BGP tunneling for next-hop resolution"; } leaf gre { status obsolete; type boolean; default "false"; description "Use GRE tunneling for next-hop resolution"; } leaf ldp { status obsolete; type boolean; default "false"; description "Use LDP tunneling for next-hop resolution"; } leaf rsvp { status obsolete; type boolean; default "false"; description "Use RSVP tunneling for next-hop resolution"; } leaf sr-isis { status obsolete; type boolean; default "false"; description "Use IS-IS SR tunneling for next-hop resolution"; } leaf sr-ospf { status obsolete; type boolean; default "false"; description "Use OSPF SR tunneling for next-hop resolution"; } leaf sr-te { status obsolete; type boolean; default "false"; description "Use SR-TE tunneling for next-hop resolution"; } leaf udp { status obsolete; type boolean; default "false"; description "Use MPLS over UDP tunneling for next-hop resolution"; } leaf rib-api { status obsolete; type boolean; default "false"; description "Use RIB API gRPC service for next-hop resolution"; } leaf mpls-fwd-policy { status obsolete; type boolean; default "false"; description "Use MPLS forwarding policy for next-hop resolution"; } leaf sr-policy { status obsolete; type boolean; default "false"; description "Use SR policies for next-hop resolution"; } leaf sr-ospf3 { status obsolete; type boolean; default "false"; description "Use OSPFv3 SR tunneling for next-hop resolution"; } } // container resolution-filter } // container auto-bind-tunnel container dns { presence "Enter the 'dns' context"; description "Enable the dns context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DNS"; } leaf-list server { type types-sros:ip-unicast-address; max-elements 3; ordered-by user; description "List of DNS servers used for address resolution."; } leaf ipv4-source-address { type union { type enumeration { enum "use-interface-ip" { value 0; } } type types-sros:ipv4-unicast-address; } default "use-interface-ip"; description "Source address to contact an IPv4 DNS server"; } leaf ipv6-source-address { type union { type enumeration { enum "use-interface-ip" { value 0; } } type types-sros:ipv6-unicast-address; } default "use-interface-ip"; description "Source address to contact an IPv6 DNS server"; } leaf default-domain { type types-sros:fully-qualified-domain-name { pattern "[a-z0-9\\-\\.]+"; } description "Domain name added in DNS retries"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dns container bgp { presence "Enter the 'bgp' context"; description "Enable the bgp context"; leaf description { type types-sros:description; description "Text description"; } leaf connect-retry { type int32 { range "1..65535"; } default "120"; description "BGP connect retry timer value"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP instance"; } leaf keepalive { type int32 { range "0..21845"; } default "30"; description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; default "false"; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type uint32; default "100"; description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; default "ignore-loop"; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } default "0"; description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type uint32 { range "384..9746"; } description "TCP maximum segment size override"; } leaf min-route-advertisement { type int16 { range "1..255"; } default "30"; description "Minimum time before a prefix can be advertised to peer"; } leaf aggregator-id-zero { type boolean; default "false"; description "Set router ID in the BGP AGGREGATOR attribute to 0"; } leaf preference { type uint32 { range "1..255"; } default "170"; description "Route preference for routes learned from all peers"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; default "true"; description "Allow client reflection of routes by route reflector"; } leaf asn-4-byte { type boolean; default "true"; description "Advertise support for 4-byte ASNs"; } leaf eibgp-loadbalance { type boolean; default "false"; description "Use ECMP over BGP VPN and BGP routes"; } leaf path-mtu-discovery { type boolean; default "false"; description "Enable Path MTU Discovery"; } leaf enforce-first-as { type boolean; default "false"; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; default "false"; description "Send BGP updates as soon as session comes up"; } leaf router-id { type types-sros:ipv4-address; description "Router ID for the BGP instance in the AS"; } leaf ibgp-multipath { type boolean; default "false"; description "Enable IBGP multipath load balancing"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD"; } leaf fast-external-failover { type boolean; default "true"; description "Drop external BGP session immediately when link fails"; } leaf advertise-inactive { type boolean; default "false"; description "Advertise inactive BGP routes to peers"; } leaf authentication-keychain { type leafref { path "../../../../system/security/keychains/keychain/keychain-name"; } description "TCP authentication keychain for the session"; } leaf rapid-withdrawal { type boolean; default "false"; description "Send BGP withdrawal UPDATE messages immediately"; } leaf peer-ip-tracking { type boolean; default "false"; description "Enable BGP peer tracking"; } leaf split-horizon { type boolean; default "false"; description "Prevent routes being reflected back to best-route peer"; } leaf third-party-nexthop { type boolean; default "false"; description "Apply third-party next-hop processing to EBGP peers"; } leaf dynamic-neighbor-limit { type uint32 { range "1..8192"; } description "Max dynamic BGP sessions to accept from remote peers"; } leaf label-preference { type uint32 { range "1..255"; } default "170"; description "Route preference for routes from labeled-unicast peers"; } leaf peer-tracking-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } description "Policy for BGP peer tracking on router instance"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } default "90"; description "Maximum time BGP waits between successive messages"; } leaf minimum-hold-time { type int32 { range "0|3..65535"; } default "0"; description "Minimum hold time between successive messages"; } } // container hold-time container family { description "Enter the family context"; leaf ipv4 { type boolean; default "true"; description "Advertise MP-BGP support for the IPv4 address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } } // container family container send-default { description "Enter the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable IPv4 family type"; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } default "0"; description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } default "0"; description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } default "0"; description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } default "0"; description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if AS-PATH contains eBGP peer's ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } } // container cluster container ebgp-default-reject-policy { description "Enter the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global AS when advertising routes to BGP peer"; } } // container local-as container best-path-selection { description "Enter the best-path-selection context"; leaf compare-origin-validation-state { type boolean; default "false"; description "Specifies whether the origin validation state is used in the BGP decision process."; } leaf deterministic-med { type boolean; default "false"; description "Group paths based on AS before MED attribute comparison"; } leaf origin-invalid-unusable { type boolean; default "false"; description "Specifies whether to use or ignore the routes that have an origin validation state of 'Invalid'."; } leaf ignore-nh-metric { type boolean; default "false"; description "Ignore next-hop distance in best path selection"; } container always-compare-med { description "Enter the always-compare-med context"; leaf med-value { type types-bgp:med-value; default "off"; description "Action for a missing MED attribute"; } leaf strict-as { type boolean; default "true"; description "Compare MED only for routes from same neighbor AS"; } } // container always-compare-med container as-path-ignore { description "Enter the as-path-ignore context"; leaf ipv4 { type boolean; default "false"; description "Ignore AS path length for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Ignore AS path length for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Ignore AS path length for labeled-unicast IPv4 routes"; } } // container as-path-ignore container ignore-router-id { presence "Enter the 'ignore-router-id' context"; description "Enable the ignore-router-id context"; } // container ignore-router-id container ebgp-ibgp-equal { description "Enter the ebgp-ibgp-equal context"; leaf ipv4 { type boolean; default "false"; description "Consider EBGP and IBGP IPv4 routes equal"; } leaf ipv6 { type boolean; default "false"; description "Consider EBGP and IBGP IPv6 routes equal"; } leaf label-ipv4 { type boolean; default "false"; description "Consider EBGP and IBGP label-IPv4 routes equal"; } } // container ebgp-ibgp-equal } // container best-path-selection container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; default "true"; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; default "true"; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; default "true"; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; default "false"; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container backup-path { description "Enter the backup-path context"; leaf ipv4 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } } // container backup-path container flowspec { description "Enter the flowspec context"; leaf validate-dest-prefix { type boolean; default "false"; description "Validate destination prefix in FlowSpec-IPv4/IPv6 route"; } leaf validate-redirect-ip { type boolean; default "false"; description "Validate the redirect-to-IPv4 action in FlowSpec route"; } } // container flowspec container convergence { description "Enter the convergence context"; leaf min-wait-to-advertise { type uint32 { range "0..3600"; } default "0"; description "Minimum wait time before advertising routes"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } } description "Address family for which convergence selection applies"; } leaf max-wait-to-advertise { type uint32 { range "0..3600"; } default "0"; description "Maximum wait time before advertising routes"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list family } // container convergence container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Import policy name"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Export policy name"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container export container extended-nh-encoding { description "Enter the extended-nh-encoding context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container extended-nh-encoding container advertise-ipv6-next-hops { description "Enter the advertise-ipv6-next-hops context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "120"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform Graceful Restart procedures"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type types-bgp:vprn-bgp-llgr-family-identifiers; description "Address family type for LLGR"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list family } // container long-lived } // container graceful-restart container next-hop-resolution { description "Enter the next-hop-resolution context"; leaf use-bgp-routes { type boolean; default "false"; description "Use BGP routes to resolve BGP next hops"; } leaf policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Policy that filters routes for BGP next-hop resolution"; } } // container next-hop-resolution container multipath { description "Enter the multipath context"; leaf max-paths { type types-router:ip-ecmp; default "1"; description "Maximum multipaths per prefix"; } leaf ebgp { type types-router:ip-ecmp; description "Maximum multipaths per prefix for EBGP learned routes"; } leaf ibgp { type types-router:ip-ecmp; description "Maximum multipaths per prefix for IBGP learned routes"; } leaf restrict { type types-bgp:restrict; default "same-as-path-length"; description "AS path restriction for the non-best path"; } leaf unequal-cost { type boolean; default "false"; description "Ignore differences in the next-hop cost for multipath"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } enum "label-ipv4" { value 17; } } description "Address family for which multipath selection applies"; } leaf max-paths { type types-router:ip-ecmp; description "Maximum multipaths per prefix or NLRI"; } leaf ebgp { type types-router:ip-ecmp; description "Attribute ebgp-max-paths for multipath."; } leaf ibgp { type types-router:ip-ecmp; description "Attribute ibgp-max-paths for multipath."; } leaf restrict { type types-bgp:restrict; default "same-as-path-length"; description "AS path restriction for the non-best path"; } leaf unequal-cost { type boolean; default "false"; description "Ignore differences in the next-hop cost for multipath"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list family } // container multipath container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type leafref { path "../../../../../../bmp/station/name"; } description "BMP monitoring station"; } } // list station } // container monitor container rib-management { description "Enter the rib-management context"; container ipv4 { description "Enter the ipv4 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type leafref { path "../../../../../../../policy-options/policy-statement/name"; } description "Name of policy that controls route importation into RIB"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container leak-import } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type leafref { path "../../../../../../../policy-options/policy-statement/name"; } description "Name of policy that controls route importation into RIB"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container leak-import } // container ipv6 container label-ipv4 { description "Enter the label-ipv4 context"; container route-table-import { description "Enter the route-table-import context"; leaf policy-name { type leafref { path "../../../../../../../policy-options/policy-statement/name"; } description "Name of policy that controls route importation into RIB"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container route-table-import container leak-import { description "Enter the leak-import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } max-elements 15; ordered-by user; description "Leak import policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container leak-import } // container label-ipv4 } // container rib-management list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type types-sros:named-item-64; description "BGP peer group"; } leaf description { type types-sros:description; description "Text description"; } leaf connect-retry { type int32 { range "1..65535"; } description "BGP connect retry timer value"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP group"; } leaf static-group { type boolean; default "true"; description "Use group for static peers"; } leaf keepalive { type int32 { range "0..21845"; } description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type union { type uint32 { range "384..9746"; } type enumeration { enum "ip-stack" { value 0; } } } description "TCP maximum segment size override"; } leaf min-route-advertisement { type int16 { range "1..255"; } description "Minimum time before a prefix can be advertised to peer"; } leaf aggregator-id-zero { type boolean; description "Set router ID in the BGP AGGREGATOR attribute to zero"; } leaf preference { type uint32 { range "1..255"; } description "Route preference for routes learned from all peers"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; description "Allow cluster RR to advertise routes to its clients"; } leaf as-override { type boolean; default "false"; description "Replace the peer's ASN with the local ASN in AS Path"; } leaf asn-4-byte { type boolean; description "Advertise the use of 4-byte ASNs"; } leaf path-mtu-discovery { type boolean; description "Enable Path MTU Discovery"; } leaf next-hop-self { type boolean; default "false"; description "Advertise routes with local address as next-hop address"; } leaf passive { type boolean; default "false"; description "Enable passive mode for BGP communication"; } leaf type { type types-bgp:peer-type; default "no-type"; description "BGP peer type"; } leaf peer-as { type uint32 { range "1..4294967295"; } description "Peer AS number"; } leaf capability-negotiation { type boolean; default "true"; description "Enable capability negotiation"; } leaf enforce-first-as { type boolean; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; description "Send BGP updates as soon as the session comes up"; } leaf local-address { type types-bgp:local-address; description "Local IP address used when communicating with BGP peers"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for an incoming BGP packet"; } leaf advertise-inactive { type boolean; description "Advertise an inactive BGP route to peers"; } leaf authentication-keychain { type leafref { path "../../../../../system/security/keychains/keychain/keychain-name"; } description "TCP authentication keychain for the session"; } leaf bfd-liveness { type boolean; description "Enable BFD"; } leaf fast-external-failover { type boolean; description "Drop external BGP session immediately when link fails"; } leaf peer-ip-tracking { type boolean; description "Enable BGP peer tracking"; } leaf dynamic-neighbor-limit { type uint32 { range "1..8192"; } description "Maximum dynamic BGP sessions to accept from remote peer"; } leaf split-horizon { type boolean; description "Prevent routes being reflected back to best-route peer"; } leaf third-party-nexthop { type boolean; description "Apply third-party next-hop processing to EBGP peers"; } leaf label-preference { type uint32 { range "1..255"; } description "Route preference for routes from labeled-unicast peers"; } leaf multipath-eligible { type boolean; default "false"; description "Allow routes from group peers in multipath eligibility"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } description "Maximum time BGP waits between successive messages"; } leaf minimum-hold-time { type int32 { range "0|3..65536"; } default "0"; description "Minimum hold time between successive messages"; } } // container hold-time container family { presence "Enter the 'family' context"; description "Enable the family context"; leaf ipv4 { type boolean; default "false"; description "Add support for the IPv4 address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } } // container family container send-default { presence "Enter the 'send-default' context"; description "Enable the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if it is the same as the BGP peer ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } } // container cluster container ebgp-default-reject-policy { presence "Enter the 'ebgp-default-reject-policy' context"; description "Enable the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global ASN when advertising routes to BGP peer"; } } // container local-as container origin-validation { description "Enter the origin-validation context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } } // container origin-validation container link-bandwidth { description "Enter the link-bandwidth context"; container accept-from-ebgp { description "Enter the accept-from-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container accept-from-ebgp container add-to-received-ebgp { description "Enter the add-to-received-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container add-to-received-ebgp container aggregate-used-paths { description "Enter the aggregate-used-paths context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container aggregate-used-paths container send-to-ebgp { description "Enter the send-to-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container send-to-ebgp } // container link-bandwidth container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each repeated session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Specifies the name of the import policy. The name of the policy is limited to 64 characters except for the first policy."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Export policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container export container extended-nh-encoding { presence "Enter the 'extended-nh-encoding' context"; description "Enable the extended-nh-encoding context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container extended-nh-encoding container advertise-ipv6-next-hops { presence "Enter the 'advertise-ipv6-next-hops' context"; description "Enable the advertise-ipv6-next-hops context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "300"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform graceful restart procedures after NOTIFICATION"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "Advertised long-lived stale time for LLGR routes"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type types-bgp:vprn-bgp-llgr-family-identifiers; description "Address family type for LLGR"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777216"; } default "16777216"; description "Locally-configured stale routes override time"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list family } // container long-lived } // container graceful-restart list prefix-limit { key "family"; description "Enter the prefix-limit list instance"; leaf family { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } enum "mcast-ipv4" { value 4; } enum "flow-ipv4" { value 10; } enum "flow-ipv6" { value 14; } enum "mcast-ipv6" { value 16; } enum "label-ipv4" { value 17; } } description "Address family to which the limit applies"; } leaf maximum { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of routes to be learned from a peer"; } leaf log-only { type boolean; default "false"; description "Send warning message at threshold instead of take-down"; } leaf threshold { type uint32 { range "1..100"; } default "90"; description "Percentage threshold that triggers a warning message"; } leaf idle-timeout { type int32 { range "1..1024"; } description "Time which BGP peering remains idle before reconnecting"; } leaf post-import { type boolean; default "false"; description "Apply limit only to routes accepted by import policies"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix-limit container dynamic-neighbor { description "Enter the dynamic-neighbor context"; container match { description "Enter the match context"; list prefix { key "ip-prefix"; description "Enter the prefix list instance"; leaf ip-prefix { type types-sros:ip-prefix; description "Dynamic peer prefix for the group"; } leaf-list allowed-peer-as { type string { pattern "(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))|(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])\\.\\.([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))"; } max-elements 32; ordered-by user; description "Allowed peer AS range"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // container match } // container dynamic-neighbor container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type leafref { path "../../../../../../../bmp/station/name"; } description "BMP monitoring station"; } } // list station } // container monitor } // list group list neighbor { key "ip-address"; description "Enter the neighbor list instance"; leaf ip-address { type types-sros:ip-address-with-zone; description "IP address that the neighbor uses to communicate with BGP peers"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for an incoming BGP packet"; } leaf advertise-inactive { type boolean; description "Advertise an inactive BGP route to peers"; } leaf authentication-keychain { type leafref { path "../../../../../system/security/keychains/keychain/keychain-name"; } description "TCP authentication keychain for the session"; } leaf bfd-liveness { type boolean; description "Enable BFD"; } leaf fast-external-failover { type boolean; description "Drop external BGP session immediately when link fails"; } leaf peer-ip-tracking { type boolean; description "Enable BGP peer tracking"; } leaf split-horizon { type boolean; description "Prevent routes being reflected back to best-route peer"; } leaf third-party-nexthop { type boolean; description "Apply third-party next-hop processing to EBGP peers"; } leaf label-preference { type uint32 { range "1..255"; } description "Route preference for routes from labeled-unicast peers"; } leaf multipath-eligible { type boolean; description "Allow routes from this peer in multipath eligibility"; } leaf group { type leafref { path "../../group/group-name"; } sros-ext:immutable; mandatory true; description "Neighbor to group"; } leaf peer-creation-type { type types-bgp:peer-creation-type; default "static"; description "Peer creation type"; } leaf connect-retry { type int32 { range "1..65535"; } description "BGP connect retry timer value"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the BGP neighbor"; } leaf keepalive { type int32 { range "0..21845"; } description "Time after which the BGP KEEPALIVE message is sent"; } leaf damping { type boolean; description "Use BGP route damping to reduce route flap"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Default local preference if not in incoming routes"; } leaf loop-detect { type types-bgp:loop-detect; description "Strategy for loop detection in the AS path"; } leaf loop-detect-threshold { type uint32 { range "0..15"; } description "Threshold for the global ASN in a received AS path"; } leaf tcp-mss { type union { type uint32 { range "384..9746"; } type enumeration { enum "ip-stack" { value 0; } } } description "TCP maximum segment size override"; } leaf min-route-advertisement { type int16 { range "1..255"; } description "Minimum interval between successive prefix updates"; } leaf aggregator-id-zero { type boolean; description "Set router ID in the BGP AGGREGATOR attribute to zero"; } leaf preference { type uint32 { range "1..255"; } description "Route preference for routes learned from all peers"; } leaf multihop { type int32 { range "1..255"; } description "TTL in IP packet headers for EBGP peers multi-hops away"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Default MED attribute value to advertise to peers"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf client-reflect { type boolean; description "Allow cluster RR to advertise routes to its clients"; } leaf as-override { type boolean; description "Replace the peer's ASN with the local ASN in AS Path"; } leaf asn-4-byte { type boolean; description "Advertise the use of 4-byte ASNs"; } leaf path-mtu-discovery { type boolean; description "Enable path MTU discovery"; } leaf local-address { type types-bgp:local-address; description "Local IP address used when communicating with BGP peers"; } leaf next-hop-self { type boolean; description "Advertise routes with local address as next-hop address"; } leaf passive { type boolean; description "Use passive mode for BGP communication"; } leaf type { type types-bgp:peer-type; description "BGP peer type"; } leaf peer-as { type uint32 { range "1..4294967295"; } description "Peer AS number"; } leaf capability-negotiation { type boolean; description "Enable capability negotiation"; } leaf enforce-first-as { type boolean; description "Enforce the configured peer AS value in received routes"; } leaf initial-send-delay-zero { type boolean; description "Send BGP updates as soon as the session comes up"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container origin-validation { presence "Enter the 'origin-validation' context"; description "Enable the origin-validation context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } leaf ipv6 { type boolean; default "false"; description "Enable support for unlabeled unicast IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Enable support for labeled-unicast IPv4 routes"; } } // container origin-validation container link-bandwidth { description "Enter the link-bandwidth context"; container accept-from-ebgp { presence "Enter the 'accept-from-ebgp' context"; description "Enable the accept-from-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container accept-from-ebgp container add-to-received-ebgp { presence "Enter the 'add-to-received-ebgp' context"; description "Enable the add-to-received-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container add-to-received-ebgp container aggregate-used-paths { presence "Enter the 'aggregate-used-paths' context"; description "Enable the aggregate-used-paths context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container aggregate-used-paths container send-to-ebgp { presence "Enter the 'send-to-ebgp' context"; description "Enable the send-to-ebgp context"; leaf ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv4 routes"; } leaf ipv6 { type boolean; default "false"; description "Support Link Bandwidth EC in IPv6 routes"; } leaf label-ipv4 { type boolean; default "false"; description "Support Link Bandwidth EC in label-IPv4 routes"; } } // container send-to-ebgp } // container link-bandwidth container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; description "Advertise the Communities attribute to peers"; } leaf extended { type boolean; description "Advertise the Extended Communities attribute to peers"; } leaf large { type boolean; description "Advertise the Large Communities attribute to peers"; } } // container send-communities container error-handling { description "Enter the error-handling context"; leaf update-fault-tolerance { type boolean; description "Tolerate non-critical errors in UPDATE messages"; } } // container error-handling container damp-peer-oscillations { presence "Enter the 'damp-peer-oscillations' context"; description "Enable the damp-peer-oscillations context"; leaf error-interval { type uint32 { range "0..2048"; } default "30"; description "Time after a reset that the session must be error-free"; } container idle-hold-time { description "Enter the idle-hold-time context"; leaf initial-wait { type uint32 { range "0..2048"; } default "0"; description "Time session remains in idle state after stabilization"; } leaf second-wait { type uint32 { range "1..2048"; } default "5"; description "Time that doubles after each repeated session failure"; } leaf max-wait { type uint32 { range "1..2048"; } default "60"; description "Maximum session idle time after repeated instability"; } } // container idle-hold-time } // container damp-peer-oscillations container hold-time { description "Enter the hold-time context"; leaf seconds { type int32 { range "0|3..65535"; } description "BGP hold time"; } leaf minimum-hold-time { type int32 { range "0|3..65536"; } default "0"; description "Minimum time BGP waits between successive messages"; } } // container hold-time container family { presence "Enter the 'family' context"; description "Enable the family context"; leaf ipv4 { type boolean; default "false"; description "Add support for the IPv4 address family"; } leaf ipv6 { type boolean; default "false"; description "Advertise MP-BGP support for the IPv6 address family"; } leaf mcast-ipv4 { type boolean; default "false"; description "Advertise support for the MCAST-IPv4 address family"; } leaf flow-ipv4 { type boolean; default "false"; description "Advertise support for the flowspec-IPv4 address family"; } leaf flow-ipv6 { type boolean; default "false"; description "Advertise support for the flowspec-IPv6 address family"; } leaf mcast-ipv6 { type boolean; default "false"; description "Advertise support for the MCAST-IPv6 address family"; } leaf label-ipv4 { type boolean; default "false"; description "Advertise support for the label-IPv4 address family"; } } // container family container send-default { presence "Enter the 'send-default' context"; description "Enable the send-default context"; leaf ipv4 { type boolean; default "false"; description "Enable IPv4 family type"; } leaf ipv6 { type boolean; default "false"; description "Enable IPv6 family type"; } leaf export-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } description "Export policy name"; } } // container send-default container default-preference { description "Enter the default-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-preference container default-label-preference { description "Enter the default-label-preference context"; leaf ebgp { type uint32 { range "0..255"; } description "Default preference for EBGP"; } leaf ibgp { type uint32 { range "0..255"; } description "Default preference for IBGP"; } } // container default-label-preference container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private ASNs up to first public ASN encountered"; } leaf skip-peer-as { type boolean; default "false"; description "Keep private ASN if it is the same as the BGP peer ASN"; } leaf replace { type boolean; default "false"; description "Replace private ASN with global ASN before advertising"; } } // container remove-private container cluster { description "Enter the cluster context"; leaf cluster-id { type types-sros:ipv4-address; description "Route reflector cluster ID"; } } // container cluster container ebgp-default-reject-policy { presence "Enter the 'ebgp-default-reject-policy' context"; description "Enable the ebgp-default-reject-policy context"; leaf import { type boolean; default "true"; description "Enable default reject import policy for external peers"; } leaf export { type boolean; default "true"; description "Enable default reject export policy for external peers"; } } // container ebgp-default-reject-policy container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "Local (or virtual) BGP AS number"; } leaf private { type boolean; default "false"; description "Hide the local ASN in sent paths learned from peering"; } leaf prepend-global-as { type boolean; default "true"; description "Prepend global ASN when advertising routes to BGP peer"; } } // container local-as container import { presence "Enter the 'import' context"; description "Enable the import context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Specifies the name of the import policy. The name of the policy is limited to 64 characters except for the first policy."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container import container export { presence "Enter the 'export' context"; description "Enable the export context"; leaf-list policy { type union { type types-sros:policy-expr-string; type string; } min-elements 1; max-elements 15; ordered-by user; description "Export policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container export container extended-nh-encoding { presence "Enter the 'extended-nh-encoding' context"; description "Enable the extended-nh-encoding context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container extended-nh-encoding container advertise-ipv6-next-hops { presence "Enter the 'advertise-ipv6-next-hops' context"; description "Enable the advertise-ipv6-next-hops context"; leaf ipv4 { type boolean; default "false"; description "Enable/disable family type ipv4."; } } // container advertise-ipv6-next-hops container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf restart-time { type uint32 { range "0..4095"; } default "300"; description "Restart time advertised by GR capability"; } leaf stale-routes-time { type uint32 { range "1..3600"; } default "360"; description "Maximum time to maintain routes after graceful restart"; } leaf gr-notification { type boolean; default "false"; description "Perform graceful restart procedures after NOTIFICATION"; } container long-lived { presence "Enter the 'long-lived' context"; description "Enable the long-lived context"; leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "Advertised long-lived stale time for LLGR routes"; } leaf helper-override-stale-time { type uint32 { range "0..16777215"; } description "Locally-configured stale routes override time"; } leaf helper-override-restart-time { type uint32 { range "0..4095"; } description "Locally-configured override for restart time"; } leaf forwarding-bits-set { type enumeration { enum "none" { value 0; } enum "all" { value 1; } enum "non-fwd" { value 2; } } default "none"; description "BGP LLGR forwarding-bit behavior for address family"; } leaf advertise-stale-to-all-neighbors { type boolean; default "false"; description "Advertise stale routes to all BGP peers"; } leaf without-no-export { type boolean; default "false"; description "Advertise LLGR stale routes to non-LLGR peers"; } list family { key "family-type"; description "Enter the family list instance"; leaf family-type { type types-bgp:vprn-bgp-llgr-family-identifiers; description "Address family type for LLGR"; } leaf advertised-stale-time { type uint32 { range "0..16777215"; } default "86400"; description "LLGR stale routes time for family override"; } leaf helper-override-stale-time { type uint32 { range "0..16777216"; } default "16777216"; description "Locally-configured stale routes override time"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list family } // container long-lived } // container graceful-restart list prefix-limit { key "family"; description "Enter the prefix-limit list instance"; leaf family { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 3; } enum "mcast-ipv4" { value 4; } enum "flow-ipv4" { value 10; } enum "flow-ipv6" { value 14; } enum "mcast-ipv6" { value 16; } enum "label-ipv4" { value 17; } } description "Address family to which the limit applies"; } leaf maximum { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of routes to be learned from a peer"; } leaf log-only { type boolean; default "false"; description "Send warning message at threshold instead of take-down"; } leaf threshold { type uint32 { range "1..100"; } default "90"; description "Percentage threshold that triggers a warning message"; } leaf idle-timeout { type int32 { range "1..1024"; } description "Time which BGP peering remains idle before reconnecting"; } leaf post-import { type boolean; default "false"; description "Apply limit only to routes accepted by import policies"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix-limit container monitor { presence "Enter the 'monitor' context"; description "Enable the monitor context"; leaf all-stations { type boolean; default "false"; description "Send BMP messages to all configured stations"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BMP monitoring"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container route-monitoring { description "Enter the route-monitoring context"; leaf pre-policy { type boolean; default "false"; description "Allow pre-policy route-monitoring messages to be sent"; } leaf post-policy { type boolean; default "false"; description "Allow post-policy route-monitoring messages to be sent"; } } // container route-monitoring list station { key "station-name"; max-elements 8; description "Add a list entry for station"; leaf station-name { type leafref { path "../../../../../../../bmp/station/name"; } description "BMP monitoring station"; } } // list station } // container monitor } // list neighbor } // container bgp container confederation { description "Enter the confederation context"; leaf confed-as-num { type inet:as-number { range "1..4294967295"; } description "Confederation number within an autonomous system"; } list members { key "as-number"; max-elements 256; description "Add a list entry for members"; leaf as-number { type inet:as-number { range "1..4294967295"; } description "Tertiary index for tBgpConfederation4ByteTable. Each confederation member entry is differentiated by an autonomous system number."; } } // list members } // container confederation container eth-cfm { description "Enter the eth-cfm context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container eth-cfm container maximum-ipv4-routes { description "Enter the maximum-ipv4-routes context"; leaf value { type int32 { range "1..2147483647"; } sros-ext:auto-restart-to-modify; description "Maximum number of routes that are configured on this virtual router"; } leaf log-only { type boolean; default "false"; description "Action when the maximum number of routes, held within a VRF context, is reached"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; description "Mid-level water marker for the number of routes which this VRF holds"; } } // container maximum-ipv4-routes container maximum-ipv6-routes { description "Enter the maximum-ipv6-routes context"; leaf value { type int32 { range "1..2147483647"; } sros-ext:auto-restart-to-modify; description "Maximum number of routes that are configured on this virtual router"; } leaf log-only { type boolean; default "false"; description "Action when the maximum number of routes, held within a VRF context, is reached"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; description "Mid-level water marker for the number of routes which this VRF holds"; } } // container maximum-ipv6-routes container mc-maximum-routes { description "Enter the mc-maximum-routes context"; leaf value { type int32 { range "1..2147483647"; } description "Maximum number of multicast routes to be configured on this virtual router"; } leaf log-only { type boolean; default "false"; description "Action when the maximum number of multicast routes, held within a VRF context, is reached"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; description "Mid-level water marker for the number of multicast routes which this VRF holds"; } } // container mc-maximum-routes container mss-adjust { presence "Enter the 'mss-adjust' context"; description "Enable the mss-adjust context"; leaf nat-group { type uint32; sros-ext:immutable; mandatory true; description "NAT group (including WLAN Gateway group) that executes the adjustment"; } leaf segment-size { type uint32 { range "160..10240"; } mandatory true; description "Intended value for the Maximum Segment Size (MSS) option in transmitted TCP SYN requests"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mss-adjust container reassembly { presence "Enter the 'reassembly' context"; description "Enable the reassembly context"; leaf nat-group { type uint32; sros-ext:immutable; description "NAT group (including WLAN Gateway group) that executes the reassembly"; } leaf to-base-network { type boolean; default "false"; description "Enable/disable sending reassembled traffic to network interface on base router"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container reassembly container sfm-overload { presence "Enter the 'sfm-overload' context"; description "Enable the sfm-overload context"; leaf holdoff-time { type uint32 { range "1..600"; } units "seconds"; description "The delay between the detection of the SFM condition and the IGP entering the overload state."; } } // container sfm-overload container mtrace2 { description "Enter the mtrace2 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multicast path tracing"; } leaf udp-port { type uint32 { range "1024..49151"; } default "5000"; description "Destination UDP port for mstat2|mtrace2 test, or unsolicited mstat2|mtrace2 packets"; } } // container mtrace2 list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Name of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the interface"; } leaf radius-auth-policy { type leafref { path "../../../../subscriber-mgmt/radius-authentication-policy/name"; } description "Authentication policy"; } leaf tunnel { type boolean; sros-ext:immutable; default "false"; description "Enable/disable tunnel interface"; } leaf static-tunnel-redundant-nexthop { type types-sros:ipv4-unicast-address; description "IPv4 address of the redundant next-hop for static ISA tunnels on this interface"; } leaf dynamic-tunnel-redundant-nexthop { type types-sros:ipv4-unicast-address; description "IPv4 address of the redundant next-hop for dynamic ISA tunnels on this interface"; } leaf loopback { type boolean; default "false"; description "Use interface as a loopback interface"; } leaf monitor-oper-group { type leafref { path "../../../oper-group/name"; } description "Operational group to monitor"; } leaf shcv-policy-ipv4 { when "not(../tunnel = 'true')"; type leafref { path "../../../../subscriber-mgmt/shcv-policy/name"; } description "Host connectivity IPv4 policy"; } leaf cpu-protection { type leafref { path "../../../../system/security/cpu-protection/policy/policy-id"; } description "CPU protection policy"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf tos-marking-state { type types-router:tos-marking-state; default "trusted"; description "TOS marking state"; } leaf ingress-stats { type boolean; default "false"; description "Collect ingress statistics"; } leaf mac-accounting { type boolean; default "false"; description "Enable MAC accounting functionality"; } leaf vas-if-type { when "../tunnel = 'false'"; type types-router:vas-if-type; description "VAS interface type"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf policy-accounting { type leafref { path "../../../../../routing-options/policy-accounting/policy-acct-template/name"; } description "Configure ingress policy accounting."; } leaf destination-class-lookup { type boolean; default "false"; description "Enable BGP destination class lookup"; } } // container ingress container load-balancing { description "Enter the load-balancing context"; leaf ip-load-balancing { type types-router:ip-load-balancing; default "both"; description "Configure IP load balancing algorithm."; } leaf spi-load-balancing { type boolean; default "false"; description "Allow use of SPI (Security Parameter Index) in hashing for ESP/AH encrypted IPv4/IPv6 traffic"; } leaf teid-load-balancing { type boolean; default "false"; description "Include TEID in hashing algorithm for GTP-U/C encapsulated traffic"; } } // container load-balancing container hold-time { when "../tunnel = 'false' or not(../loopback != 'false')"; description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv6 } // container hold-time container ping-template { presence "Enter the 'ping-template' context"; description "Enable the ping-template context"; leaf name { type leafref { path "../../../../../test-oam/icmp/ping-template/name"; } sros-ext:immutable; mandatory true; description "Ping template name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the ping template"; } leaf destination-address { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "Ping template destination address"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ping-template container cflowd-parameters { description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type types-router:cflowd-sampling; description "Unicast or multicast traffic"; } leaf type { when "not(../sampling-type = 'both')"; type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } mandatory true; description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sampling } // container cflowd-parameters container ipv4 { description "Enter the ipv4 context"; leaf tcp-mss { type types-router:ipv4-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf allow-directed-broadcasts { type boolean; default "false"; description "Forward directed broadcasts"; } leaf local-dhcp-server { when "../../tunnel = 'false'"; type leafref { path "../../../dhcp-server/dhcpv4/name"; } description "DHCP server for the interface"; } leaf qos-route-lookup { type types-router:qos-route-lookup; description "QoS Route lookup"; } leaf ip-helper-address { type types-sros:ipv4-unicast-address; description "Gateway address"; } container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container unnumbered { description "Enter the unnumbered context"; choice source { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IP address of the interface"; } } case ip-int-name { leaf ip-int-name { type types-sros:interface-name; description "Name of the interface"; } } } } // container unnumbered container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; mandatory true; description "Primary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container primary list secondary { key "address"; description "Enter the secondary list instance"; leaf address { type types-sros:ipv4-unicast-address; description "Secondary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf igp-inhibit { type boolean; default "false"; description "Secondary IP address that is not recognized as local interface by the running IGP"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list secondary container addresses { description "Enter the addresses context"; list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "IPv4 address for the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address } // container addresses container neighbor-discovery { when "../../tunnel = 'false'"; description "Enter the neighbor-discovery context"; leaf timeout { type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } leaf retry-timer { type uint32 { range "1..300"; } units "deciseconds"; default "50"; description "ARP retry interval"; } leaf learn-unsolicited { type boolean; default "false"; description "Learn new entries from any received NA message"; } leaf proactive-refresh { type boolean; default "false"; description "Send a single refresh message with no retries 30 seconds prior to entry timeout"; } leaf populate { type boolean; default "false"; description "Allow static and dynamic hosts to be populated in system ARP cache"; } leaf local-proxy-arp { type boolean; default "false"; description "Enable local proxy ARP on interface"; } leaf remote-proxy-arp { type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Proxy ARP policy name"; } leaf populate-host { status obsolete; type boolean; default "false"; description "Allow addition or deletion of host routes in route table derived from ARP entries in ARP cache"; } leaf route-tag { status obsolete; type types-router:route-tag; description "ARP route tag"; } container host-route { description "Enter the host-route context"; list populate { key "route-type"; description "Enter the populate list instance"; leaf route-type { type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } enum "evpn" { value 3; } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "1..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list populate } // container host-route container limit { description "Enter the limit context"; leaf max-entries { type types-router:ipv4-neighbor-limit; description "Maximum number of entries that can be learned"; } leaf log-only { type boolean; default "false"; description "Apply the limit to log entries only"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message"; } } // container limit container static-neighbor-unnumbered { when "../../unnumbered/ip-address or ../../unnumbered/ip-int-name"; presence "Enter the 'static-neighbor-unnumbered' context"; description "Enable the static-neighbor-unnumbered context"; leaf mac-address { type yang:mac-address; mandatory true; description "Media-dependent physical address"; } } // container static-neighbor-unnumbered list static-neighbor { when "not(../../unnumbered/ip-address) and not(../../unnumbered/ip-int-name)"; key "ipv4-address"; description "Enter the static-neighbor list instance"; leaf ipv4-address { type types-sros:ipv4-address; description "IPv4 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; mandatory true; description "Media-dependent physical address"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list static-neighbor } // container neighbor-discovery container dhcp { description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf python-policy { when "../../../tunnel = 'false'"; type leafref { path "../../../../../../python/python-policy/name"; } description "Python policy"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "IP addresses for DHCP server requests"; } leaf trusted { type boolean; default "false"; description "Relay untrusted packets"; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf relay-plain-bootp { when "../../../tunnel = 'false'"; type boolean; default "false"; description "Enable/disable relaying of plain BOOTP packets."; } leaf use-arp { when "../../../tunnel = 'false'"; type boolean; default "false"; description "Enable/disable the use of ARP to determine the destination Hw address."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP proxy server"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "The address used as source and siaddr when emulating a DHCP server."; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the circuit-id."; } } case ifindex { leaf ifindex { type empty; description "Use the interface index for the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in the option."; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf pool-name { type boolean; default "false"; description "Send the pool name in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "0..511999"; } default "0"; description "The maximum number of DHCPv4 leases."; } } // container lease-populate container relay-proxy { presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy } // container dhcp list vrrp { key "virtual-router-id"; description "Enter the vrrp list instance"; leaf virtual-router-id { type int32 { range "1..255"; } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Password for simple text authentication"; } leaf-list backup { type types-sros:ipv4-unicast-address; max-elements 16; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "1..2559"; } units "deciseconds"; default "10"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "false"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type leafref { path "../../../../../../vrrp/policy/policy-id"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ssh-reply { type boolean; default "false"; description "Allow non-owner master to reply to SSH requests"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type leafref { path "../../../../../oper-group/name"; } description "Operational group name associated with VRRP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "Destination IP address to be used for BFD session"; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; mandatory true; description "Name of interface running BFD"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container bfd-liveness } // list vrrp } // container ipv4 list spoke-sdp { key "sdp-bind-id"; max-elements 1; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf collect-stats { type boolean; default "false"; description "Allow agent to collect accounting statistics"; } leaf accounting-policy { type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Policy to collect accounting statistics"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf vc-type { type types-services:ies-sdp-bind-vc-type; sros-ext:immutable; default "ether"; description "Type of virtual circuit (VC) associated with the SDP binding"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf bfd-template { status obsolete; type leafref { path "../../../../../bfd/bfd-template/name"; } description "BFD template associated with SDP binding"; } choice label { case entropy { leaf entropy-label { type empty; description "Whether the use of entropy-label is enabled or not."; } } case hash { container hash-label { presence "Enter the 'hash-label' context"; description "Enable the hash-label context"; leaf signal-capability { type empty; description "To signal the hash label capability to the remote PE."; } } // container hash-label } } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../../qos/network/network-policy-name"; } description "Ingress network policy name applied to this SDP binding"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress Queue Group for this SDP binding"; } } // container fp-redirect-group } // container network } // container qos } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container qos { description "Enter the qos context"; container network { description "Enter the network context"; leaf policy-name { type leafref { path "../../../../../../../../qos/network/network-policy-name"; } description "Egress network policy name applied to this SDP binding"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port queue group for this SDP binding"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress Queue Group for this SDP binding."; } } // container port-redirect-group } // container network } // container qos } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container bfd-liveness { status obsolete; presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { status obsolete; type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness container bfd { description "Enter the bfd context"; leaf bfd-template { type leafref { path "../../../../../../bfd/bfd-template/name"; } description "BFD template associated with the SDP binding"; } leaf failure-action { type types-services:sbind-bfd-fail-action; default "none"; description "VCCV BFD action taken on the SDP binding"; } leaf wait-for-up-timer { type uint32 { range "1..60"; } units "seconds"; description "Time to wait for BFD up status"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf encap { type types-services:bfd-encap; default "ipv4"; description "BFD encapsulation used on the SDP binding"; } } // container bfd-liveness } // container bfd container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm } // list spoke-sdp list sap { key "sap-id"; max-elements 1; description "Enter the sap list instance"; leaf sap-id { type types-sros:sap; description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type leafref { path "../../../../../log/accounting-policy/policy-id"; } description "Accounting policy"; } leaf anti-spoof { type types-services:anti-spoof-option; description "Anti-spoof filtering"; } leaf bandwidth { type types-services:sap-bandwidth; units "kilobps"; description "SAP bandwidth"; } leaf calling-station-id { type types-sros:string-not-all-spaces { length "1..64"; } description "Calling station ID"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type leafref { path "../../../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Distributed CPU protection policy for SAP"; } leaf host-admin-state { type types-sros:admin-state; default "enable"; description "Enable/disable administrative state of hosts"; } leaf host-lockout-policy { type leafref { path "../../../../../subscriber-mgmt/host-lockout-policy/name"; } description "Host lockout policy"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf queue-group-redirect-list { type leafref { path "../../../../../../qos/queue-group-redirect-list/name"; } description "Queue group redirect list"; } container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type leafref { path "../../../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } container fp-redirect-group { description "Enter the fp-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Queue group instance"; } } // container fp-redirect-group container overrides { description "Enter the overrides context"; container ip-criteria { description "Enter the ip-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv4 criteria"; } } // container ip-criteria container ipv6-criteria { description "Enter the ipv6-criteria context"; leaf activate-entry-tag { type int32 { range "1..255"; } description "Tag ID activated for IPv6 criteria"; } } // container ipv6-criteria list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf monitor-depth { type boolean; default "false"; description "Monitor queue depth"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:ingress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer } // container overrides } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container aggregate-policer { description "Enter the aggregate-policer context"; leaf rate { type types-qos:aggr-policer-rate; default "max"; description "Aggregate policer rate to be used in kbps"; } leaf burst { type types-qos:aggr-policer-burst; default "default"; description "Aggregate policer burst"; } leaf cir { type types-qos:aggr-policer-cir; description "Aggregate policer cir to be used in kbps"; } leaf cbs { type types-qos:aggr-policer-cbs; description "Aggregate policer cbs"; } } // container aggregate-policer } // container ingress container egress { description "Enter the egress context"; leaf queue-group-redirect-list { type leafref { path "../../../../../../qos/queue-group-redirect-list/name"; } description "Queue group redirect list"; } container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type leafref { path "../../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Policy identifier"; } container port-redirect-group { description "Enter the port-redirect-group context"; leaf group-name { type leafref { path "../../../../../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "Policy for port redirect queue group"; } leaf instance { type types-services:qos-qgrp-instance-id; description "Instance of port queue group"; } } // container port-redirect-group container overrides { description "Enter the overrides context"; leaf hs-secondary-shaper { type types-sros:named-item; description "HS Secondary Shaper"; } container hsmda-queues { status obsolete; description "Enter the hsmda-queues context"; leaf secondary-shaper { status obsolete; type types-sros:named-item; description "Secondary shaper for the HSMDA queue"; } leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Packet byte offset for HSMDA queue"; } leaf wrr-policy { status obsolete; type leafref { path "../../../../../../../../../../qos/hsmda-wrr-policy/hsmda-wrr-policy-name"; } description "WRR policy for the HSMDA queue"; } list queue { status obsolete; key "queue-id"; description "Enter the queue list instance"; leaf queue-id { status obsolete; type leafref { path "../../../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../../policy-name]/hsmda-queues/queue/queue-id"; } description "Egress HSMDA queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; units "bytes"; description "Buffer space allowed for the queue"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; description "Administrative PIR rate."; } leaf slope-policy { status obsolete; type leafref { path "../../../../../../../../../../../qos/hsmda-slope-policy/hsmda-slope-policy-name"; } description "Name of the slope-policy which is used to override the default slope-policy for the named buffer pool."; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "Weight value for the HSMDA queue"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list queue } // container hsmda-queues list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type leafref { path "../../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Policer unique ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "Average packet-to-frame encapsulation overhead"; } leaf burst-limit { type union { type types-qos:bytes { range "1..14000000"; } type enumeration { enum "auto" { value -1; } } } description "Explicit shaping burst size of a queue."; } leaf cbs { type union { type uint32 { range "0..1048576"; } type enumeration { enum "auto" { value -1; } } } units "kilobytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "MBS"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; default "1"; description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Scheduling class weight."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf monitor-depth { status obsolete; type boolean; default "false"; description "Monitor queue depth"; } choice queue-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type types-services:sap-pir-rate-ovr; units "kilobps"; description "PIR rate"; } leaf cir { type types-services:sap-cir-rate-ovr; units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational PIR value"; } leaf cir { type types-qos:adaptation-rule-override; description "Constraint used when deriving the operational CIR value"; } } // container adaptation-rule container drop-tail { description "Enter the drop-tail context"; container low { description "Enter the low context"; leaf percent-reduction-from-mbs { type types-qos:burst-percent-or-default-override; description "Percentage reduction from the MBS for a queue drop tail"; } } // container low } // container drop-tail container parent { description "Enter the parent context"; leaf weight { type types-qos:weight-override; description "PIR parameter that overrides parent for queue group"; } leaf cir-weight { type types-qos:weight-override; description "CIR parameter that overrides parent for queue group"; } } // container parent container monitor-queue-depth { presence "Enter the 'monitor-queue-depth' context"; description "Enable the monitor-queue-depth context"; leaf fast-polling { type boolean; default "false"; description "Enable fast polling of the queue depth"; } leaf violation-threshold { type decimal64 { range "0.01..99.99"; fraction-digits 2; } description "Threshold for queue depth before violation is raised"; } } // container monitor-queue-depth container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type leafref { path "../../../../../../../../../../../qos/slope-policy/slope-policy-name"; } description "Name of slope-policy."; } } // container hs-wred-queue } // list queue list policer { key "policer-id"; description "Enter the policer list instance"; leaf policer-id { type leafref { path "../../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer unique ID"; } leaf cbs { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "CBS"; } leaf mbs { type union { type types-qos:bytes { range "0..1073741824"; } type enumeration { enum "auto" { value -1; } } } description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Size of each packet, handled by the policer, to be modified"; } leaf stat-mode { type types-qos:egress-policer-stat-mode; description "Mode of statistics collected by the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice policer-override-rate { case rate { container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "PIR rate"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "CIR rate"; } } // container rate } case percent-rate { container percent-rate { description "Enter the percent-rate context"; leaf pir { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "PIR percent rate"; } leaf cir { type decimal64 { range "0.00..100.00"; fraction-digits 2; } description "CIR percent rate"; } } // container percent-rate } } } // list policer list hs-wrr-group { key "group-id"; description "Enter the hs-wrr-group list instance"; leaf group-id { type leafref { path "../../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/hs-wrr-group/group-id"; } description "HS WRR group identifier"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Weight of scheduling class."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice rate-or-percent-rate { case rate { leaf rate { type union { type uint32 { range "1..2000000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; description "Administrative PIR."; } } case percent-rate { leaf percent-rate { type decimal64 { range "0.01..100.00"; fraction-digits 2; } description "Administrative PIR percent."; } } } } // list hs-wrr-group } // container overrides } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } container overrides { presence "Enter the 'overrides' context"; description "Enable the overrides context"; leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container root { description "Enter the root context"; leaf max-rate { type types-services:sap-max-rate-ovr; description "Maximum frame-based bandwidth limit"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of separation buffer space"; } list priority { key "priority-level"; description "Enter the priority list instance"; leaf priority-level { type types-qos:hierarchy-level; description "Priority level"; } leaf mbs-contribution { type union { type types-qos:bytes { range "0..16777216"; } type enumeration { enum "auto" { value -1; } } } units "bytes"; description "Minimum amount of cumulative buffer space allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type types-sros:named-item; description "Scheduler override policy name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container parent { description "Enter the parent context"; leaf weight { type types-qos:weight; description "Weight to be used by the scheduler for feeding this queue"; } leaf cir-weight { type types-qos:weight; description "Weight that is used by the scheduler until the committed rate for feeding this queue"; } } // container parent container rate { description "Enter the rate context"; leaf pir { type union { type int64 { range "1..6400000000"; } type enumeration { enum "max" { value -1; } } } description "Specifies the administrative PIR"; } leaf cir { type union { type int64 { range "0..6400000000"; } type enumeration { enum "sum" { value -3; } enum "max" { value -1; } } } description "Specifies the administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy container vlan-qos-policy { description "Enter the vlan-qos-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/vlan-qos-policy/vlan-qos-policy-name"; } description "Egress vlan-qos-policy name"; } } // container vlan-qos-policy container egress-remark-policy { description "Enter the egress-remark-policy context"; leaf policy-name { type leafref { path "../../../../../../../../qos/egress-remark-policy/egress-remark-policy-name"; } description "Egress-remark-policy name"; } } // container egress-remark-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } leaf cir { type union { type int32 { range "0..100000000"; } type enumeration { enum "max" { value -1; } } } units "kilobps"; default "0"; description "Specifies the administrative CIR."; } } // container agg-rate } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container fwd-wholesale { description "Enter the fwd-wholesale context"; leaf pppoe-service { type leafref { path "../../../../../epipe/service-name"; } description "PPPoE service name"; } } // container fwd-wholesale container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm list ip-tunnel { key "tunnel-name"; max-elements 1; description "Enter the ip-tunnel list instance"; leaf tunnel-name { type types-sros:interface-name; description "IP tunnel name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the tunnel"; } leaf description { type types-sros:description; sros-ext:auto-restart-to-modify; description "Text description"; } leaf clear-df-bit { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Clear the Do-not-Fragment bit"; } leaf delivery-service { type types-services:service-name; sros-ext:auto-restart-to-modify; description "Delivery service name"; } leaf dscp { type types-qos:dscp-name; sros-ext:auto-restart-to-modify; description "Differentiated Services Code Point (DSCP) name"; } leaf encapsulated-ip-mtu { type uint32 { range "512..9000"; } units "bytes"; sros-ext:auto-restart-to-modify; description "Encapsulated IP MTU of this tunnel"; } leaf ip-mtu { type uint32 { range "512..9000"; } units "bytes"; sros-ext:auto-restart-to-modify; description "IP MTU of this tunnel"; } leaf public-tcp-mss-adjust { type union { type uint32 { range "512..9000"; } type enumeration { enum "auto" { value 0; } } } units "bytes"; sros-ext:auto-restart-to-modify; description "TCP maximum segment size (MSS) on private network"; } leaf private-tcp-mss-adjust { type int32 { range "512..9000"; } units "bytes"; sros-ext:auto-restart-to-modify; description "TCP maximum segment size (MSS) on private network"; } leaf reassembly { type union { type int32 { range "1..5000"; } type enumeration { enum "use-tunnel-group-setting" { value -1; } enum "none" { value 0; } } } units "milliseconds"; sros-ext:auto-restart-to-modify; description "Reassembly wait time"; } leaf remote-ip-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Remote IP address of this tunnel"; } leaf backup-remote-ip-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Backup remote IP address that is applied to this tunnel"; } leaf local-ip-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "Local IP address of this tunnel"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container icmp6-generation { sros-ext:auto-restart-to-modify; description "Enter the icmp6-generation context"; container packet-too-big { sros-ext:auto-restart-to-modify; description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; description "Administrative state of sending Packet Too Big messages"; } leaf number { type uint32 { range "10..1000"; } sros-ext:auto-restart-to-modify; default "100"; description "Number of packet-too-big ICMPv6 messages issued in a specified time frame"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; sros-ext:auto-restart-to-modify; default "10"; description "Time frame to limit the number of packet-too-big ICMPv6 messages"; } } // container packet-too-big } // container icmp6-generation container gre-header { sros-ext:auto-restart-to-modify; description "Enter the gre-header context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; description "Administrative state of the GRE header in the tunnel"; } container key { sros-ext:auto-restart-to-modify; description "Enter the key context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the keys in the GRE header"; } leaf send { type uint32; sros-ext:auto-restart-to-modify; default "0"; description "Send key of a GRE header"; } leaf receive { type uint32; sros-ext:auto-restart-to-modify; default "0"; description "Receive key of a GRE header"; } } // container key } // container gre-header list dest-ip { key "dest-ip-address"; sros-ext:auto-restart-to-modify; description "Add a list entry for dest-ip"; leaf dest-ip-address { type types-sros:ip-address; description "Destination IP address of the tunnel"; } } // list dest-ip } // list ip-tunnel list ipsec-gateway { key "name"; max-elements 1; description "Enter the ipsec-gateway list instance"; leaf name { type types-sros:named-item; description "IPsec gateway name."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec gateway."; } leaf default-tunnel-template { type leafref { path "../../../../../../ipsec/tunnel-template/id"; } description "The IPsec tunnel template ID."; } leaf ike-policy { type leafref { path "../../../../../../ipsec/ike-policy/id"; } description "IKE policy ID."; } leaf pre-shared-key { type types-sros:encrypted-leaf { length "1..115"; } description "The pre-shared key used for authentication by two peers forming the tunnel for the IPSec gateway."; } leaf ts-list { type leafref { path "../../../../../../ipsec/ts-list/name"; } description "The name of Traffic Selector (TS) list, used for IKEv2 TS negotiation."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container dhcp-address-assignment { description "Enter the dhcp-address-assignment context"; container dhcpv4 { presence "Enter the 'dhcpv4' context"; description "Enable the dhcpv4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec DHCPv4 server."; } leaf gi-address { type types-sros:ipv4-unicast-address; description "The giaddr of relayed DHCPv4 header."; } leaf send-release { type boolean; default "true"; description "Send DHCPv4 release messages."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container server { description "Enter the server context"; leaf-list address { type types-sros:ipv4-unicast-address; max-elements 8; description "The DHCPv4 server addresses."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance to reach the DHCPv4 server."; } } // container server } // container dhcpv4 container dhcpv6 { presence "Enter the 'dhcpv6' context"; description "Enable the dhcpv6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the IPsec DHCPv6 server."; } leaf link-address { type types-sros:ipv6-unicast-address; description "The link-address in DHCPv6 relay packet."; } leaf send-release { type boolean; default "true"; description "Send DHCPv6 release messages when a tunnel is down."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container server { description "Enter the server context"; leaf-list address { type types-sros:ipv6-unicast-address; max-elements 8; description "The DHCPv6 server addresses."; } leaf router-instance { type types-sros:router-instance-base-vprn-loose; description "Router instance to reach the DHCPv6 server."; } } // container server } // container dhcpv6 } // container dhcp-address-assignment container cert { description "Enter the cert context"; leaf cert-profile { type leafref { path "../../../../../../../ipsec/cert-profile/name"; } description "Certificate profile name."; } leaf trust-anchor-profile { type leafref { path "../../../../../../../ipsec/trust-anchor-profile/name"; } description "Trust anchor profile."; } container status-verify { description "Enter the status-verify context"; leaf default-result { type enumeration { enum "revoked" { value 0; } enum "good" { value 1; } } default "revoked"; description "The default result of Certificate Status Verification (CSV)."; } leaf primary { type types-ipsec:cert-revocation-status; default "crl"; description "The primary method used to verify the peer certificate's revocation status."; } leaf secondary { type types-ipsec:cert-revocation-status-with-none; default "none"; description "The secondary method used to verify the peer certificate's revocation status."; } } // container status-verify } // container cert container client-db { presence "Enter the 'client-db' context"; description "Enable the client-db context"; leaf name { type leafref { path "../../../../../../../ipsec/client-db/name"; } mandatory true; description "IPsec client database name."; } leaf fallback { type boolean; default "true"; description "Fall back to the tunnel authentication and creation attribute as if client-db is not configured when IPsec database client matching has failed."; } } // container client-db container default-secure-service { presence "Enter the 'default-secure-service' context"; description "Enable the default-secure-service context"; leaf service-name { type types-services:service-name; sros-ext:auto-restart-to-modify; description "Administrative service name"; } leaf interface { type types-sros:interface-name; sros-ext:auto-restart-to-modify; description "The name of the default interface used by this IPsec gateway."; } } // container default-secure-service container local { description "Enter the local context"; leaf gateway-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "The IPsec gateway address."; } container address-assignment { presence "Enter the 'address-assignment' context"; description "Enable the address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignments"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf router-instance { type types-sros:router-instance-base-vprn-loose; mandatory true; description "Router instance hosting the DHCPv4 connection."; } leaf dhcp-server { type types-sros:named-item; mandatory true; description "Local DHCPv4 server name"; } leaf pool { type types-sros:named-item; mandatory true; description "Name of the pool defined in the specified DHCPv4 server"; } leaf secondary-pool { type types-sros:named-item; description "Name of the secondary pool defined in the DHCPv4 server"; } } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf router-instance { type types-sros:router-instance-base-vprn-loose; mandatory true; description "Router instance hosting the DHCPv6 connection."; } leaf dhcp-server { type types-sros:named-item; mandatory true; description "Local DHCPv6 server name"; } leaf pool { type types-sros:named-item; mandatory true; description "Name of the secondary pool defined in the DHCPv6 server"; } } // container ipv6 } // container address-assignment container id { description "Enter the id context"; choice id { default "auto"; case auto { leaf auto { type empty; sros-ext:auto-restart-to-modify; description "System picks a local ID automatically based on auth-method configured in ike-policy."; } } case ipv4 { leaf ipv4 { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "The IPv4 Local ID."; } } case ipv6 { leaf ipv6 { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "The IPv6 Local ID."; } } case fqdn { leaf fqdn { type types-sros:fully-qualified-domain-name; sros-ext:auto-restart-to-modify; description "The Fully Qualified Domain Name (FQDN) Local ID."; } } } } // container id } // container local container radius { description "Enter the radius context"; leaf accounting-policy { type leafref { path "../../../../../../../ipsec/radius/accounting-policy/name"; } description "RADIUS accounting policy."; } leaf authentication-policy { type leafref { path "../../../../../../../ipsec/radius/authentication-policy/name"; } description "RADIUS authentication policy."; } } // container radius container max-history-key-records { description "Enter the max-history-key-records context"; leaf ike { type uint32 { range "1..3"; } description "The maximum number of historical IKE keys which can be recorded by the system."; } leaf esp { type uint32 { range "1..48"; } description "The maximum number of historical ESP keys which can be recorded by the system."; } } // container max-history-key-records } // list ipsec-gateway list ipsec-tunnel { key "name"; description "Enter the ipsec-tunnel list instance"; leaf name { type types-sros:named-item { pattern "[a-zA-Z]+.*" { error-message "IPSec tunnel name cannot start with a number"; } } description "IPsec ipsec name."; } leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the IPsec tunnel."; } leaf description { type types-sros:description; description "Text description"; } leaf clear-df-bit { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Clear Do-not-Fragment bit."; } leaf encapsulated-ip-mtu { type uint32 { range "512..9000"; } units "bytes"; sros-ext:auto-restart-to-modify; description "Encapsulated IP MTU of this tunnel."; } leaf ip-mtu { type uint32 { range "512..9000"; } units "bytes"; sros-ext:auto-restart-to-modify; description "IP MTU of this tunnel."; } leaf replay-window { type uint32 { range "32|64|128|256|512"; } units "packets"; sros-ext:auto-restart-to-modify; description "Anti replay window size."; } leaf public-tcp-mss-adjust { type union { type uint32 { range "512..9000"; } type enumeration { enum "auto" { value 0; } } } units "bytes"; sros-ext:auto-restart-to-modify; description "TCP maximum segment size (MSS) on public network."; } leaf private-tcp-mss-adjust { type int32 { range "512..9000"; } units "bytes"; sros-ext:auto-restart-to-modify; description "TCP maximum segment size (MSS) on private network."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container bfd { sros-ext:auto-restart-to-modify; description "Enter the bfd context"; leaf bfd-designate { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable BFD designated tunnel."; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; sros-ext:auto-restart-to-modify; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; mandatory true; description "Destination address for this BFD session."; } leaf interface { type types-sros:interface-name; sros-ext:auto-restart-to-modify; mandatory true; description "The name of the interface used by this BFD session."; } leaf service-name { type types-services:service-name; sros-ext:auto-restart-to-modify; mandatory true; description "Administrative service name"; } } // container bfd-liveness } // container bfd container icmp6-generation { sros-ext:auto-restart-to-modify; description "Enter the icmp6-generation context"; container packet-too-big { sros-ext:auto-restart-to-modify; description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "enable"; description "Send packet-too-big messages"; } leaf message-count { type uint32 { range "10..1000"; } sros-ext:auto-restart-to-modify; default "100"; description "The maximum number of ICMPv6 messages that can be sent during the period specified by 'interval'."; } leaf interval { type uint32 { range "1..60"; } units "seconds"; sros-ext:auto-restart-to-modify; default "10"; description "The maximum interval that the ICMPv6 messages can be sent."; } } // container packet-too-big } // container icmp6-generation container key-exchange { sros-ext:auto-restart-to-modify; description "Enter the key-exchange context"; choice type { case dynamic { container dynamic { presence "Enter the 'dynamic' context"; sros-ext:auto-restart-to-modify; description "Enable the dynamic context"; leaf auto-establish { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Whether to attempt to establish a IKE SA automatically."; } leaf ike-policy { type leafref { path "../../../../../../../../ipsec/ike-policy/id"; } sros-ext:auto-restart-to-modify; description "IKE policy ID."; } leaf-list ipsec-transform { type leafref { path "../../../../../../../../ipsec/ipsec-transform/id"; } max-elements 4; sros-ext:auto-restart-to-modify; description "IPsec transform used by the dynamic key."; } leaf pre-shared-key { type types-sros:encrypted-leaf { length "1..115"; } sros-ext:auto-restart-to-modify; description "The shared secret between the two peers forming the tunnel."; } container cert { sros-ext:auto-restart-to-modify; description "Enter the cert context"; leaf cert-profile { type leafref { path "../../../../../../../../../ipsec/cert-profile/name"; } description "Certificate profile name."; } leaf trust-anchor-profile { type leafref { path "../../../../../../../../../ipsec/trust-anchor-profile/name"; } description "Trust anchor profile."; } container status-verify { sros-ext:auto-restart-to-modify; description "Enter the status-verify context"; leaf default-result { type enumeration { enum "revoked" { value 0; } enum "good" { value 1; } } default "revoked"; description "The default result of Certificate Status Verification (CSV)."; } leaf primary { type types-ipsec:cert-revocation-status; default "crl"; description "The primary method used to verify the peer certificate's revocation status."; } leaf secondary { type types-ipsec:cert-revocation-status-with-none; default "none"; description "The secondary method used to verify the peer certificate's revocation status."; } } // container status-verify } // container cert container id { sros-ext:auto-restart-to-modify; description "Enter the id context"; choice id { case ipv4 { leaf ipv4 { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "The IPv4 Local ID."; } } case ipv6 { leaf ipv6 { type types-sros:ip-address; sros-ext:auto-restart-to-modify; description "The IPv6 Local ID."; } } case fqdn { leaf fqdn { type types-sros:fully-qualified-domain-name; sros-ext:auto-restart-to-modify; description "The Fully Qualified Domain Name (FQDN) Local ID."; } } } } // container id } // container dynamic } case manual { container manual { presence "Enter the 'manual' context"; sros-ext:auto-restart-to-modify; description "Enable the manual context"; list keys { key "security-association direction"; sros-ext:auto-restart-to-modify; description "Enter the keys list instance"; leaf security-association { type uint32 { range "1..16"; } description "The unique identifier of an security association (SA)."; } leaf direction { type enumeration { enum "inbound" { value 1; } enum "outbound" { value 2; } } description "The direction on the IPsec tunnel to which this SA can be applied."; } leaf ipsec-transform { type leafref { path "../../../../../../../../../ipsec/ipsec-transform/id"; } sros-ext:immutable; sros-ext:auto-restart-to-modify; mandatory true; description "IPsec transform used by the manual key."; } leaf spi { type uint32 { range "256..16383"; } sros-ext:immutable; sros-ext:auto-restart-to-modify; mandatory true; description "Security Parameter Index (SPI)."; } leaf authentication-key { type types-sros:hex-string { length "1..130"; } sros-ext:immutable; sros-ext:auto-restart-to-modify; description "The key value used for the authentication algorithm defined by the IPsec transform."; } leaf encryption-key { type types-sros:hex-string { length "1..66"; } sros-ext:immutable; sros-ext:auto-restart-to-modify; description "The key value used for the encryption algorithm defined by the IPsec transform."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // list keys } // container manual } } } // container key-exchange container max-history-key-records { sros-ext:auto-restart-to-modify; description "Enter the max-history-key-records context"; leaf ike { type uint32 { range "1..3"; } sros-ext:auto-restart-to-modify; description "The maximum number of historical IKE keys which can be recorded by the system."; } leaf esp { type uint32 { range "1..48"; } sros-ext:auto-restart-to-modify; description "The maximum number of historical ESP keys which can be recorded by the system."; } } // container max-history-key-records container tunnel-endpoint { presence "Enter the 'tunnel-endpoint' context"; sros-ext:auto-restart-to-modify; description "Enable the tunnel-endpoint context"; leaf local-gateway-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; mandatory true; description "The IPsec local gateway address for this tunnel."; } leaf remote-ip-address { type types-sros:ip-address; sros-ext:auto-restart-to-modify; mandatory true; description "Remote IP address of this tunnel."; } leaf delivery-service { type types-services:service-name; sros-ext:auto-restart-to-modify; mandatory true; description "Delivery service name."; } } // container tunnel-endpoint list dest-ip { key "address"; max-elements 16; sros-ext:auto-restart-to-modify; description "Add a list entry for dest-ip"; leaf address { type types-sros:ip-address; description "Private IP address of the remote IP tunnel endpoint"; } } // list dest-ip container security-policy { sros-ext:auto-restart-to-modify; description "Enter the security-policy context"; leaf id { type leafref { path "../../../../../ipsec/security-policy/id"; } sros-ext:auto-restart-to-modify; description "Security policy ID"; } leaf strict-match { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "The system does a strict match when it receives a CREATE_CHILD exchange request, which is not for rekey, for this IPsec tunnel."; } } // container security-policy } // list ipsec-tunnel container static-host { description "Enter the static-host context"; list ipv4 { key "ip mac"; description "Enter the ipv4 list instance"; leaf ip { type types-sros:ipv4-address; description "IP address"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type leafref { path "../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Sub-profile name"; } leaf sla-profile { type leafref { path "../../../../../../../subscriber-mgmt/sla-profile/name"; } description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id } // list ipv4 } // container static-host } // list sap list vpls { when "../tunnel = 'false'"; key "vpls-name"; max-elements 1; description "Enter the vpls list instance"; leaf vpls-name { type types-sros:named-item-64; description "VPLS service"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container evpn { description "Enter the evpn context"; container arp { description "Enter the arp context"; leaf learn-dynamic { type boolean; default "true"; description "Process ARP or ND messages on EVPN tunnels"; } leaf flood-garp-and-unknown-req { type boolean; default "true"; description "Allow CPM originated ARP frames to flood R-VPLS service"; } list advertise { key "route-type"; description "Enter the advertise list instance"; leaf route-type { type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "0..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list advertise } // container arp container nd { description "Enter the nd context"; leaf learn-dynamic { type boolean; default "true"; description "Process ARP or ND messages on EVPN tunnels"; } list advertise { key "route-type"; description "Enter the advertise list instance"; leaf route-type { type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "0..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list advertise } // container nd } // container evpn container evpn-tunnel { presence "Enter the 'evpn-tunnel' context"; description "Enable the evpn-tunnel context"; leaf ipv6-gateway-address { type enumeration { enum "ip" { value 0; } enum "mac" { value 1; } } default "ip"; description "Type of IPv6 gateway address"; } leaf supplementary-broadcast-domain { type boolean; default "false"; description "Use the EVPN tunnel as a Supplementary Broadcast Domain"; } } // container evpn-tunnel container egress { description "Enter the egress context"; leaf reclassify-using-qos { type leafref { path "../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Egress QoS policy"; } container routed-override-filter { description "Enter the routed-override-filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container routed-override-filter } // container egress container ingress { description "Enter the ingress context"; container routed-override-filter { description "Enter the routed-override-filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container routed-override-filter } // container ingress } // list vpls container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf qos-route-lookup { type types-router:qos-route-lookup; description "QoS Route lookup"; } leaf forward-ipv4-packets { type boolean; default "false"; description "Forward unencapsulated IPv4 packets"; } leaf tcp-mss { type types-router:ipv6-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf duplicate-address-detection { type boolean; default "true"; description "Enable/disable Duplicate Address Detection"; } leaf local-dhcp-server { when "../../tunnel = 'false'"; type leafref { path "../../../dhcp-server/dhcpv6/name"; } description "DHCP server for the interface"; } container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container icmp6 { description "Enter the icmp6 context"; container packet-too-big { description "Enter the packet-too-big context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of packet-too-big messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of packet-too-big messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit packet-too-big messages"; } } // container packet-too-big container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of param-problem messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of parameter-problem messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit parameter problem messages"; } } // container param-problem container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Number of redirect messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit redirect messages"; } } // container redirects container time-exceeded { description "Enter the time-exceeded context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the time-exceeded messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of time-exceeded messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit time-exceeded messages"; } } // container time-exceeded container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Number of unreachable messages"; } leaf seconds { type uint16 { range "1..60"; } default "10"; description "Time to limit unreachable messages"; } } // container unreachables } // container icmp6 container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd container link-local-address { description "Enter the link-local-address context"; leaf address { type types-sros:ipv6-address; description "Link-local IPv6 address of this router interface"; } leaf duplicate-address-detection { type boolean; default "true"; description "Enable/disable Duplicate Address Detection."; } } // container link-local-address list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "IPv6 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..128"; } mandatory true; description "IPv6 address prefix length"; } leaf eui-64 { type boolean; sros-ext:immutable; default "false"; description "Form complete IPv6 address from supplied prefix and 64-bit interface identifier"; } leaf duplicate-address-detection { type boolean; sros-ext:immutable; default "true"; description "Enable/disable Duplicate Address Detection."; } leaf primary-preference { type uint32 { range "1..4294967295"; } description "Index assigned to the IPv6 address of the interface"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "Track the state of the SRRP instance on this IP address"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address container dhcp6 { when "../../tunnel = 'false'"; description "Enter the dhcp6 context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container relay { description "Enter the relay context"; leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 relay"; } leaf link-address { type types-sros:ipv6-address; description "Link address of the DHCPv6 relay messages"; } leaf neighbor-resolution { type boolean; default "false"; description "Enable neighbor resolution via DHCPv6 relay"; } leaf python-policy { type leafref { path "../../../../../../../python/python-policy/name"; } description "Python policy name"; } leaf source-address { type types-sros:ipv6-unicast-or-linklocal-address; description "Source IPv6 address of the DHCPv6 relay messages"; } leaf user-db { type leafref { path "../../../../../../../subscriber-mgmt/local-user-db/name"; } description "Local user database for authentication"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCPv6 server to which the DHCPv6 requests are forwarded"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container lease-populate { description "Enter the lease-populate context"; leaf max-nbr-of-leases { type int32 { range "0..32767"; } default "0"; description "Maximum number of lease states allocated by the DHCPv6 relay function, allowed on interface"; } container route-populate { description "Enter the route-populate context"; leaf na { type boolean; default "false"; description "Create route based on IA_NA prefix option in relay-reply message"; } leaf ta { type boolean; default "false"; description "Create route based on IA_TA prefix option in relay-reply message"; } container pd { presence "Enter the 'pd' context"; description "Enable the pd context"; leaf exclude { type boolean; default "false"; description "Create back hole route based on prefix exclude option in relay-reply message"; } } // container pd } // container route-populate } // container lease-populate container option { description "Enter the option context"; leaf remote-id { type boolean; default "false"; description "Allow remote ID option to be sent in the DHCPv6 relay packet"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container interface-id { description "Enter the interface-id context"; choice interface-id { case ascii-tuple { leaf ascii-tuple { type empty; description "Use ASCII-encoded concatenated tuple in interface ID option in DHCPv6 relay packet"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in interface ID option in DHCPv6 relay packet"; } } case if-index { leaf if-index { type empty; description "Use interface index in interface ID option in DHCPv6 relay packet"; } } case string { leaf string { type types-sros:string-not-all-spaces { length "1..80"; } description "String for interface ID option in DHCPv6 relay packet"; } } } } // container interface-id } // container option } // container relay container server { description "Enter the server context"; leaf max-nbr-of-leases { type int32 { range "0..8000"; } default "8000"; description "DHCPv6 leases allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container prefix-delegation { description "Enter the prefix-delegation context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the prefix delegation"; } list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "IPv6 prefix to be delegated"; } leaf preferred-lifetime { type types-services:ipv6-prefix-lifetime; units "seconds"; default "604800"; description "IPv6 prefix/mask preferred life time"; } leaf valid-lifetime { type types-services:ipv6-prefix-lifetime; units "seconds"; default "2592000"; description "IPv6 prefix/mask valid life time"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container client-id { description "Enter the client-id context"; leaf duid { type string { length "1..130"; } description "Requesting router ID"; } leaf iaid { type uint32 { range "1..4294967295"; } description "IAID from the requesting router that matches to delegate the prefix"; } } // container client-id } // list prefix } // container prefix-delegation } // container server } // container dhcp6 container neighbor-discovery { when "../../tunnel = 'false'"; description "Enter the neighbor-discovery context"; leaf reachable-time { type types-router:neighbor-discovery-reachable-time; description "Timer for neighbor reachability detection"; } leaf stale-time { type types-router:neighbor-discovery-stale-time; description "Time during which a neighbor discovery cache entry remains stale"; } leaf learn-unsolicited { type types-router:ipv6-address-type-selection; description "Type of entries learned from unsolicited NA messages"; } leaf proactive-refresh { type types-router:ipv6-address-type-selection; description "Neighbor entries to be refreshed proactively"; } leaf local-proxy-nd { type boolean; default "false"; description "Enable neighbor discovery on interface"; } leaf-list proxy-nd-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Name of the proxy Neighbor Discovery policies for the interface"; } leaf populate-host { status obsolete; type boolean; default "false"; description "Allow addition or deletion of host routes in route table derived from ARP entries in ARP cache"; } leaf route-tag { status obsolete; type types-router:route-tag; description "ARP route tag"; } container host-route { description "Enter the host-route context"; list populate { key "route-type"; description "Enter the populate list instance"; leaf route-type { type enumeration { enum "static" { value 1; } enum "dynamic" { value 2; } enum "evpn" { value 3; } } description "Type of ARP or ND entries that generate host routes"; } leaf route-tag { type uint32 { range "1..255"; } sros-ext:immutable; description "Tag value used with the host route from an ARP/ND entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list populate } // container host-route container secure-nd { description "Enter the secure-nd context"; leaf allow-unsecured-msgs { type boolean; default "true"; description "Accept unsecured messages"; } leaf public-key-min-bits { type uint32 { range "512..1024"; } default "1024"; description "Minimum acceptable key length for public keys"; } leaf security-parameter { type uint32 { range "0..1"; } default "1"; description "Security parameter in the generation of a cryptographical address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of secure neighbor discovery"; } } // container secure-nd container limit { description "Enter the limit context"; leaf max-entries { type types-router:ipv6-neighbor-limit; description "Maximum number of entries that can be learned on an IP interface"; } leaf log-only { type boolean; default "false"; description "Log warning messages at threshold or when limit is exceeded, however entries are learned above limit"; } leaf threshold { type uint32 { range "1..100"; } units "percent"; default "90"; description "Threshold value that triggers a warning message to be sent"; } } // container limit list static-neighbor { key "ipv6-address"; description "Enter the static-neighbor list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "IPv6 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; mandatory true; description "Media-dependent physical address"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list static-neighbor } // container neighbor-discovery list vrrp { key "virtual-router-id"; max-elements 1; description "Enter the vrrp list instance"; leaf virtual-router-id { type int32 { range "1..255"; } description "Virtual Router Identifier (VRID) for the VRRP virtual router instance"; } leaf-list backup { type types-sros:ipv6-address; max-elements 4; description "Virtual router IP addresses for the interface"; } leaf message-interval { type uint32 { range "10..4095"; } units "centiseconds"; default "100"; description "Interval for sending VRRP Advertisement messages"; } leaf owner { type boolean; sros-ext:immutable; default "false"; description "Designate virtual router instance as owning the virtual router IP addresses"; } leaf passive { type boolean; sros-ext:immutable; default "false"; description "Suppress the transmission and reception of VRRP advertisement messages"; } leaf init-delay { type uint32 { range "1..65535"; } units "seconds"; description "VRRP initialization delay timer"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address used by virtual router instance overriding the VRRP default derived from the VRID"; } leaf priority { type uint32 { range "1..255"; } description "Base priority for the VRRP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP"; } leaf master-int-inherit { type boolean; default "true"; description "Allow the master instance to dictate the master down timer"; } leaf ping-reply { type boolean; default "false"; description "Allow non-owner master to reply to ICMP echo requests"; } leaf policy { type leafref { path "../../../../../../vrrp/policy/policy-id"; } description "VRRP priority control policy associated with the virtual router instance"; } leaf preempt { type boolean; default "true"; description "Allow the VRRP to override an existing non-owner master"; } leaf telnet-reply { type boolean; default "false"; description "Allow non-owner master to reply to Telnet requests"; } leaf traceroute-reply { type boolean; default "false"; description "Allow non-owner master to reply to traceroute requests"; } leaf standby-forwarding { type boolean; default "false"; description "Allow the forwarding of packets by a standby router"; } leaf ntp-reply { type boolean; default "false"; description "Allow/disallow non-owner master to reply to NTP requests."; } leaf oper-group { type leafref { path "../../../../../oper-group/name"; } description "Operational group name associated with VRRP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv6-address; sros-ext:immutable; mandatory true; description "ip-address."; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; mandatory true; description "Name of interface running BFD"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container bfd-liveness } // list vrrp } // container ipv6 container if-attribute { description "Enter the if-attribute context"; leaf-list admin-group { type leafref { path "../../../../../routing-options/if-attribute/admin-group/group-name"; } max-elements 32; description "Names of the admin group memberships of the interface"; } list srlg-group { key "name"; description "Add a list entry for srlg-group"; leaf name { type leafref { path "../../../../../../routing-options/if-attribute/srlg-group/name"; } description "Shared Risk Link Group (SRLG) name."; } } // list srlg-group } // container if-attribute } // list interface list network-interface { key "interface-name"; description "Enter the network-interface list instance"; leaf interface-name { type types-sros:interface-name; description "The administrative name assigned to this router interface. The interface name must be unique among entries with the same vRtrID value."; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the interface"; } leaf cpu-protection { type leafref { path "../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM Protection policy associated with an interface"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf tos-marking-state { type types-router:tos-marking-state; default "trusted"; description "TOS marking state"; } leaf dist-cpu-protection { type leafref { path "../../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Distributed CPU protection policy"; } leaf ingress-stats { type boolean; default "false"; description "Collect ingress statistics"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice port-binding { case port-encap { leaf port { type types-sros:port-and-encap; description "Port to bind the interface"; } } case loopback { leaf loopback { type empty; description "Use interface as a loopback interface"; } } } container egress { description "Enter the egress context"; container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container filter } // container egress container ingress { description "Enter the ingress context"; container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container filter } // container ingress container load-balancing { description "Enter the load-balancing context"; leaf lsr-load-balancing { type types-router:lsr-load-balancing; description "LSR load balancing algorithm"; } leaf ip-load-balancing { type types-router:ip-load-balancing; default "both"; description "Configure IP load balancing algorithm."; } leaf spi-load-balancing { type boolean; default "false"; description "Allow use of SPI (Security Parameter Index) in hashing for ESP/AH encrypted IPv4/IPv6 traffic"; } leaf teid-load-balancing { type boolean; default "false"; description "Include TEID in hashing algorithm for GTP-U/C encapsulated traffic"; } } // container load-balancing container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 } // container hold-time container cflowd-parameters { description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type types-router:cflowd-sampling; description "Unicast or multicast traffic"; } leaf type { when "not(../sampling-type = 'both')"; type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } mandatory true; description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sampling } // container cflowd-parameters container qos { description "Enter the qos context"; leaf network-policy { type leafref { path "../../../../../qos/network/network-policy-name"; } description "Network policy name associated with a network interface"; } leaf egress-port-redirect-group { type leafref { path "../../../../../qos/queue-group-templates/egress/queue-group/egress-queue-group-name"; } description "QoS queue group name"; } leaf egress-instance { type types-services:qos-qgrp-instance-id; description "Instance of the port egress queue group for this interface"; } leaf ingress-fp-redirect-group { type leafref { path "../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "Forwarding-plane queue group policy for this interface"; } leaf ingress-instance { type types-services:qos-qgrp-instance-id; description "Instance of the forwarding-plane ingress queue group for this interface"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container qos container ipv4 { description "Enter the ipv4 context"; leaf tcp-mss { type types-router:ipv4-tcp-mss-ext; description "TCP maximum segment size for the interface"; } leaf allow-directed-broadcasts { type boolean; default "false"; description "Accept broadcasts that are directed to this interface"; } container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf ignore-default { type boolean; default "false"; description "Ignore default route when performing a uRPF check"; } leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; mandatory true; description "Primary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container primary list secondary { key "address"; description "Enter the secondary list instance"; leaf address { type types-sros:ipv4-unicast-address; description "Secondary IPv4 address assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf igp-inhibit { type boolean; default "false"; description "Secondary IP address that is not recognized as local interface by the running IGP"; } leaf broadcast { type types-services:broadcast-address-format; default "host-ones"; description "Broadcast address format"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list secondary container bfd { description "Enter the bfd context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BFD sessions"; } leaf transmit-interval { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD transmit interval over this interface"; } leaf receive { type uint32 { range "10..100000"; } units "milliseconds"; default "100"; description "BFD receive interval over this interface"; } leaf multiplier { type uint32 { range "1..20"; } default "3"; description "Number of consecutive BFD messages missed from the peer"; } leaf echo-receive { type uint32 { range "100..100000"; } units "milliseconds"; description "Minimum echo interval over this interface"; } leaf type { type enumeration { enum "cpm-np" { value 1; } enum "auto" { value 2; } enum "fp" { value 3; } } default "auto"; description "Local termination point for BFD session"; } } // container bfd container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf timeout { type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } leaf retry-timer { type uint32 { range "1..300"; } units "deciseconds"; default "50"; description "ARP retry interval"; } list static-neighbor { key "ipv4-address"; description "Enter the static-neighbor list instance"; leaf ipv4-address { type types-sros:ipv4-address; description "IPv4 address corresponding to the media-dependent physical address"; } leaf mac-address { type yang:mac-address; mandatory true; description "Media-dependent physical address"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list static-neighbor } // container neighbor-discovery } // container ipv4 } // list network-interface list redundant-interface { key "interface-name"; description "Enter the redundant-interface list instance"; leaf interface-name { type types-sros:interface-name; description "Name of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the interface"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 } // container hold-time list spoke-sdp { key "sdp-bind-id"; max-elements 1; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf control-word { type boolean; default "false"; description "Use the control word as preferred"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container filter } // container ingress container egress { description "Enter the egress context"; leaf vc-label { type types-services:egress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label that is used to send packets to the far end device through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container filter } // container egress } // list spoke-sdp container ipv4 { description "Enter the ipv4 context"; container primary { presence "Enter the 'primary' context"; description "Enable the primary context"; leaf address { type types-sros:ipv4-unicast-address; mandatory true; description "IPv4 address to be assigned to the interface"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "The prefix length 0..32 for IPv4 Address."; } leaf remote-ip { type types-sros:ipv4-unicast-address; description "IP address of the remote redundant interface."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container primary } // container ipv4 } // list redundant-interface list ip-mirror-interface { key "interface-name"; description "Enter the ip-mirror-interface list instance"; leaf interface-name { type types-sros:interface-name; description "Name of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the interface"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list spoke-sdp { key "sdp-bind-id"; max-elements 1; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SDP binding to the service"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf vc-label { type types-services:ingress-vc-label; sros-ext:auto-restart-to-modify; description "Static MPLS VC label used by the far end device to send packets through this SDP"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container filter } // container ingress } // list spoke-sdp } // list ip-mirror-interface container ipv6 { description "Enter the ipv6 context"; container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf reachable-time { type types-router:neighbor-discovery-reachable-time; default "30"; description "Timer for neighbor reachability detection"; } leaf stale-time { type types-router:neighbor-discovery-stale-time; default "14400"; description "Neighbor discovery cache entry stale time"; } } // container neighbor-discovery container router-advertisement { description "Enter the router-advertisement context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container dns-options { presence "Enter the 'dns-options' context"; description "Enable the dns-options context"; leaf rdnss-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type int32 { range "0|4..3600"; } } units "seconds"; default "infinite"; description "Maximum time over which the RDNSS address is valid"; } leaf-list server { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "Router advertisements that are forwarded to servers"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dns-options list interface { key "ip-int-name"; description "Enter the interface list instance"; leaf ip-int-name { type leafref { path "../../../../interface/interface-name"; } description "VPRN interface name"; } leaf current-hop-limit { type uint16 { range "0..255"; } default "64"; description "Hop limit to advertise in router advertisement messages"; } leaf managed-configuration { type boolean; default "false"; description "Set the managed address configuration flag"; } leaf max-advertisement-interval { type uint32 { range "4..1800"; } units "seconds"; default "600"; description "Maximum time between sending router advertisement msgs"; } leaf min-advertisement-interval { type uint32 { range "3..1350"; } units "seconds"; default "200"; description "Minimum time between sending router advertisement msgs"; } leaf mtu { type uint32 { range "1280..9800"; } description "MTU for sending packets to the router"; } leaf other-stateful-configuration { type boolean; default "false"; description "Set the other configuration flag"; } leaf reachable-time { type uint32 { range "0..3600000"; } units "milliseconds"; default "0"; description "Time the router is reachable by other hosts or nodes"; } leaf retransmit-time { type uint32 { range "0..1800000"; } units "milliseconds"; default "0"; description "Time to advertise ICMPv6 ND router advertisement msgs"; } leaf router-lifetime { type uint32 { range "0|4..9000"; } units "seconds"; default "1800"; description "Lifetime value in ICMPv6 ND router advertisement msgs"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf use-virtual-mac { type boolean; default "false"; description "Send router advert msg using VRRP virtual MAC addr"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container dns-options { presence "Enter the 'dns-options' context"; description "Enable the dns-options context"; leaf include-rdnss { type boolean; default "true"; description "Include the RDNSS option in the router advertisement"; } leaf rdnss-lifetime { type union { type int32 { range "0|4..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Maximum time over which the RDNSS address 25 is valid"; } leaf-list server { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "Router advertisements that are forwarded to servers"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dns-options list prefix { key "ipv6-prefix"; max-elements 254; description "Enter the prefix list instance"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "IPv6 address prefix"; } leaf autonomous { type boolean; default "true"; description "Set the autonomous flag value"; } leaf on-link { type boolean; default "true"; description "Use prefix for on-link determination"; } leaf preferred-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type uint32 { range "0..4294967294"; } } units "seconds"; default "604800"; description "Remaining time that the prefix remains preferred"; } leaf valid-lifetime { type union { type enumeration { enum "infinite" { value -1; } } type uint32 { range "0..4294967294"; } } units "seconds"; default "2592000"; description "Remaining time in which the prefix is still valid"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // list interface } // container router-advertisement } // container ipv6 list spoke-sdp { key "sdp-bind-id"; description "Enter the spoke-sdp list instance"; leaf sdp-bind-id { type types-services:sdp-bind-id; description "SDP Binding identifier as :. sdp-id - [1..32767] vc-id - [1..4294967295]."; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list spoke-sdp container source-address { description "Enter the source-address context"; list ipv4 { key "application"; description "Enter the ipv4 list instance"; leaf application { type enumeration { enum "telnet" { value 1; } enum "ssh" { value 3; } enum "ping" { value 8; } enum "traceroute" { value 9; } enum "ntp" { value 12; } enum "cflowd" { value 13; } enum "ptp" { value 23; } enum "icmp-error" { value 29; } } description "Source IP address for the application"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source { mandatory true; case interface-name { leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Interface name whose IP address to be used in all packets sent by the application"; } } case address { leaf address { type types-sros:ipv4-address; sros-ext:immutable; description "Source IPv4 address to be used in all packets sent by the application"; } } } } // list ipv4 list ipv6 { key "application"; description "Enter the ipv6 list instance"; leaf application { type enumeration { enum "telnet" { value 14; } enum "ping" { value 20; } enum "traceroute" { value 21; } enum "cflowd" { value 25; } enum "ntp" { value 26; } enum "icmp6-error" { value 30; } } description "Source IPv6 address for the application"; } leaf address { type types-sros:ipv6-address; sros-ext:immutable; mandatory true; description "Source IPv6 address to be used in all packets sent by the application"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ipv6 } // container source-address container static-routes { description "Enter the static-routes context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hold-down { presence "Enter the 'hold-down' context"; description "Enable the hold-down context"; leaf initial { type uint32 { range "1..65535"; } mandatory true; description "Value for the initial hold down time"; } leaf multiplier { type uint32 { range "1..10"; } mandatory true; description "Value by which the previous hold-down time is multiplied to calculate the new one"; } leaf max-value { type uint32 { range "1..65535"; } mandatory true; description "Maximum value of the hold down time"; } } // container hold-down list route { key "ip-prefix route-type"; description "Enter the route list instance"; leaf ip-prefix { type types-sros:ip-prefix; description "IP prefix and prefix length for the static routes"; } leaf route-type { type types-router:unicast-multicast; description "Indicates the type of that static-route being configured, either for unicast routing or for use with multicast rpf."; } leaf-list community { type types-sros:community; max-elements 12; ordered-by user; description "Community ID associated with the static route"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf backup-tag { type uint32 { range "1..max"; } description "Configure static route backup tag."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container blackhole { presence "Enter the 'blackhole' context"; description "Enable the blackhole context"; leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf generate-icmp { type boolean; default "false"; description "Send ICMP unreachable messages when received packets match a static route with black-hole next-hop"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container prefix-list { description "Enter the prefix-list context"; leaf name { type leafref { path "../../../../../../../policy-options/prefix-list/name"; } description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list } // container blackhole container grt { presence "Enter the 'grt' context"; description "Enable the grt context"; leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container grt list indirect { key "ip-address"; description "Enter the indirect list instance"; leaf ip-address { type types-sros:ip-address; description "Indirect next hop for static routes"; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type leafref { path "../../../../../../../policy-options/prefix-list/name"; } description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type types-sros:ip-address; description "IP address of the target CPE device."; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cpe-check } // list indirect list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Router interface name."; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Load-balancing weight for all of the ECMP next hops"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type leafref { path "../../../../../../../policy-options/prefix-list/name"; } description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type types-sros:ip-address; description "IP address of the target CPE device."; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cpe-check } // list interface list ipsec-tunnel { key "ipsec-tunnel-name"; description "Enter the ipsec-tunnel list instance"; leaf ipsec-tunnel-name { type types-sros:named-item; description "Ipsec tunnel name."; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos } // list ipsec-tunnel list next-hop { key "ip-address"; description "Enter the next-hop list instance"; leaf ip-address { type types-sros:ip-address-with-zone; description "IP address of the next-hop."; } leaf description { type types-sros:description-allow-all-white-spaces; description "Text description"; } leaf metric { type uint32 { range "0..65535"; } default "1"; description "Static route metric"; } leaf preference { type uint32 { range "1..255"; } default "5"; description "Priority of this static route over the routes from different sources"; } leaf tag { type uint32 { range "1..max"; } description "Static route tag"; } leaf community { type types-sros:community; description "Community ID associated with the static route"; } leaf destination-class { type types-sros:class-index; description "Destination class for this static route"; } leaf source-class { type types-sros:class-index; description "Source class for this static route"; } leaf bfd-liveness { type boolean; default "false"; description "Use Bidirectional Forwarding Detection on this static route"; } leaf validate-next-hop { type boolean; default "false"; description "Track the state of the next hop in the IPv4 ARP Cache or the IPv6 Neighbor Cache"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Load-balancing weight for all of the ECMP next hops"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of the static route next hop"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container qos { description "Enter the qos context"; leaf forwarding-class { type types-sros:fc-name; description "Forwarding class associated with the static route"; } leaf priority { type types-sros:priority; description "Static route priority"; } } // container qos container prefix-list { description "Enter the prefix-list context"; leaf name { type leafref { path "../../../../../../../policy-options/prefix-list/name"; } description "Name of a prefix list to match"; } leaf flag { type enumeration { enum "any" { value 0; } enum "all" { value 1; } enum "none" { value 2; } } default "any"; description "Static route match condition from prefixes in specified prefix list"; } } // container prefix-list container backup-next-hop { description "Enter the backup-next-hop context"; leaf address { type types-sros:ip-address; description "This is the backup next-hop ip address."; } } // container backup-next-hop list cpe-check { key "address"; max-elements 1; description "Enter the cpe-check list instance"; leaf address { type types-sros:ip-address; description "IP address of the target CPE device."; } leaf drop-count { type uint32 { range "1..255"; } default "3"; description "Number of consecutive ping replies that are missed before declaring the CPE down"; } leaf interval { type uint32 { range "1..255"; } units "seconds"; default "1"; description "Time between ICMP pings to the target CPE IP address"; } leaf log { type boolean; default "false"; description "Log the transitions between active and inactive based on the CPE connectivity check"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Padding size for the ICMP ping test packet of the CPE connectivity check"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cpe-check } // list next-hop } // list route } // container static-routes container flowspec { description "Enter the flowspec context"; leaf ip-filter-max-size { type uint32 { range "0..262143"; } default "512"; description "Maximum number of flowspec rule entries in IPv4 filter"; } leaf ipv6-filter-max-size { type uint32 { range "0..262143"; } default "512"; description "Maximum number of flowspec rule entries in IPv6 filter"; } leaf filter-cam-type { type enumeration { enum "normal" { value 0; } enum "packet-length" { value 2; } } default "normal"; description "Filter policy type for FlowSpec embedding"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container flowspec container log { description "Enter the log context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list filter { key "filter-name"; max-elements 1500; description "Enter the filter list instance"; leaf filter-name { type types-log:log-filter-name; description "The value of name uniquely identifies an event log filter"; } leaf description { type types-sros:description; description "Text description"; } leaf default-action { type types-log:filter-action; default "forward"; description "Default action for the event filter"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { status obsolete; key "entry-id"; description "Enter the entry list instance"; leaf entry-id { status obsolete; type uint32 { range "1..999"; } description "Identification number for an event log filter parameter"; } leaf description { status obsolete; type types-sros:description; description "Text description"; } leaf action { status obsolete; type types-log:filter-action; description "Action for this event filter entry"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { status obsolete; description "Enter the match context"; container application { status obsolete; description "Enter the application context"; choice application-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-log:application-obsolete; description "Application to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-log:application-obsolete; description "Application to be filtered out"; } } } } // container application container message { status obsolete; description "Enter the message context"; leaf regexp { status obsolete; type boolean; default "false"; description "String comparison to determine if the log event matches the value of pattern"; } choice message-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type string { length "1..400"; } description "Log event message to match"; } } case neq { status obsolete; leaf neq { status obsolete; type string { length "1..400"; } description "Log event message to be filtered out"; } } } } // container message container event { status obsolete; description "Enter the event context"; choice event-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type uint32 { range "1..max"; } description "Log event message to match"; } } case neq { status obsolete; leaf neq { status obsolete; type uint32 { range "1..max"; } description "Log event message to filter out"; } } case lt { status obsolete; leaf lt { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case lte { status obsolete; leaf lte { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gt { status obsolete; leaf gt { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gte { status obsolete; leaf gte { status obsolete; type uint32 { range "1..max"; } description "Number of the log event to match"; } } } } // container event container severity { status obsolete; description "Enter the severity context"; choice severity-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-log:severity-level; description "Log event severity level to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-log:severity-level; description "Log event severity level to filter out"; } } case lt { status obsolete; leaf lt { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case lte { status obsolete; leaf lte { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case gt { status obsolete; leaf gt { status obsolete; type types-log:severity-level; description "Log event severity level"; } } case gte { status obsolete; leaf gte { status obsolete; type types-log:severity-level; description "Log event severity level"; } } } } // container severity container subject { status obsolete; description "Enter the subject context"; leaf regexp { status obsolete; type boolean; default "false"; description "String comparison to determine if the log event matches the value of subject"; } choice subject-match { status obsolete; case eq { status obsolete; leaf eq { status obsolete; type types-sros:named-item; description "Log event subject string to match"; } } case neq { status obsolete; leaf neq { status obsolete; type types-sros:named-item; description "Log event subject string to filter out"; } } } } // container subject } // container match } // list entry list named-entry { key "entry-name"; max-elements 999; ordered-by user; description "Enter the named-entry list instance"; leaf entry-name { type types-log:log-filter-entry-name; description "The value of name uniquely identifies an event log filter entry"; } leaf description { type types-sros:description; description "Text description"; } leaf action { type types-log:filter-action; description "Action for this event filter entry"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; container application { description "Enter the application context"; choice application-match { case eq { leaf eq { type types-log:application; description "Application to match"; } } case neq { leaf neq { type types-log:application; description "Application to be filtered out"; } } } } // container application container message { description "Enter the message context"; leaf regexp { type boolean; default "false"; description "String comparison to determine if the log event matches the value of pattern"; } choice message-match { case eq { leaf eq { type string { length "1..400"; } description "Log event message to match"; } } case neq { leaf neq { type string { length "1..400"; } description "Log event message to be filtered out"; } } } } // container message container event { description "Enter the event context"; choice event-match { case eq { leaf eq { type uint32 { range "1..max"; } description "Log event message to match"; } } case neq { leaf neq { type uint32 { range "1..max"; } description "Log event message to filter out"; } } case lt { leaf lt { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case lte { leaf lte { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gt { leaf gt { type uint32 { range "1..max"; } description "Number of the log event to match"; } } case gte { leaf gte { type uint32 { range "1..max"; } description "Number of the log event to match"; } } } } // container event container severity { description "Enter the severity context"; choice severity-match { case eq { leaf eq { type types-log:severity-level; description "Log event severity level to match"; } } case neq { leaf neq { type types-log:severity-level; description "Log event severity level to filter out"; } } case lt { leaf lt { type types-log:severity-level; description "Log event severity level"; } } case lte { leaf lte { type types-log:severity-level; description "Log event severity level"; } } case gt { leaf gt { type types-log:severity-level; description "Log event severity level"; } } case gte { leaf gte { type types-log:severity-level; description "Log event severity level"; } } } } // container severity container subject { description "Enter the subject context"; leaf regexp { type boolean; default "false"; description "String comparison to determine if the log event matches the value of subject"; } choice subject-match { case eq { leaf eq { type types-sros:named-item; description "Log event subject string to match"; } } case neq { leaf neq { type types-sros:named-item; description "Log event subject string to filter out"; } } } } // container subject } // container match } // list named-entry } // list filter list log-id { key "name"; max-elements 30; description "Enter the log-id list instance"; leaf name { type types-log:li-log-name; description "The value of name uniquely identifies an event stream log."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the log"; } leaf description { type types-sros:description; description "Text description"; } leaf netconf-stream { type types-sros:named-item; description "Destination NETCONF stream name"; } leaf time-format { type enumeration { enum "utc" { value 1; } enum "local" { value 2; } } default "utc"; description "Time zone displayed for log events"; } leaf filter { type leafref { path "../../filter/filter-name"; } description "Filter for this log's source event stream to limit the event output in this log destination"; } leaf python-policy { type leafref { path "../../../../../python/python-policy/name"; } description "Python policy name"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container source { description "Enter the source context"; leaf main { type boolean; default "false"; description "Collect log events from the main event stream"; } leaf security { type boolean; default "false"; description "Collect log events from the security event stream"; } leaf change { type boolean; default "false"; description "Collect log events from the change event stream"; } leaf debug { type boolean; default "false"; description "Collect log events from the debug event stream"; } } // container source container destination { description "Enter the destination context"; choice log-id-destination { case syslog { leaf syslog { type leafref { path "../../../syslog/syslog-name"; } sros-ext:immutable; description "Index with the information to format event messages sent to a specific SYSLOG collector"; } } case snmp { container snmp { presence "Enter the 'snmp' context"; description "Enable the snmp context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this snmp log."; } } // container snmp } case netconf { container netconf { presence "Enter the 'netconf' context"; description "Enable the netconf context"; leaf max-entries { type uint32 { range "50..3000"; } sros-ext:immutable; default "100"; description "Number of events stored in this netconf log."; } } // container netconf } } } // container destination } // list log-id list snmp-trap-group { key "log-name"; description "Enter the snmp-trap-group list instance"; leaf log-name { type types-log:svc-vprn-snmp-trap-group-name; description "SNMP notification group to be associated with the event log for vprn."; } leaf description { type types-sros:description; description "Text description"; } leaf log-id { type int32 { range "1..100"; } sros-ext:immutable; description "SNMP notification group associated with the event log"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list trap-target { key "name"; max-elements 25; description "Enter the trap-target list instance"; leaf name { type string { length "1..28"; } description "Name for an SNMP notification destination within the SNMP notification group"; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; mandatory true; description "IP address of the trap receiver"; } leaf port { type types-qos:tcp-udp-match-port; default "162"; description "UDP port number to send messages to this remote SNMP notification collector"; } leaf version { type enumeration { enum "snmpv1" { value 0; } enum "snmpv2c" { value 1; } enum "snmpv3" { value 3; } } default "snmpv3"; description "SNMP version to format notification messages sent to this SNMP notification collector"; } leaf notify-community { type string { length "1..31"; } mandatory true; description "SNMPv1 or SNMPv2c community name string, or SNMPv3 security name, for sending a notification"; } leaf security-level { type enumeration { enum "no-auth-no-privacy" { value 1; } enum "auth-no-privacy" { value 2; } enum "privacy" { value 3; } } default "no-auth-no-privacy"; description "Security level at which SNMP notification messages are sent to SNMP notification collector"; } leaf replay { type boolean; default "false"; description "Retransmit missed notifications"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list trap-target } // list snmp-trap-group list syslog { key "syslog-name"; max-elements 30; description "Enter the syslog list instance"; leaf syslog-name { type types-log:log-vprn-syslog-name; description "Unique arbitrary identifier for this syslog collector target."; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; description "Target syslog host address"; } leaf facility { type enumeration { enum "kernel" { value 0; } enum "user" { value 1; } enum "mail" { value 2; } enum "systemd" { value 3; } enum "auth" { value 4; } enum "syslogd" { value 5; } enum "printer" { value 6; } enum "netnews" { value 7; } enum "uucp" { value 8; } enum "cron" { value 9; } enum "authpriv" { value 10; } enum "ftp" { value 11; } enum "ntp" { value 12; } enum "logaudit" { value 13; } enum "logalert" { value 14; } enum "cron2" { value 15; } enum "local0" { value 16; } enum "local1" { value 17; } enum "local2" { value 18; } enum "local3" { value 19; } enum "local4" { value 20; } enum "local5" { value 21; } enum "local6" { value 22; } enum "local7" { value 23; } } default "local7"; description "Facility code for messages"; } leaf severity { type enumeration { enum "emergency" { value 0; } enum "alert" { value 1; } enum "critical" { value 2; } enum "error" { value 3; } enum "warning" { value 4; } enum "notice" { value 5; } enum "info" { value 6; } enum "debug" { value 7; } } default "info"; description "Severity level threshold for the syslog message"; } leaf log-prefix { type union { type enumeration { enum "no-prefix" { value -1; } } type string { length "1..32"; pattern "([!-9;<>-~])+" { error-message "String must contain only printable characters between 33 - 126 ASCII except ':' and '='"; } } } default "TMNX"; description "String that is prepended to every log message sent to this target syslog host"; } leaf port { type types-qos:tcp-udp-match-port; default "514"; description "UDP port to generate syslog messages"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list syslog } // container log container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IGMP host tracking"; } leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; default "260"; description "Time during which the system continues to track inactive hosts"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container igmp-host-tracking container pcp { description "Enter the pcp context"; list server { key "name"; max-elements 8; description "Enter the server list instance"; leaf name { type types-sros:named-item; description "PCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this PCP server"; } leaf description { type types-sros:description; description "Text description"; } leaf dual-stack-lite-address { type types-sros:ipv6-unicast-address; description "Inside Dual Stack Lite AFTR address"; } leaf fwd-inside-router { type string; description "PCP forwarding inside virtual router instance"; } leaf policy { type leafref { path "../../../../nat/pcp-server-policy/name"; } description "PCP server policy"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list interface { key "name"; max-elements 32; description "Add a list entry for interface"; leaf name { type leafref { path "../../../../interface/interface-name"; } description "Interface name"; } } // list interface } // list server } // container pcp container bgp-vpn-backup { description "Enter the bgp-vpn-backup context"; leaf ipv4 { type boolean; default "false"; description "Allows BGP-VPN routes to be used as backup paths for IPv4 prefixes."; } leaf ipv6 { type boolean; default "false"; description "Allows BGP-VPN routes to be used as backup paths for IPv6 prefixes."; } } // container bgp-vpn-backup container grt-leaking { description "Enter the grt-leaking context"; leaf export-limit { type uint32 { range "0..1000"; } default "5"; description "Maximum number of routes that can be exported."; } leaf export-v6-limit { type uint32 { range "0..1000"; } default "5"; description "Maximum number of IPv6 routes that can be exported."; } leaf grt-lookup { type boolean; default "false"; description "Enable/disable global route table lookup."; } leaf allow-local-management { type boolean; default "false"; description "Enable/disable management traffic from GRT-leaking enabled VPRN instances to reach local interfaces in the base routing instance."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container export-grt { description "Enter the export-grt context"; leaf-list policy-name { type union { type types-sros:policy-expr-string; type string; } max-elements 5; ordered-by user; description "Attribute policy-name for export-grt."; } } // container export-grt container import-grt { description "Enter the import-grt context"; leaf-list policy-name { type union { type types-sros:policy-expr-string; type string; } max-elements 5; ordered-by user; description "Attribute policy-name for import-grt."; } } // container import-grt } // container grt-leaking container gsmp { description "Enter the gsmp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of GSMP"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list group { key "name"; max-elements 1024; description "Enter the group list instance"; leaf name { type types-sros:named-item; description "GSMP neighbor group name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the GSMP group"; } leaf description { type types-sros:description; description "Text description"; } leaf keepalive { type types-sros:time-duration { range "1..25"; } units "seconds"; default "10"; description "Keepalive value for the GSMP connections in this group"; } leaf hold-multiplier { type uint32 { range "1..100"; } default "3"; description "Hold-multiplier for the GSMP connections in this group"; } leaf persistency { type boolean; default "false"; description "Store DSL line information when the GSMP connection terminates"; } leaf idle-filter { type boolean; default "false"; description "Filter ANCP messages from IDLE DSL lines"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ancp { description "Enter the ancp context"; leaf dynamic-topology-discovery { type boolean; default "true"; description "Enable the ANCP dynamic topology discovery capability"; } leaf oam { type boolean; default "false"; description "Enable GSMP ANCP OAM capability at startup of GSMP connection"; } } // container ancp list neighbor { key "remote-address"; description "Enter the neighbor list instance"; leaf remote-address { type types-sros:ipv4-unicast-address; description "GSMP neighbor remote IP address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the GSMP neighbor"; } leaf description { type types-sros:description; description "Text description"; } leaf local-address { type types-sros:ipv4-unicast-address; sros-ext:auto-restart-to-modify; description "Restrict connections to this local address only within the service running ANCP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container priority-marking { sros-ext:auto-restart-to-modify; description "Enter the priority-marking context"; choice priority-marking { case dscp { leaf dscp { type types-qos:dscp-name; sros-ext:auto-restart-to-modify; description "DSCP that is used while remarking the in profile packets"; } } case prec { leaf prec { type types-qos:precedence-value; sros-ext:auto-restart-to-modify; description "Precedence priority marking"; } } } } // container priority-marking } // list neighbor } // list group } // container gsmp container vxlan { description "Enter the vxlan context"; list tunnel-termination { key "ip-address"; description "Enter the tunnel-termination list instance"; leaf ip-address { type types-sros:ip-unicast-address; description "Non system IP address to terminate the VXLAN"; } leaf fpe-id { type leafref { path "../../../../../fwd-path-ext/fpe/fpe-id"; } sros-ext:immutable; mandatory true; description "FPE id for this entry"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list tunnel-termination } // container vxlan container ttl-propagate { description "Enter the ttl-propagate context"; leaf local { type types-router:vprn-ttl-propagate; default "use-base"; description "Manage TTL propagation from IP header into label stack for local packets."; } leaf transit { type types-router:vprn-ttl-propagate; default "use-base"; description "Manage TTL propagation from IP header into label stack for transit packets."; } } // container ttl-propagate container sgt-qos { description "Enter the sgt-qos context"; container dscp { description "Enter the dscp context"; list application { key "dscp-app-name"; description "Enter the application list instance"; leaf dscp-app-name { type types-router:dscp-app-name-vprn; description "DSCP application identifier on the NOKIA SR OS router that generates control traffic over IP"; } leaf dscp { type union { type types-qos:dscp-name; type int32 { range "0..63"; } } description "DSCP value to the traffic generated by this application"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list application list dscp-map { key "dscp-name"; description "Enter the dscp-map list instance"; leaf dscp-name { type types-qos:dscp-name; description "DSCP name mapped to forwarding class"; } leaf fc { type types-sros:fc-name; description "Value for the forwarding class for this mapping"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list dscp-map } // container dscp container dot1p { description "Enter the dot1p context"; list application { key "dot1p-app-name"; description "Enter the application list instance"; leaf dot1p-app-name { type types-router:dot1p-app-name; description "Dot1p application identifier on the NOKIA SR OS router that generates control traffic over IP"; } leaf dot1p { type union { type types-sros:fc-name; type int32 { range "0..7"; } } description "Dot1p value to the traffic generated by this application"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list application } // container dot1p } // container sgt-qos container snmp { description "Enter the snmp context"; leaf access { type boolean; default "false"; description "Enable/Disable SNMP access for the vprn service"; } list community { key "community-string"; description "Enter the community list instance"; leaf community-string { type types-sros:encrypted-leaf { length "1..114"; } description "Community string for which this entry represents a configuration. community-string - [64 chars max] hash-key - [113 chars max] hash2-key - [114 chars max]"; } leaf access-permissions { type enumeration { enum "r" { value 1; } enum "rw" { value 2; } } mandatory true; description "Community string for which this entry represents a configuration."; } leaf version { type enumeration { enum "v1" { value 1; } enum "v2c" { value 2; } enum "both" { value 3; } } default "both"; description "SNMP version."; } leaf source-access-list { type leafref { path "../../../../../system/security/snmp/source-access-list/list-name"; } description "The context in which management information is accessed when using the community string."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list community } // container snmp container network { description "Enter the network context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf urpf-check { type boolean; default "true"; description "Enable/disable URPF checking when the network interface is in selective VPRN mode"; } container qos { description "Enter the qos context"; leaf network-policy { type leafref { path "../../../../../../qos/network/network-policy-name"; } description "Network policy name associated with a VPRN"; } leaf fp-redirect-group { type leafref { path "../../../../../../qos/queue-group-templates/ingress/queue-group/ingress-queue-group-name"; } description "The forwarding-plane queue group Policy for this VPRN"; } leaf instance { type types-services:qos-qgrp-instance-id; description "The instance of the forwarding-plane ingress Queue Group for this VPRN"; } } // container qos container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter } // container ingress } // container network container management { presence "Enter the 'management' context"; description "Enable the management context"; leaf allow-telnet { type boolean; default "false"; description "Allow/disallow access to telnet server."; } leaf allow-telnet6 { type boolean; default "false"; description "Allow/disallow access to telnet IPv6 server."; } leaf allow-ftp { type boolean; default "false"; description "Allow/disallow access to ftp server."; } leaf allow-ssh { type boolean; default "false"; description "Allow/disallow access to ssh server."; } leaf allow-netconf { type boolean; default "false"; description "Allow/disallow access to netconf server."; } leaf allow-grpc { type boolean; default "false"; description "Allow/disallow access to grpc server."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container management container dhcp-server { description "Enter the dhcp-server context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list dhcpv4 { key "name"; description "Enter the dhcpv4 list instance"; leaf name { type types-sros:named-item; description "DHCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP server"; } leaf description { type types-sros:description; description "Text description"; } leaf user-db { type leafref { path "../../../../../subscriber-mgmt/local-user-db/name"; } description "Local user database for authentication"; } leaf user-identification { type enumeration { enum "mac-circuit-id" { value 1; } enum "duid" { value 2; } enum "interface-id" { value 3; } enum "interface-id-link-local" { value 4; } enum "client-id" { value 5; } enum "mac" { value 6; } enum "circuit-id" { value 7; } enum "remote-id" { value 8; } } sros-ext:auto-restart-to-modify; default "mac-circuit-id"; description "User identification method for the DHCP server"; } leaf force-renews { type boolean; default "false"; description "Send FORCERENEW messages to force renewals of leases"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pool-selection { description "Enter the pool-selection context"; container use-gi-address { presence "Enter the 'use-gi-address' context"; description "Enable the use-gi-address context"; leaf scope { type enumeration { enum "subnet" { value 0; } enum "pool" { value 1; } } default "subnet"; description "GI address-matching scope"; } } // container use-gi-address container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type types-sros:string-not-all-spaces { length "1"; } description "Delimiter to combine primary and secondary pool names"; } } // container use-pool-from-client } // container pool-selection container lease-hold { description "Enter the lease-hold context"; leaf time { type types-sros:time-duration { range "1..631152000"; } units "seconds"; description "Lease hold time"; } container additional-scenarios { description "Enter the additional-scenarios context"; leaf internal-lease-ipsec { type boolean; default "false"; description "Enable lease hold timer for internal IPsec clients"; } leaf solicited-release { type boolean; default "false"; description "Enable lease hold timer for solicited releases"; } } // container additional-scenarios } // container lease-hold container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "120"; description "Time between initialization and assuming active role"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type leafref { path "../../../../../../../redundancy/multi-chassis/peer/ip-address"; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Tag that identifies synchronizing server or pool pairs"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer } // container failover list pool { key "pool-name"; description "Enter the pool list instance"; leaf pool-name { type types-sros:named-item; description "DHCP server pool name"; } leaf description { type types-sros:description; description "Text description"; } leaf min-lease-time { type types-sros:time-duration { range "10..315446399"; } units "seconds"; default "600"; description "Minimum lease time"; } leaf max-lease-time { type types-sros:time-duration { range "10..315446399"; } units "seconds"; default "864000"; description "Maximum lease time"; } leaf offer-time { type types-sros:time-duration { range "10..600"; } units "seconds"; default "60"; description "Time interval during which a DHCP offer remains valid"; } leaf nak-non-matching-subnet { type boolean; default "false"; description "Send NAK if no match for request address pool range"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container minimum-free { description "Enter the minimum-free context"; leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when addresses are depleted"; } choice value { default "absolute"; case absolute { leaf absolute { type uint32 { range "0..255"; } default "1"; description "Minimum number of free addresses in this pool or subnet"; } } case percent { leaf percent { type uint32 { range "0..100"; } default "1"; description "Minimum free addresses as a percentage"; } } } } // container minimum-free container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } description "DHCP option to send identification strings to client"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { when "../number = 46 or ../number = 'netbios-node-type'"; type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type"; } } case duration { leaf duration { when "../number = 51 or ../number = 'lease-time' or ../number = 58 or ../number = 'lease-renew-time' or ../number = 59 or ../number = 'lease-rebind-time'"; type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration"; } } case ipv4-address { leaf-list ipv4-address { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses"; } } case empty { leaf empty { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type empty; description "Empty DHCP option."; } } } } // list option } // container options container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "120"; description "Time between initialization and assuming active role"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type leafref { path "../../../../../../../../redundancy/multi-chassis/peer/ip-address"; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Tag that identifies synchronizing server or pool pairs"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer } // container failover list subnet { key "ipv4-prefix"; description "Enter the subnet list instance"; leaf ipv4-prefix { type types-sros:ipv4-unicast-prefix; description "IPv4 prefix for the subnet"; } leaf drain { type boolean; default "false"; description "Prevent new lease assignment from this subnet"; } leaf maximum-declined { type uint32; default "64"; description "Maximum number of declined addresses allowed"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container minimum-free { description "Enter the minimum-free context"; leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when addresses are depleted"; } choice value { default "absolute"; case absolute { leaf absolute { type uint32 { range "0..255"; } default "1"; description "Minimum number of free addresses in this pool or subnet"; } } case percent { leaf percent { type uint32 { range "0..100"; } default "1"; description "Minimum free addresses as a percentage"; } } } } // container minimum-free container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } description "DHCP option to send identification strings to client"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { when "../number = 46 or ../number = 'netbios-node-type'"; type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type"; } } case duration { leaf duration { when "../number = 51 or ../number = 'lease-time' or ../number = 58 or ../number = 'lease-renew-time' or ../number = 59 or ../number = 'lease-rebind-time'"; type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration"; } } case ipv4-address { leaf-list ipv4-address { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses"; } } case empty { leaf empty { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type empty; description "Empty DHCP option."; } } } } // list option } // container options list address-range { key "start end"; description "Enter the address-range list instance"; leaf start { type types-sros:ipv4-unicast-address; description "Start address of this range"; } leaf end { type types-sros:ipv4-unicast-address; description "End address of this range"; } leaf failover-control-type { type types-dhcp:failover-control-type; sros-ext:immutable; default "local"; description "Failover control type for this range"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address-range list exclude-addresses { key "start end"; description "Add a list entry for exclude-addresses"; leaf start { type types-sros:ipv4-unicast-address; description "Start address of this range"; } leaf end { type types-sros:ipv4-unicast-address; description "End address of this range"; } } // list exclude-addresses } // list subnet } // list pool } // list dhcpv4 list dhcpv6 { key "name"; description "Enter the dhcpv6 list instance"; leaf name { type types-sros:named-item; description "DHCP server name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP server"; } leaf auto-provisioned { type boolean; sros-ext:immutable; default "false"; description "Auto-provision the pools of this server"; } leaf description { type types-sros:description; description "Text description"; } leaf user-identification { when "../auto-provisioned = 'false'"; type enumeration { enum "mac-circuit-id" { value 1; } enum "duid" { value 2; } enum "interface-id" { value 3; } enum "interface-id-link-local" { value 4; } enum "client-id" { value 5; } enum "mac" { value 6; } enum "circuit-id" { value 7; } enum "remote-id" { value 8; } } sros-ext:auto-restart-to-modify; default "duid"; description "User identification method for the DHCP server"; } leaf ignore-rapid-commit { type boolean; default "false"; description "Ignore Rapid Commit option"; } leaf interface-id-mapping { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Map hosts within interface-to-prefix combinations"; } leaf lease-query { when "../auto-provisioned = 'false'"; type boolean; default "false"; description "Handle and reply to lease query messages"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pool-selection { when "../auto-provisioned = 'false'"; description "Enter the pool-selection context"; container use-link-address { presence "Enter the 'use-link-address' context"; description "Enable the use-link-address context"; leaf scope { type enumeration { enum "subnet" { value 0; } enum "pool" { value 1; } } default "subnet"; description "Scope of the IP address selection"; } } // container use-link-address container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type types-sros:string-not-all-spaces { length "1"; } description "Delimiter to combine primary and secondary pool names"; } } // container use-pool-from-client } // container pool-selection container lease-hold { when "../auto-provisioned = 'false'"; description "Enter the lease-hold context"; leaf time { type types-sros:time-duration { range "1..631152000"; } units "seconds"; description "Lease hold time"; } container additional-scenarios { description "Enter the additional-scenarios context"; leaf internal-lease-ipsec { type boolean; default "false"; description "Enable lease hold timer for internal IPsec clients"; } leaf solicited-release { type boolean; default "false"; description "Enable lease hold timer for solicited releases"; } } // container additional-scenarios } // container lease-hold container server-id { when "../auto-provisioned = 'false'"; description "Enter the server-id context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { default "duid-link-local"; case duid-link-local { leaf duid-link-local { type empty; description "Derive DUID server ID from a system link-layer address"; } } case duid-enterprise { container duid-enterprise { description "Enter the duid-enterprise context"; choice duid-enterprise-value { case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..58"; } description "DUID enterprise server ID specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..118"; } description "DUID enterprise server ID specified as a hex string"; } } } } // container duid-enterprise } } } // container server-id container failover { when "../auto-provisioned = 'false'"; description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "120"; description "Time between initialization and assuming active role"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type leafref { path "../../../../../../../redundancy/multi-chassis/peer/ip-address"; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Tag that identifies synchronizing server or pool pairs"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer } // container failover container defaults { when "../auto-provisioned = 'true'"; description "Enter the defaults context"; leaf preferred-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "3600"; description "Time this lease remains preferred"; } leaf valid-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "86400"; description "Time for the lease to remain valid"; } leaf renew-time { type types-sros:time-duration { range "0..604800"; } units "seconds"; default "1800"; description "Renew time for the lease"; } leaf rebind-time { type types-sros:time-duration { range "0..1209600"; } units "seconds"; default "2880"; description "Rebind time for the lease"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } description "DHCP option number"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options } // container defaults list pool { when "../auto-provisioned = 'false'"; key "pool-name"; description "Enter the pool list instance"; leaf pool-name { type types-sros:named-item; description "DHCP server pool name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container delegated-prefix { description "Enter the delegated-prefix context"; leaf length { type uint32 { range "48..127"; } default "64"; description "Prefix length for pool if unspecified by client"; } leaf minimum { type uint32 { range "48..127"; } default "48"; description "Minimum delegated prefix length for this pool"; } leaf maximum { type uint32 { range "48..127"; } default "64"; description "Maximum delegated prefix length for this pool"; } } // container delegated-prefix container failover { description "Enter the failover context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the failover mechanism"; } leaf ignore-mclt-on-takeover { type boolean; default "false"; description "Ignore maximum client lead during takeover from partner"; } leaf maximum-client-lead-time { type types-sros:time-duration { range "600..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "600"; description "Maximum time that DHCP server can extend client's lease"; } leaf partner-down-delay { type types-sros:time-duration { range "0..86399"; } units "seconds"; sros-ext:auto-restart-to-modify; default "86399"; description "Delay to prevent lease duplication during link failure"; } leaf startup-wait-time { type types-sros:time-duration { range "60..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "120"; description "Time between initialization and assuming active role"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list peer { key "address"; max-elements 1; description "Enter the peer list instance"; leaf address { type leafref { path "../../../../../../../../redundancy/multi-chassis/peer/ip-address"; } description "IP address of the failover peer"; } leaf sync-tag { type types-sros:named-item; sros-ext:immutable; mandatory true; description "Tag that identifies synchronizing server or pool pairs"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer } // container failover list prefix-length-threshold { key "prefix-length"; max-elements 8; description "Enter the prefix-length-threshold list instance"; leaf prefix-length { type uint32 { range "1..128"; } description "Delegated prefix length for pool thresholds"; } leaf minimum-free-percent { type uint32 { range "0..100"; } default "0"; description "Percentage of free prefixes for this prefix length"; } leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when this pool is depleted"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix-length-threshold container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } description "DHCP option number"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "IPv6 prefix to be excluded from available pool prefixes"; } leaf failover-control-type { type types-dhcp:failover-control-type; sros-ext:immutable; default "local"; description "Failover control type for this range"; } leaf preferred-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "3600"; description "Time this lease remains preferred"; } leaf valid-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "86400"; description "Time for the lease to remain valid"; } leaf renew-time { type types-sros:time-duration { range "0..604800"; } units "seconds"; default "1800"; description "Renew time for the lease"; } leaf rebind-time { type types-sros:time-duration { range "0..1209600"; } units "seconds"; default "2880"; description "Rebind time for the lease"; } leaf drain { type boolean; default "false"; description "No new leases can be assigned"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container prefix-type { description "Enter the prefix-type context"; leaf pd { type boolean; sros-ext:immutable; default "true"; description "Allocate IA-PD prefixes from this prefix pool"; } leaf wan-host { type boolean; sros-ext:immutable; default "true"; description "Allocate IA-NA or SLAAC prefixes from this prefix pool"; } } // container prefix-type container options { description "Enter the options context"; list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } description "DHCP option number"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case duration { leaf duration { type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option specified as time"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list option } // container options list prefix-length-threshold { key "prefix-length"; max-elements 8; description "Enter the prefix-length-threshold list instance"; leaf prefix-length { type uint32 { range "1..128"; } description "Delegated prefix length for pool thresholds"; } leaf event-when-depleted { type boolean; default "false"; description "Generate a notification when this pool is depleted"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { case absolute { leaf absolute { type uint32 { range "1..4294967295"; } description "Minimum number of free prefixes for this prefix length"; } } case percent { leaf percent { type uint32 { range "1..100"; } description "Minimum percentage of free prefixes for prefix length"; } } } } // list prefix-length-threshold } // list prefix list exclude-prefix { key "ipv6-prefix"; description "Add a list entry for exclude-prefix"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "IPv6 prefix to be excluded from available pool prefixes"; } } // list exclude-prefix } // list pool } // list dhcpv6 } // container dhcp-server list isis { key "isis-instance"; description "Enter the isis list instance"; leaf isis-instance { type int32 { range "0..127"; } description "Instance ID for IS-IS instance"; } leaf authentication-keychain { type leafref { path "../../../../system/security/keychains/keychain/keychain-name"; } description "The keychain used to sign and/or authenticate."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication key to verify PDUs sent by neighboring routers"; } leaf authentication-type { type types-isis:auth-type; description "Authentication type"; } leaf csnp-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of complete sequence number PDU (CSNP) type"; } leaf psnp-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of partial sequence number PDU (PSNP) type"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of IS-IS instance"; } leaf advertise-passive-only { type boolean; default "false"; description "Advertise prefixes that belong to passive interfaces"; } leaf advertise-router-capability { type enumeration { enum "area" { value 2; } enum "as" { value 3; } } description "Advertise router capabilities to neighbors"; } leaf all-l1isis { type yang:mac-address; default "01:80:C2:00:00:14"; description "Destination MAC address for all L1 IS-IS routers"; } leaf all-l2isis { type yang:mac-address; default "01:80:C2:00:00:15"; description "Destination MAC address for all L2 IS-IS routers"; } leaf authentication-check { type boolean; default "true"; description "Perform authentication check to reject PDUs that do not match the type or key requirements"; } leaf default-route-tag { type uint32 { range "1..max"; } description "Route tag for default route"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf ignore-attached-bit { type boolean; default "false"; description "Ignore attached bit on received L1 LSPs to disable installation of default routes"; } leaf ignore-lsp-errors { type boolean; default "false"; description "Ignore LSP packets with errors"; } leaf ignore-narrow-metric { type boolean; default "false"; description "Ignore links with narrow metrics when wide-metrics support is enabled"; } leaf iid-tlv { type boolean; default "false"; description "Use IID TLVs with IS-IS multi-instance (MI)"; } leaf ipv4-multicast-routing { type types-isis:routing-topology; default "native"; description "IS-IS topology for IPv4 multicast routing"; } leaf ipv4-routing { type boolean; default "true"; description "Support IPv4 routing for IS-IS instance"; } leaf ipv6-routing { type types-isis:routing-topology; default "false"; description "Routing topology for IPv6"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf level-capability { type types-isis:level; description "Routing level for instance"; } leaf lsp-lifetime { type uint32 { range "350..65535"; } units "seconds"; sros-ext:manual-restart-to-modify; default "1200"; description "Amount of time during which an LSP is considered valid"; } leaf lsp-minimum-remaining-lifetime { type uint32 { range "350..65535"; } units "seconds"; description "Minimum value for the Remaining Lifetime of an LSP"; } leaf lsp-mtu-size { type types-isis:lsp-buffer-ext-size; units "bytes"; sros-ext:manual-restart-to-modify; default "1492"; description "LSP MTU size"; } leaf overload-export-interlevel { type boolean; default "false"; description "Advertise the inter-level routes when router is overloaded"; } leaf overload-export-external { type boolean; default "false"; description "Advertise the external routes when router is in overloaded"; } leaf poi-tlv { type boolean; default "false"; description "Purge Originator Identification TLV"; } leaf prefix-attributes-tlv { type boolean; default "false"; description "Use IS-IS Prefix Attributes TLV to exchange extended IPv4 and IPv6 reachability information"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; description "Reference bandwidth for bandwidth relative costing"; } leaf router-id { type types-igp:router-id; sros-ext:auto-restart-to-modify; description "Unique router ID for the ISIS instance"; } leaf standard-multi-instance { type boolean; default "false"; description "Enable RFC standards compliant multi-instance behavior"; } leaf strict-adjacency-check { type boolean; default "false"; description "Enable strict checking of address families for IS-IS adjacencies"; } leaf suppress-attached-bit { type boolean; default "false"; description "Allow IS-IS to suppress setting the attached bit on LSPs"; } leaf system-id { type types-igp:system-id; sros-ext:manual-restart-to-modify; description "System ID"; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf-list area-address { type types-isis:area-address; max-elements 3; description "Area address portion of NSAP address"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } mandatory true; description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for IS-IS"; } } // container graceful-restart container multi-topology { presence "Enter the 'multi-topology' context"; description "Enable the multi-topology context"; leaf ipv6-unicast { type boolean; default "false"; description "Support multi-topology TLVs"; } leaf ipv4-multicast { type boolean; default "false"; description "Support IPv4 topology (MT3)"; } } // container multi-topology container multicast-import { description "Enter the multicast-import context"; leaf ipv4 { type boolean; default "false"; description "Submit IPv4 routes into the multicast RPF of the RTM"; } } // container multicast-import container overload { presence "Enter the 'overload' context"; description "Enable the overload context"; leaf max-metric { type boolean; default "false"; description "Advertise transit links with maximum metric instead of setting overload bit"; } } // container overload container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "60..1800"; } units "seconds"; description "Time during which the router operates in overload state after reboot"; } leaf max-metric { type boolean; default "false"; description "Advertise transit links with maximum metric instead of setting overload bit"; } } // container overload-on-boot container prefix-limit { presence "Enter the 'prefix-limit' context"; description "Enable the prefix-limit context"; leaf limit { type uint32 { range "1..max"; } mandatory true; description "Maximum number of prefixes for IS-IS instance"; } leaf log-only { type boolean; default "false"; description "Send warning message at specified threshold or when limit is reached, without going into overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Specifies the percentage of the value defined by prefix-limit, at which a warning log message and SNMP notification would be sent. This would only be a warning and additional prefixes will be learned up to 100% of prefix-limit. A value of 0 indicates that the threshold is disabled and no log message or SNMP notification will be sent."; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Time router remains in overload after prefix limit is exceeded before restarting"; } } // container prefix-limit container lsp-refresh { description "Enter the lsp-refresh context"; leaf interval { type uint32 { range "150..65535"; } units "seconds"; default "600"; description "Refresh timer interval"; } leaf half-lifetime { type boolean; default "true"; description "Set the refresh interval to always be half the LSP lifetime"; } } // container lsp-refresh container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; choice type { case prefix-list { leaf prefix-list { type leafref { path "../../../../../../policy-options/prefix-list/name"; } description "List used to select routes processed at higher priority through OSPF route calculation process"; } } case tag { leaf tag { type uint32 { range "1..max"; } description "Value that matches IS-IS routes processed at higher priority through route calculation process"; } } } } // container high } // container rib-priority container timers { description "Enter the timers context"; container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between first and second SPF calculations"; } } // container spf-wait container lsp-wait { description "Enter the lsp-wait context"; leaf lsp-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of LSP generation"; } leaf lsp-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "10"; description "Initial LSP generation delay"; } leaf lsp-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Delay between first and second LSP generation"; } } // container lsp-wait } // container timers container unicast-import { description "Enter the unicast-import context"; leaf ipv4 { type boolean; default "true"; description "Submit IPv4 routes into unicast RTM"; } leaf ipv6 { type boolean; default "true"; description "Submit IPv6 routes into unicast RTM"; } } // container unicast-import container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude } // container loopfree-alternate list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Router interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of interface"; } leaf hello-authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication key or hash string for Hello PDUs"; } leaf hello-authentication-keychain { type leafref { path "../../../../../system/security/keychains/keychain/keychain-name"; } description "Authentication keychain to use for the session."; } leaf hello-authentication-type { type types-isis:auth-type; description "Hello authentication type"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf passive { type boolean; default "false"; description "Passive interface"; } leaf csnp-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time interval between successive CSN PDUs sent from interface"; } leaf default-instance { type boolean; default "false"; description "Allow non-MI capable router to establish an adjacency and operate with a router in non-zero instance"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf interface-type { type types-isis:interface-type; description "Interface type to broadcast, point-to-point, or to be default"; } leaf ipv4-multicast { type boolean; default "true"; description "Clear IPv4 multicast routing for interface"; } leaf ipv6-unicast { type boolean; default "true"; description "Clear IPv4 multicast routing for interface"; } leaf level-capability { type types-isis:level; description "IS-IS levels for this interface"; } leaf load-balancing-weight { type uint32; description "Load balancing weight"; } leaf lsp-pacing-interval { type uint32 { range "0..65535"; } units "milliseconds"; default "100"; description "Interval for sending LSPs from interface"; } leaf retransmit-interval { type uint32 { range "1..65535"; } units "seconds"; default "5"; description "Minimum time between LSP PDU retransmissions on point-to-point interface"; } leaf tag { type uint32 { range "1..max"; } description "Route tag for IP address of interface"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable Loopfree Alternative at interface level."; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type leafref { path "../../../../../../../routing-options/route-next-hop-policy/template/template-name"; } mandatory true; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate container mesh-group { presence "Enter the 'mesh-group' context"; description "Enable the mesh-group context"; choice type { case value { leaf value { type int32 { range "1..2000000000"; } description "Mesh group for the interface"; } } case blocked { leaf blocked { type empty; description "Prevent the interface from flooding LSPs"; } } } } // container mesh-group container bfd-liveness { description "Enter the bfd-liveness context"; container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf include-bfd-tlv { type boolean; default "false"; description "BFD-enabled TLV for IPv4 to include on this IS-IS interface"; } } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf include-bfd-tlv { type boolean; default "false"; description "BFD-enabled TLV for IPv4 to include on this IS-IS interface"; } } // container ipv6 } // container bfd-liveness list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type enumeration { enum "1" { value 1; } enum "2" { value 2; } } description "IS-IS protocol level to which these attributes apply"; } leaf hello-authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication or hash key string."; } leaf hello-authentication-keychain { type leafref { path "../../../../../../system/security/keychains/keychain/keychain-name"; } description "Authentication keychain to use for the session."; } leaf hello-authentication-type { type types-isis:auth-type; description "Hello-authentication-type to be enabled."; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf passive { type boolean; default "false"; description "Passive interface"; } leaf hello-interval { type uint32 { range "1..20000"; } units "seconds"; default "9"; description "Interval between Hello messages sent on this level"; } leaf hello-multiplier { type int32 { range "2..100"; } default "3"; description "Hello messages missed from neighbor before router declares adjacency down"; } leaf ipv4-multicast-metric { type types-isis:metric; description "IS-IS interface metric applied for IPv4 multicast"; } leaf ipv6-unicast-metric { type types-isis:metric; description "IS-IS interface metric applied for IPv6 unicast"; } leaf metric { type types-isis:metric; description "IS-IS interface metric applied for IPv4 unicast"; } leaf priority { type uint32 { range "0..127"; } default "64"; description "Router to become the designated router on a multi-access network"; } leaf sd-offset { type types-isis:metric; description "Value of the signal degrade offset"; } leaf sf-offset { type types-isis:metric; description "Value of the signal fail offset"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level } // list interface list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type enumeration { enum "1" { value 1; } enum "2" { value 2; } } description "IS-IS protocol level to which these attributes apply"; } leaf authentication-keychain { type leafref { path "../../../../../system/security/keychains/keychain/keychain-name"; } description "The keychain used to sign and/or authenticate."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..366"; } description "Authentication or hash key string."; } leaf authentication-type { type types-isis:auth-type; description "Configure the authentication type to be used."; } leaf csnp-authentication { type boolean; default "true"; description "Enable/disable authentication on received ISIS protocol packets of type CSNP."; } leaf psnp-authentication { type boolean; default "true"; description "Enable/disable authentication on received ISIS protocol packets of type PSNP."; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf default-ipv4-multicast-metric { type types-isis:metric; default "10"; description "Default metric for IPv4 unicast"; } leaf default-ipv6-unicast-metric { type types-isis:metric; default "10"; description "Default metric for IPv6 unicast"; } leaf default-metric { type types-isis:metric; default "10"; description "Default metric"; } leaf external-preference { type uint32 { range "1..255"; } description "External route preference for IS-IS level"; } leaf hello-authentication { type boolean; default "true"; description "Authenticate individual IS-IS protocol packets of Hello type"; } leaf hello-padding { type types-isis:hello-padding-type; description "Padding on IS-IS Hello packets"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude interface participating in specific IS-IS level in SPF LFA computation"; } leaf lsp-mtu-size { type types-isis:lsp-buffer-ext-size; units "bytes"; sros-ext:manual-restart-to-modify; default "1492"; description "LSP MTU size"; } leaf preference { type uint32 { range "1..255"; } description "External route preference at level"; } leaf wide-metrics-only { type boolean; default "false"; description "Use wide metrics advertisements in the LSPs"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level list link-group { key "link-group-name"; description "Enter the link-group list instance"; leaf link-group-name { type types-sros:named-item; description "Link group name for the IS-IS protocol"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list level { key "level-number"; max-elements 2; description "Enter the level list instance"; leaf level-number { type enumeration { enum "1" { value 1; } enum "2" { value 2; } } description "IS-IS protocol level to which these attributes apply"; } leaf ipv4-multicast-metric-offset { type types-isis:metric; description "Offset value for the IPv4 multicast address family"; } leaf ipv4-unicast-metric-offset { type types-isis:metric; description "Offset value for the IPv4 unicast address family"; } leaf ipv6-unicast-metric-offset { type types-isis:metric; description "Offset value for the IPv6 unicast address family"; } leaf oper-members { type uint32 { range "1..8"; } description "Minimum number of operational links"; } leaf revert-members { type uint32 { range "1..8"; } description "Minimum number of operational links to return link group to normal state and remove offsets"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list member { key "interface-name"; max-elements 8; description "Add a list entry for member"; leaf interface-name { type leafref { path "../../../../interface/interface-name"; } description "Router interface name for this link group"; } } // list member } // list level } // list link-group list summary-address { key "ip-prefix"; description "Enter the summary-address list instance"; leaf ip-prefix { type types-sros:ip-prefix; description "Summary IP prefix"; } leaf level-capability { type types-isis:level; description "IS-IS Level from which the prefix should be summarized"; } leaf route-tag { type uint32 { range "1..max"; } description "Route tag assigned to the summary address"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list summary-address } // list isis container msdp { presence "Enter the 'msdp' context"; description "Enable the msdp context"; leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf data-encapsulation { type boolean; default "true"; description "Enable/Disable encapsulation of multicast data used by MSDP"; } leaf rpf-table { type enumeration { enum "rtable-m" { value 0; } enum "rtable-u" { value 1; } enum "both" { value 2; } } default "rtable-u"; description "The route table(s) for RPF lookup."; } leaf source-active-cache-lifetime { type uint32 { range "90..600"; } units "seconds"; default "90"; description "Lifetime given to SA cache entries when created or refreshed"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate list group { key "name"; description "Enter the group list instance"; leaf name { type types-sros:named-item; description "The peer group name"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf mode { type enumeration { enum "standard" { value 1; } enum "mesh-group" { value 2; } } default "standard"; description "Topology of groups of peers"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf default-peer { type boolean; default "false"; description "Enable/Disable default peer as MSDP peer"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "The authentication key to be used for a specific MSDP peer group peering session"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate } // list peer } // list group list peer { key "ip-address"; description "Enter the peer list instance"; leaf ip-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of MSDP"; } leaf-list export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to export Source Active state from the Source Active list into MSDP"; } leaf-list import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Policies to import Source Active state from the Source Active list into MSDP"; } leaf local-address { type types-sros:ipv4-unicast-address; description "The local end of an MSDP session."; } leaf default-peer { type boolean; default "false"; description "Enable/Disable default peer as MSDP peer"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "The authentication key to be used for a specific MSDP peering session"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container receive-message-rate { description "Enter the receive-message-rate context"; leaf rate { type uint32 { range "10..10000"; } description "The number of MSDP messages (including source active messages) that are read from the TCP session per seconds"; } leaf time { type uint32 { range "1..600"; } units "seconds"; description "Specifies the time that together with number defines the rate of MSDP messages (including source active messages) that are read from the TCP session within the configured number of seconds."; } leaf threshold { type uint32 { range "1..1000000"; } description "The number of MSDP messages that can be processed before rate is set"; } } // container receive-message-rate } // list peer list source { key "ip-prefix"; description "Enter the source list instance"; leaf ip-prefix { type types-sros:ipv4-unicast-prefix; description "The IP address of the sources from which the source active messages would be accepted"; } leaf active-source-limit { type int32 { range "0..1000000"; } description "The maximum number of source active messages that will be accepted by MSDP source"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list source } // container msdp list ospf { key "ospf-instance"; max-elements 32; description "Enter the ospf list instance"; leaf ospf-instance { type uint32 { range "0"; } description "Specifies the value of the integrated OSPF instance."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the OSPF instance"; } leaf router-id { type types-igp:router-id; sros-ext:auto-restart-to-modify; description "Unique router ID for the OSPF instance"; } leaf advertise-router-capability { type types-ospf:advertise-router-capability-type; default "false"; description "Allow router advertisement capabilities"; } leaf external-preference { type int32 { range "1..255"; } default "150"; description "Preference for OSPF external routes"; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf multicast-import { type boolean; default "false"; description "Submit routes into the multicast Route Table Manager"; } leaf overload-include-ext-1 { type boolean; default "false"; description "Advertise external type-1 routes with maximum metric value in cases of overload"; } leaf overload-include-ext-2 { type boolean; default "false"; description "Advertise external type-2 routes with maximum metric value in cases of overload"; } leaf overload-include-stub { type boolean; default "false"; description "Advertise all stub interfaces with maximum metric value in cases of overload"; } leaf overload { type boolean; default "false"; description "Change overload state of the local router to appear to be overloaded"; } leaf preference { type int32 { range "1..255"; } default "10"; description "Preference for OSPF internal routes"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; default "100000000"; description "Bandwidth to reference the default costing of interfaces"; } leaf unicast-import { type boolean; default "true"; description "Submit routes into the unicast Route Table Manager"; } leaf compatible-rfc1583 { type boolean; default "true"; description "OSPF summary and external route calculations"; } leaf ignore-dn-bit { type boolean; default "false"; description "Enable/disable whether this instance of OSPF will ignore the DN bit for OSPF LSA packets."; } leaf suppress-dn-bit { type boolean; default "false"; description "Enable/disable whether this instance of OSPF will suppress setting the DN bit for OSPF LSA packets."; } leaf super-backbone { type boolean; default "false"; description "Enable/disable super-backbone functionality."; } leaf vpn-tag { type uint32; default "0"; description "OSPF VPN tag"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container external-db-overflow { presence "Enter the 'external-db-overflow' context"; description "Enable the external-db-overflow context"; leaf limit { type uint32 { range "0..2147483647"; } default "0"; description "Number of external LSA at which overload is triggered"; } leaf interval { type uint32 { range "0..2147483647"; } units "seconds"; default "0"; description "Time during which the router operates in overload"; } } // container external-db-overflow container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } mandatory true; description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "60..1800"; } units "seconds"; description "Time during which the router operates in overload state before reestablishing normal operations"; } } // container overload-on-boot container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; leaf prefix-list { type leafref { path "../../../../../../policy-options/prefix-list/name"; } description "List used to select routes processed at higher priority through OSPF route calculation process"; } } // container high } // container rib-priority container rtr-adv-lsa-limit { presence "Enter the 'rtr-adv-lsa-limit' context"; description "Enable the rtr-adv-lsa-limit context"; leaf max-lsa-count { type uint32 { range "1..max"; } mandatory true; description "Maximum number of LSAs allowed to be advertised by one router"; } leaf log-only { type boolean; default "false"; description "Log the event without triggering overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Percentage of the maximum LSA count at which a warning is given"; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Maximum timeout for overload when the maximum LSA count is reached"; } } // container rtr-adv-lsa-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for OSPF"; } leaf strict-lsa-checking { type boolean; default "true"; description "Perform strict LSA checking during graceful restart helper"; } } // container graceful-restart container timers { description "Enter the timers context"; leaf incremental-spf-wait { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time before an incremental SPF calculation is started"; } leaf lsa-accumulate { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time for accumulating multiple LSAs before advertising them to neighbors"; } leaf lsa-arrival { type uint32 { range "0..600000"; } units "milliseconds"; default "1000"; description "Minimum delay between receipt of the same LSAs arriving from neighbors"; } leaf redistribute-delay { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Hold down timer for external routes that are redistributed in OSPF"; } container lsa-generate { description "Enter the lsa-generate context"; leaf max-lsa-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of an LSA being generated"; } leaf lsa-initial-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "First waiting period between link state advertisements LSA originates"; } leaf lsa-second-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Hold time between the first and second LSA generation"; } } // container lsa-generate container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after a topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between the first and second SPF calculation"; } } // container spf-wait } // container timers container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude } // container loopfree-alternate container vpn-domain { presence "Enter the 'vpn-domain' context"; description "Enable the vpn-domain context"; leaf id { type types-igp:system-id; description "OSPF VPN domain ID"; } leaf type { type types-ospf:vpn-domain-type; mandatory true; description "VPN domain"; } } // container vpn-domain list area { key "area-id"; description "Enter the area list instance"; leaf area-id { type types-sros:ipv4-address; description "Area-ID attribute"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf blackhole-aggregate { type boolean; default "true"; description "Install a low priority blackhole route to avoid loops"; } leaf-list export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Route that is exported as Type 3 Summary-LSAs or OSPFv3 Inter-Area-Prefix-LSA between areas"; } leaf-list import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Route that is imported as summary type 3/inter-area-prefix-LSA from another area into this area"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude specific interface or all interfaces participating in all OSPF areas in SPF LFA computation"; } leaf advertise-ne-profile { type leafref { path "../../../../../system/network-element-discovery/profile/name"; } description "Network element profile to be advertised"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container stub { presence "Enter the 'stub' context"; description "Enable the stub context"; leaf default-metric { type uint32 { range "1..16777214"; } default "1"; description "Metric used by the ABR for the default route into the stub area"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the stub area on an ABR"; } } // container stub container nssa { presence "Enter the 'nssa' context"; description "Enable the nssa context"; leaf redistribute-external { type boolean; default "true"; description "Redistribute external routes into the NSSA"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the NSSA on an ABR"; } list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type types-sros:ipv4-unicast-prefix; description "ip-prefix a.b.c.d (host bits must be 0) mask [0..32]"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list area-range container originate-default-route { presence "Enter the 'originate-default-route' context"; description "Enable the originate-default-route context"; leaf type-nssa { type boolean; default "false"; description "Generate a default route using NSSA-LSA type"; } leaf adjacency-check { type boolean; default "false"; description "Perform adjacency checks before originating a default route"; } } // container originate-default-route } // container nssa list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type types-sros:ipv4-unicast-prefix; description "ip-prefix a.b.c.d (host bits must be 0) mask [0..32]"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list area-range list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Router interface name."; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf advertise-subnet { type boolean; default "true"; description "Advertise point-to-point interfaces as subnet routes"; } leaf interface-type { type types-ospf:interface-type; sros-ext:immutable; description "Interface type to broadcast or point-to-point"; } leaf lsa-filter-out { type types-ospf:lsa-filter-out; default "none"; description "LSA flooding reduction"; } leaf metric { type uint32 { range "1..65535"; } description "Explicit route cost metric that is applied to the interface"; } leaf mtu { type types-router:ip-mtu-ext; description "MTU for the OSPF to use on the interface"; } leaf passive { type boolean; default "false"; description "Allow interface to be advertised as an OSPF interface without running the OSPF protocol"; } leaf poll-interval { type uint32; units "seconds"; default "120"; description "Time between two Hello packets to a non-adjacent OSPF NBMA neighbor"; } leaf priority { type uint16 { range "0..255"; } default "1"; description "Priority of the interface to apply in the designated router election on the subnet"; } leaf rib-priority { type types-ospf:rib-priority; description "RIB priority for OSPF"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load-balancing-weight."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "40"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf authentication-keychain { type leafref { path "../../../../../../system/security/keychains/keychain/keychain-name"; } description "Configure TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Authentication key"; } leaf authentication-type { type types-ospf:authentication-type; description "Authentication type used on OSPF interface"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf remain-down-on-failure { type boolean; default "false"; description "Force adjacency down on BFD failure and remain down until BFD session returns"; } } // container bfd-liveness container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable fast re-route capability for OSPF at interface level (only valid for primary interface)"; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type leafref { path "../../../../../../../../routing-options/route-next-hop-policy/template/template-name"; } mandatory true; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate list message-digest-key { key "key-id"; description "Enter the message-digest-key list instance"; leaf key-id { type uint16 { range "1..255"; } description "Message digest index"; } leaf md5 { type types-sros:encrypted-leaf { length "1..51"; } mandatory true; description "MD5 hash key"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list message-digest-key list neighbor { key "address"; description "Add a list entry for neighbor"; leaf address { type types-sros:ipv4-unicast-address; description "IPv4 address of the OSPFv2 neighbor"; } } // list neighbor } // list interface list virtual-link { key "router-id transit-area"; description "Enter the virtual-link list instance"; leaf router-id { type types-sros:ipv4-address; description "Router identity of the virtual link neighbor"; } leaf transit-area { type leafref { path "../../area-id"; } description "Transit area that links backbone area to area without physical connection with the backbone"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "60"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf authentication-keychain { type leafref { path "../../../../../../system/security/keychains/keychain/keychain-name"; } description "Configure TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "Authentication key"; } leaf authentication-type { type types-ospf:authentication-type; description "Authentication type used on OSPF interface"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list message-digest-key { key "key-id"; description "Enter the message-digest-key list instance"; leaf key-id { type uint16 { range "1..255"; } description "Message digest index"; } leaf md5 { type types-sros:encrypted-leaf { length "1..51"; } mandatory true; description "key - [16 chars max] hash/hash2-key - [44 chars max] (for hash scheme)"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list message-digest-key } // list virtual-link list sham-link { key "interface ip-address"; description "Enter the sham-link list instance"; leaf interface { type types-sros:interface-name; description "Router interface name."; } leaf ip-address { type types-sros:ipv4-unicast-address; description "Destination IP address"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "40"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf authentication-keychain { type leafref { path "../../../../../../system/security/keychains/keychain/keychain-name"; } description "Configure TCP authentication keychain to use for the session"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..38"; } description "authentication-key - [8 chars max] hash/hash2-key - [32 chars max]"; } leaf authentication-type { type types-ospf:authentication-type; description "Enable/disable authentication and specify authentication type to be used on the interface"; } leaf metric { type uint32 { range "1..65535"; } default "1"; description "Explicit route cost metric that is applied to the sham link"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list message-digest-key { key "key-id"; description "Enter the message-digest-key list instance"; leaf key-id { type uint16 { range "1..255"; } description "Message digest index"; } leaf md5 { type types-sros:encrypted-leaf { length "1..51"; } mandatory true; description "key - [16 chars max] hash/hash2-key - [44 chars max] (for hash scheme)"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list message-digest-key } // list sham-link } // list area } // list ospf list ospf3 { key "ospf-instance"; max-elements 32; description "Enter the ospf3 list instance"; leaf ospf-instance { type uint32 { range "0..31|64..95"; } description "Specifies the value of the integrated OSPF instance."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the OSPF instance"; } leaf router-id { type types-igp:router-id; sros-ext:auto-restart-to-modify; description "Unique router ID for the OSPF instance"; } leaf advertise-router-capability { type types-ospf:advertise-router-capability-type; default "false"; description "Allow router advertisement capabilities"; } leaf external-preference { type int32 { range "1..255"; } default "150"; description "Preference for OSPF external routes"; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf multicast-import { type boolean; default "false"; description "Submit routes into the multicast Route Table Manager"; } leaf overload-include-ext-1 { type boolean; default "false"; description "Advertise external type-1 routes with maximum metric value in cases of overload"; } leaf overload-include-ext-2 { type boolean; default "false"; description "Advertise external type-2 routes with maximum metric value in cases of overload"; } leaf overload-include-stub { type boolean; default "false"; description "Advertise all stub interfaces with maximum metric value in cases of overload"; } leaf overload { type boolean; default "false"; description "Change overload state of the local router to appear to be overloaded"; } leaf preference { type int32 { range "1..255"; } default "10"; description "Preference for OSPF internal routes"; } leaf reference-bandwidth { type types-sros:reference-bandwidth-ext; units "kilobps"; default "100000000"; description "Bandwidth to reference the default costing of interfaces"; } leaf unicast-import { type boolean; default "true"; description "Submit routes into the unicast Route Table Manager"; } leaf ignore-dn-bit { type boolean; default "false"; description "Enable/disable whether this instance of OSPF will ignore the DN bit for OSPF LSA packets."; } leaf suppress-dn-bit { type boolean; default "false"; description "Enable/disable whether this instance of OSPF will suppress setting the DN bit for OSPF LSA packets."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container external-db-overflow { presence "Enter the 'external-db-overflow' context"; description "Enable the external-db-overflow context"; leaf limit { type uint32 { range "0..2147483647"; } default "0"; description "Number of external LSA at which overload is triggered"; } leaf interval { type uint32 { range "0..2147483647"; } units "seconds"; default "0"; description "Time during which the router operates in overload"; } } // container external-db-overflow container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } mandatory true; description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container overload-on-boot { presence "Enter the 'overload-on-boot' context"; description "Enable the overload-on-boot context"; leaf timeout { type uint32 { range "60..1800"; } units "seconds"; description "Time during which the router operates in overload state before reestablishing normal operations"; } } // container overload-on-boot container rib-priority { description "Enter the rib-priority context"; container high { description "Enter the high context"; leaf prefix-list { type leafref { path "../../../../../../policy-options/prefix-list/name"; } description "List used to select routes processed at higher priority through OSPF route calculation process"; } } // container high } // container rib-priority container rtr-adv-lsa-limit { presence "Enter the 'rtr-adv-lsa-limit' context"; description "Enable the rtr-adv-lsa-limit context"; leaf max-lsa-count { type uint32 { range "1..max"; } mandatory true; description "Maximum number of LSAs allowed to be advertised by one router"; } leaf log-only { type boolean; default "false"; description "Log the event without triggering overload"; } leaf warning-threshold { type uint32 { range "0..100"; } units "percent"; default "0"; description "Percentage of the maximum LSA count at which a warning is given"; } leaf overload-timeout { type types-igp:overload-timeout; default "forever"; description "Maximum timeout for overload when the maximum LSA count is reached"; } } // container rtr-adv-lsa-limit container graceful-restart { presence "Enter the 'graceful-restart' context"; description "Enable the graceful-restart context"; leaf helper-mode { type boolean; default "true"; description "Enable graceful restart helper for OSPF"; } leaf strict-lsa-checking { type boolean; default "true"; description "Perform strict LSA checking during graceful restart helper"; } } // container graceful-restart container timers { description "Enter the timers context"; leaf incremental-spf-wait { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time before an incremental SPF calculation is started"; } leaf lsa-accumulate { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Delay time for accumulating multiple LSAs before advertising them to neighbors"; } leaf lsa-arrival { type uint32 { range "0..600000"; } units "milliseconds"; default "1000"; description "Minimum delay between receipt of the same LSAs arriving from neighbors"; } leaf redistribute-delay { type uint32 { range "0..1000"; } units "milliseconds"; default "1000"; description "Hold down timer for external routes that are redistributed in OSPF"; } container lsa-generate { description "Enter the lsa-generate context"; leaf max-lsa-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Maximum time between two consecutive occurrences of an LSA being generated"; } leaf lsa-initial-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "First waiting period between link state advertisements LSA originates"; } leaf lsa-second-wait { type uint32 { range "10..600000"; } units "milliseconds"; default "5000"; description "Hold time between the first and second LSA generation"; } } // container lsa-generate container spf-wait { description "Enter the spf-wait context"; leaf spf-max-wait { type uint32 { range "10..120000"; } units "milliseconds"; default "10000"; description "Maximum interval between two consecutive SPF calculations"; } leaf spf-initial-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Initial SPF calculation delay after a topology change"; } leaf spf-second-wait { type uint32 { range "10..100000"; } units "milliseconds"; default "1000"; description "Hold time between the first and second SPF calculation"; } } // container spf-wait } // container timers container loopfree-alternate { presence "Enter the 'loopfree-alternate' context"; description "Enable the loopfree-alternate context"; container exclude { description "Enter the exclude context"; leaf-list prefix-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded. Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority."; } } // container exclude } // container loopfree-alternate list area { key "area-id"; description "Enter the area list instance"; leaf area-id { type types-sros:ipv4-address; description "Area-ID attribute"; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf blackhole-aggregate { type boolean; default "true"; description "Install a low priority blackhole route to avoid loops"; } leaf-list export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Route that is exported as Type 3 Summary-LSAs or OSPFv3 Inter-Area-Prefix-LSA between areas"; } leaf-list import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Route that is imported as summary type 3/inter-area-prefix-LSA from another area into this area"; } leaf loopfree-alternate-exclude { type boolean; default "false"; description "Exclude specific interface or all interfaces participating in all OSPF areas in SPF LFA computation"; } leaf key-rollover-interval { type uint32 { range "10..300"; } units "seconds"; default "10"; description "Key rollover interval"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container stub { presence "Enter the 'stub' context"; description "Enable the stub context"; leaf default-metric { type uint32 { range "1..16777214"; } default "1"; description "Metric used by the ABR for the default route into the stub area"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the stub area on an ABR"; } } // container stub container nssa { presence "Enter the 'nssa' context"; description "Enable the nssa context"; leaf redistribute-external { type boolean; default "true"; description "Redistribute external routes into the NSSA"; } leaf summaries { type boolean; default "true"; description "Send summary (Type 3) LSAs into the NSSA on an ABR"; } list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type types-sros:ip-unicast-prefix; description "Address ranges to create on an ABR for route summarization or suppression"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list area-range container originate-default-route { presence "Enter the 'originate-default-route' context"; description "Enable the originate-default-route context"; leaf type-nssa { type boolean; default "false"; description "Generate a default route using NSSA-LSA type"; } leaf adjacency-check { type boolean; default "false"; description "Perform adjacency checks before originating a default route"; } } // container originate-default-route } // container nssa list area-range { key "ip-prefix-mask"; description "Enter the area-range list instance"; leaf ip-prefix-mask { type types-sros:ip-unicast-prefix; description "Address ranges to create on an ABR for route summarization or suppression"; } leaf advertise { type boolean; default "true"; description "Advertise summarized range of addresses to other areas"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list area-range list interface { key "interface-name"; description "Enter the interface list instance"; leaf interface-name { type types-sros:interface-name; description "Router interface name."; } leaf advertise-router-capability { type boolean; default "true"; description "Allow router advertisement capabilities"; } leaf interface-type { type types-ospf:interface-type; sros-ext:immutable; description "Interface type to broadcast or point-to-point"; } leaf lsa-filter-out { type types-ospf:lsa-filter-out; default "none"; description "LSA flooding reduction"; } leaf metric { type uint32 { range "1..65535"; } description "Explicit route cost metric that is applied to the interface"; } leaf mtu { type types-router:ip-mtu-ext; description "MTU for the OSPF to use on the interface"; } leaf passive { type boolean; default "false"; description "Allow interface to be advertised as an OSPF interface without running the OSPF protocol"; } leaf poll-interval { type uint32; units "seconds"; default "120"; description "Time between two Hello packets to a non-adjacent OSPF NBMA neighbor"; } leaf priority { type uint16 { range "0..255"; } default "1"; description "Priority of the interface to apply in the designated router election on the subnet"; } leaf rib-priority { type types-ospf:rib-priority; description "RIB priority for OSPF"; } leaf load-balancing-weight { type uint32 { range "1..max"; } description "Configure load-balancing-weight."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "40"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf remain-down-on-failure { type boolean; default "false"; description "Force adjacency down on BFD failure and remain down until BFD session returns"; } } // container bfd-liveness container loopfree-alternate { description "Enter the loopfree-alternate context"; leaf exclude { type boolean; default "false"; description "Enable/disable fast re-route capability for OSPF at interface level (only valid for primary interface)"; } container policy-map { presence "Enter the 'policy-map' context"; description "Enable the policy-map context"; leaf route-nh-template { type leafref { path "../../../../../../../../routing-options/route-next-hop-policy/template/template-name"; } mandatory true; description "Route next hop policy template that is applied to interface"; } } // container policy-map } // container loopfree-alternate container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf inbound { type leafref { path "../../../../../../../ipsec/static-sa/name"; } mandatory true; description "sa-name"; } leaf outbound { type leafref { path "../../../../../../../ipsec/static-sa/name"; } mandatory true; description "sa-name"; } } // container authentication list neighbor { key "address"; description "Add a list entry for neighbor"; leaf address { type types-sros:ip-address; description "IPv6 link local address of the OSPFv3 neighbor"; } } // list neighbor } // list interface list virtual-link { key "router-id transit-area"; description "Enter the virtual-link list instance"; leaf router-id { type types-sros:ipv4-address; description "Router identity of the virtual link neighbor"; } leaf transit-area { type leafref { path "../../area-id"; } description "Transit area that links backbone area to area without physical connection with the backbone"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the OSPF"; } leaf hello-interval { type uint32 { range "1..65535"; } units "seconds"; default "10"; description "Time between OSPF Hellos of this interface"; } leaf dead-interval { type uint32 { range "2..65535"; } units "seconds"; default "60"; description "Time OSPF waits without receiving Hello packets before declaring a neighbor down"; } leaf retransmit-interval { type uint32 { range "1..1800"; } units "seconds"; default "5"; description "Time before OSPF retransmits an unacknowledged LSA to a neighbor"; } leaf transit-delay { type uint32 { range "1..1800"; } units "seconds"; default "1"; description "Time required to transmit an LSA on the interface, virtual link, or sham link"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf inbound { type leafref { path "../../../../../../../ipsec/static-sa/name"; } mandatory true; description "sa-name"; } leaf outbound { type leafref { path "../../../../../../../ipsec/static-sa/name"; } mandatory true; description "sa-name"; } } // container authentication } // list virtual-link } // list area } // list ospf3 container radius { description "Enter the radius context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list server { key "name"; max-elements 64; description "Enter the server list instance"; leaf name { type types-sros:named-item; description "RADIUS server name"; } leaf description { type types-sros:description; description "Text description"; } leaf address { type types-sros:ip-unicast-address; mandatory true; description "IP address for server"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } mandatory true; description "Secret key associated with this RADIUS server"; } leaf accept-coa { type boolean; default "false"; description "Allow the server to send Change of Authorization (CoA) messages"; } leaf acct-port { type types-sros:tcp-udp-port-non-zero; default "1813"; description "UDP port number of the RADIUS for accounting events"; } leaf auth-port { type types-sros:tcp-udp-port-non-zero; default "1812"; description "UDP port number of the RADIUS to be used as match criteria"; } leaf pending-requests-limit { type uint32 { range "1..4096"; } default "4096"; description "Limit of the number for pending RADIUS requests"; } leaf python-policy { type leafref { path "../../../../../python/python-policy/name"; } description "Python script policy to modify CoA messages"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server list proxy { key "name"; max-elements 8; description "Enter the proxy list instance"; leaf name { type types-sros:named-item; description "RADIUS proxy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RADIUS proxy"; } leaf description { type types-sros:description; description "Text description"; } leaf purpose { type enumeration { enum "accounting" { value 1; } enum "authentication" { value 2; } enum "accounting-authentication" { value 3; } } sros-ext:immutable; mandatory true; description "Purpose of the RADIUS proxy"; } leaf wlan-gw-group { type leafref { path "../../../../../isa/wlan-gw-group/id"; } sros-ext:immutable; description "ISA WLAN gateway group"; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } description "Format of the secret key to access the RADIUS proxy server"; } leaf send-accounting-response { type boolean; default "false"; description "Allow RADIUS proxy server to respond to Accounting-Response messages"; } leaf python-policy { type leafref { path "../../../../../python/python-policy/name"; } description "Python policy"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container load-balance-key { description "Enter the load-balance-key context"; choice load-balance-key { case source-ip-udp { leaf source-ip-udp { type empty; description "Key to consist of the source IP address and source UDP port of the RADIUS message"; } } case attributes { container attribute-1 { description "Enter the attribute-1 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-1 container attribute-2 { description "Enter the attribute-2 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-2 container attribute-3 { description "Enter the attribute-3 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-3 container attribute-4 { description "Enter the attribute-4 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-4 container attribute-5 { description "Enter the attribute-5 context"; leaf type { type types-radius:radius-attribute-type; description "Attribute type to cache for this RADIUS Proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "Vendor-Id attribute"; } } // container attribute-5 } } } // container load-balance-key container cache { description "Enter the cache context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the RADIUS proxy cache"; } leaf track-delete-hold-time { type types-sros:time-duration { range "0..6000"; } default "0"; description "Delete hold time"; } leaf timeout { type types-sros:time-duration { range "60..3600"; } default "300"; description "Idle timeout value"; } container key { presence "Enter the 'key' context"; description "Enable the key context"; leaf packet-type { type enumeration { enum "access-request" { value 1; } enum "access-accept" { value 2; } } mandatory true; description "Packet type of the RADIUS messages to generate the key for the cache of this RADIUS proxy server"; } leaf attribute-type { type types-radius:radius-attribute-type; mandatory true; description "RADIUS attribute type to cache for this RADIUS proxy server"; } leaf vendor { type types-radius:radius-vendor-id; description "RADIUS Vendor ID"; } } // container key container track-accounting { description "Enter the track-accounting context"; leaf start { type boolean; default "false"; description "Update the ESM host with the RADIUS client that generated the accounting-start"; } leaf stop { type boolean; default "false"; description "Remove the ESM host and forward the accounting-stop packet to the external RADIUS server"; } leaf interim-update { type boolean; default "false"; description "Update the ESM host with the RADIUS client that generated the interim update"; } leaf accounting-on { when "not(../../../wlan-gw-group)"; type boolean; default "false"; description "Remove all ESM hosts associated with the RADIUS client"; } leaf accounting-off { when "not(../../../wlan-gw-group)"; type boolean; default "false"; description "Remove all ESM hosts associated with the RADIUS client"; } } // container track-accounting container track-authentication { description "Enter the track-authentication context"; leaf accept { type boolean; default "true"; description "Track Access-Accept message for mobility"; } } // container track-authentication } // container cache container attribute-matching { description "Enter the attribute-matching context"; leaf type { type types-radius:radius-attribute-type; description "Matching attribute type to RADIUS server policy"; } leaf vendor { type types-radius:radius-vendor-id; description "Matching Vendor ID to RADIUS server policy"; } list entry { key "index"; description "Enter the entry list instance"; leaf index { type uint32 { range "1..32"; } description "Index of this entry"; } leaf prefix-string { type types-sros:display-string { length "1..128"; } description "Prefix string"; } leaf suffix-string { type types-sros:display-string { length "1..128"; } description "Prefix string"; } leaf accounting-server-policy { type types-sros:named-item; description "Accounting server policy"; } leaf authentication-server-policy { type types-sros:named-item; description "Authentication server policy"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list entry } // container attribute-matching container wlan-gw { when "../wlan-gw-group"; description "Enter the wlan-gw context"; leaf address { type types-sros:ipv4-unicast-address; description "IP address of this RADIUS proxy server"; } leaf ipv6-address { type types-sros:ipv6-unicast-without-local-address; description "IPv6 address of this RADIUS proxy server"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container wlan-gw container defaults { description "Enter the defaults context"; leaf authentication-server-policy { type types-sros:named-item; description "Default authentication RADIUS server policy"; } leaf accounting-server-policy { type types-sros:named-item; description "Default accounting RADIUS server policy"; } } // container defaults list interface { when "not(../wlan-gw-group)"; key "interface-name"; description "Add a list entry for interface"; leaf interface-name { type leafref { path "../../../../interface/interface-name"; } description "Specifies the interface name"; } } // list interface } // list proxy } // container radius container rip { presence "Enter the 'rip' context"; description "Enable the rip context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIP instance"; } leaf description { type types-sros:description; description "Text description"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; default "none"; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; default "false"; description "Check for zero values in must-be-zero fields."; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf message-size { type types-rip:message-size; default "25"; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; default "1"; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; default "1"; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; default "100"; description "Route preference."; } leaf propagate-metric { type boolean; default "false"; description "Enable propagation of metric."; } leaf receive { type types-rip:receive; default "both"; description "Accepted version on received packets."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } } default "broadcast"; description "RIP version and method used to send RIP updates."; } leaf split-horizon { type boolean; default "true"; description "Enable split-horizon."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } mandatory true; description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type types-sros:named-item; description "RIP group name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RIP neighbor interface group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to group peers."; } leaf-list import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from group peers."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-rip:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; description "Route preference."; } leaf receive { type types-rip:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } } description "RIP version and method used to send RIP updates."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list neighbor { key "interface-name"; description "Enter the neighbor list instance"; leaf interface-name { type types-sros:interface-name; description "Interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIP neighbor interface"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to peers."; } leaf-list import-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from peers."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Authentication or hash key string."; } leaf authentication-type { type types-rip:auth-type; description "Authentication type to be used."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIP peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-rip:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-rip:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-rip:metric; description "Metric added to routes exported into RIP."; } leaf preference { type types-rip:preference; description "Route preference."; } leaf receive { type types-rip:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "version-1" { value 2; } enum "broadcast" { value 3; } enum "multicast" { value 4; } enum "unicast" { value 6; } } description "RIP version and method used to send RIP updates."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-rip:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-rip:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-rip:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list unicast-address { key "address"; description "Add a list entry for unicast-address"; leaf address { type types-sros:ipv4-unicast-address; description "Create a unicast-address for the neighbor."; } } // list unicast-address } // list neighbor } // list group } // container rip container ripng { presence "Enter the 'ripng' context"; description "Enable the ripng context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the RIPng instance"; } leaf description { type types-sros:description; description "Text description"; } leaf bfd-liveness { type boolean; default "false"; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; default "false"; description "Check for zero values in must-be-zero fields."; } leaf-list export-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of export policies to be used for determining which routes are exported from the routing table to this IGP."; } leaf-list import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Configure names of import policies to be used for determining which routes are imported from this IGP to the routing table."; } leaf message-size { type types-ripng:message-size; default "25"; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; default "1"; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; default "1"; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; default "100"; description "Route preference."; } leaf receive { type types-ripng:receive; default "ripng"; description "Accepted version on received packets."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } } default "ripng"; description "RIPng version and method used to send RIPng updates."; } leaf split-horizon { type boolean; default "true"; description "Enable split-horizon."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container export-limit { presence "Enter the 'export-limit' context"; description "Enable the export-limit context"; leaf number { type uint32 { range "1..max"; } mandatory true; description "Maximum number of routes or prefixes to be exported into IGP instance from route table"; } leaf log-percent { type uint32 { range "1..100"; } description "Export limit at which warning a log message and SNMP notification are sent"; } } // container export-limit container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list group { key "group-name"; description "Enter the group list instance"; leaf group-name { type types-sros:named-item; description "RIP group name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RIPng neighbor interface group"; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to group peers."; } leaf-list import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from group peers."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-ripng:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; description "Route preference."; } leaf receive { type types-ripng:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } } description "RIPng version and method used to send RIPng updates."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list neighbor { key "interface-name"; description "Enter the neighbor list instance"; leaf interface-name { type leafref { path "../../../../interface/interface-name"; } description "Interface name."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the neighbor."; } leaf description { type types-sros:description; description "Text description"; } leaf-list export-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply export policies used to determine routes advertised to peers."; } leaf-list import-policy { type leafref { path "../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Apply import policies used to determine routes accepted from peers."; } leaf bfd-liveness { type boolean; description "Enable BFD monitoring of RIPng peers."; } leaf check-zero { type boolean; description "Check for zero values in must-be-zero fields."; } leaf message-size { type types-ripng:message-size; description "Maximum number of routes in message."; } leaf metric-in { type types-ripng:metric; description "Metric added to routes from neighbor."; } leaf metric-out { type types-ripng:metric; description "Metric added to routes exported into RIPng."; } leaf preference { type types-ripng:preference; description "Route preference."; } leaf receive { type types-ripng:receive; description "Accepted version on received packets."; } leaf split-horizon { type boolean; description "Enable split-horizon."; } leaf send { type enumeration { enum "none" { value 1; } enum "ripng" { value 5; } enum "unicast" { value 6; } } description "RIPng version and method used to send RIPng updates."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container timers { presence "Enter the 'timers' context"; description "Enable the timers context"; leaf update { type types-ripng:timer-update; mandatory true; description "Controls how often updates are sent."; } leaf timeout { type types-ripng:timer-timeout; mandatory true; description "Controls the amount of time before a route will be declared invalid in the routing table since the last time it was received from the peer."; } leaf flush { type types-ripng:timer-flush; mandatory true; description "Controls the time a route remains in the routing table since it was declared invalid."; } } // container timers list unicast-address { key "address"; description "Add a list entry for unicast-address"; leaf address { type types-sros:ipv6-unicast-address; description "Create a unicast-address for the neighbor."; } } // list unicast-address } // list neighbor } // list group } // container ripng list subscriber-interface { key "interface-name"; description "Enter the subscriber-interface list instance"; leaf interface-name { type types-sros:interface-name; description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the subscriber interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf fwd-service { type leafref { path "../../../vprn/service-name"; } sros-ext:immutable; description "Configure the forwarding service."; } leaf fwd-subscriber-interface { type leafref { path "../../../vprn[service-name=current()/../fwd-service]/subscriber-interface/interface-name"; } sros-ext:immutable; description "Forwarding subscriber interface name"; } leaf wan-mode { type enumeration { enum "mode64" { value 1; } enum "mode128" { value 2; } } sros-ext:immutable; default "mode64"; description "The mode of operation for hosts that have a /128 WAN IPv6 address."; } leaf private-retail-subnets { when "../fwd-service"; type boolean; sros-ext:immutable; default "false"; description "Export subnets to the forwarding service"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf allow-unmatching-subnets { type boolean; default "false"; description "Allow subscriber hosts without a matching subnet"; } leaf export-host-routes { when "../../fwd-service"; type boolean; default "false"; description "Allow export of subscriber management host routes"; } leaf-list default-dns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "Default DNS server addresses"; } list address { key "ipv4-address"; description "Enter the address list instance"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "IP address associated with the subscriber subnet"; } leaf prefix-length { type uint32 { range "0..32"; } mandatory true; description "IPv4 address prefix length"; } leaf gateway { type types-sros:ipv4-unicast-address; description "Gateway IP address within the subnet for SRRP routing"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf populate-host-routes { type boolean; default "false"; description "Populate subscriber host routes in local FIB"; } leaf holdup-time { type uint32 { range "100..5000"; } units "milliseconds"; description "Wait time before accepting new state attribute"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address container arp-host { when "../../fwd-service"; description "Enter the arp-host context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Enable/disable ARP hosts."; } leaf host-limit { type uint32 { range "1..524287"; } description "Maximum number of ARP triggered hosts."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container arp-host container unnumbered { description "Enter the unnumbered context"; choice source { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IP address of the interface"; } } case ip-int-name { leaf ip-int-name { type types-sros:interface-name; description "Interface name"; } } } } // container unnumbered container dhcp { description "Enter the dhcp context"; leaf admin-state { when "../../../fwd-service"; type types-sros:admin-state; default "enable"; description "Administrative state of DHCP"; } leaf description { when "../../../fwd-service"; type types-sros:description; description "Text description"; } leaf python-policy { when "../../../fwd-service"; type leafref { path "../../../../../../python/python-policy/name"; } description "Python policy"; } leaf-list server { when "../../../fwd-service"; type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "Configure the DHCP server IP addresses."; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf virtual-subnet { when "not(../../../fwd-service)"; type boolean; default "false"; description "Enable/disable virtual subnetting."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container proxy-server { when "../../../fwd-service"; description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCP proxy server"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { when "../../../fwd-service"; description "Enter the option-82 context"; container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { when "../../../fwd-service"; description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "0..511999"; } description "The maximum number of DHCPv4 leases."; } } // container lease-populate container client-applications { when "../../../fwd-service"; description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Enable/disable DHCP as client application."; } leaf ppp { type boolean; default "false"; description "Enable/disable PPP as client application."; } } // container client-applications container relay-proxy { when "../../../fwd-service"; presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy container offer-selection { description "Enter the offer-selection context"; leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Offer selection"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } } // container client-mac } case mode-server { list server { key "ipv4-address"; max-elements 8; description "Enter the server list instance"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "IP address of the DHCP server"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server } } } // container offer-selection } // container dhcp } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf allow-multiple-wan-addresses { when "../../fwd-service"; type boolean; default "false"; description "Configure if the interface will accept multiple WAN addresses."; } leaf ipoe-bridged-mode { when "../../fwd-service"; type boolean; default "false"; description "Enable/Disable IPv6 IPoE Bridged Mode."; } leaf allow-unmatching-prefixes { type boolean; default "false"; description "Allow subscriber hosts without a matching prefix"; } leaf delegated-prefix-length { when "not(../../fwd-service)"; type union { type uint32 { range "48..64"; } type enumeration { enum "variable" { value 0; } } } default "64"; description "IPv6 delegated prefix length"; } leaf-list default-dns { type types-sros:ipv6-unicast-address; max-elements 2; ordered-by user; description "Default DNS server addresses"; } list address { key "ipv6-address"; description "Enter the address list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "IPv6 address for the subscriber interface"; } leaf prefix-length { type uint32 { range "0..128"; } mandatory true; description "IPv6 address prefix length"; } leaf host-type { type enumeration { enum "pd" { value 0; description "Configure to make this aggregate to be used by IPv6 ESM hosts for DHCPv6 prefix-delegation."; } enum "wan" { value 1; description "Configure to make this aggregate to be used by ESM hosts for DHCPv6 addresses or by WAN interface."; } enum "pd-wan" { value 2; description "Configure to make this aggregate to be used by both prefix-delegation and ESM hosts."; } } sros-ext:immutable; default "pd"; description "Host type for subscriber interface prefixes"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address list prefix { key "ipv6-prefix"; description "Enter the prefix list instance"; leaf ipv6-prefix { type types-sros:ipv6-prefix; description "IPv6 address for a router interface"; } leaf track-srrp { type uint32 { range "1..4294967295"; } description "SRRP instance whose state is tracked on this IP address"; } leaf holdup-time { type uint32 { range "100..5000"; } units "milliseconds"; description "Configures the time to wait, in milliseconds, for the route before it accepts the new state attribute."; } leaf host-type { type enumeration { enum "pd" { value 0; description "Configure to make this aggregate to be used by IPv6 ESM hosts for DHCPv6 prefix-delegation."; } enum "wan" { value 1; description "Configure to make this aggregate to be used by ESM hosts for DHCPv6 addresses or by WAN interface."; } enum "pd-wan" { value 2; description "Configure to make this aggregate to be used by both prefix-delegation and ESM hosts."; } } sros-ext:immutable; default "pd"; description "Host type for subscriber interface prefixes"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix container link-local-address { description "Enter the link-local-address context"; leaf address { type types-sros:ipv6-address; description "IPv6 link local address"; } } // container link-local-address container dhcp6 { when "../../fwd-service"; description "Enter the dhcp6 context"; leaf override-slaac { type boolean; default "false"; description "Allow WAN address offered by DHCP to overwrite the WAN address acquired from SLAAC"; } leaf python-policy { type leafref { path "../../../../../../python/python-policy/name"; } description "Python policy"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pd-managed-route { presence "Enter the 'pd-managed-route' context"; description "Enable the pd-managed-route context"; leaf next-hop { type types-services:dhcp6-pd-managed-route-nh; default "ipv6"; description "Next hop type"; } } // container pd-managed-route container relay { description "Enter the relay context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 Relay"; } leaf description { type types-sros:description; description "Text description"; } leaf source-address { type types-sros:ipv6-unicast-address; description "Source IPv6 address for the DHCPv6 relay messages"; } leaf link-address { type types-sros:ipv6-address; description "Link address for the DHCPv6 relay messages"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCP6 server(s) to which the DHCP6 requests are forwarded"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container advertise-selection { description "Enter the advertise-selection context"; leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Advertise selection"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container client-mac } case mode-server { list server { key "ipv6-address"; max-elements 8; description "Enter the server list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "IP address of the DHCPv6 server"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // list server } } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container advertise-selection container lease-split { description "Enter the lease-split context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 lease split"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime-new; default "3600"; description "DHCPv6 lease split valid lifetime (short lease time)"; } } // container lease-split } // container relay container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 proxy server"; } leaf preferred-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "3600"; description "Time for prefix to remain preferred on this interface"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "86400"; description "Time for prefix to remain valid on this interface"; } leaf renew-timer { type types-submgt:dhcp6-renew-timer; description "Renew timer (T1)"; } leaf rebind-timer { type types-submgt:dhcp6-rebind-timer; description "Rebind timer (T2) for this interface"; } container client-applications { description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container server-id { description "Enter the server-id context"; leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice server-id { default "duid-ll"; case duid-ll { leaf duid-ll { type empty; description "Use link-layer address (DUID-LL) as DUID"; } } case duid-en-hex { leaf duid-en-hex { type string { length "1..118"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as a hexadecimal string"; } } case duid-en-ascii { leaf duid-en-ascii { type types-sros:string-not-all-spaces { length "1..58"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as an ASCII string"; } } } } // container server-id } // container proxy-server } // container dhcp6 container router-advertisements { when "../../fwd-service"; description "Enter the router-advertisements context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf max-advertisement-interval { type types-sros:time-duration { range "900..1800"; } units "seconds"; default "1800"; description "Maximum advertisement interval"; } leaf min-advertisement-interval { type types-sros:time-duration { range "900..1350"; } units "seconds"; default "900"; description "Minimum advertisement interval"; } leaf force-mcast { type enumeration { enum "ip" { value 1; } enum "ip-mac" { value 2; } } description "Send router advertisement to a multicast address instead of unicast for IPoE"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container options { description "Enter the options context"; leaf current-hop-limit { type uint32 { range "0..255"; } default "64"; description "Hop limit to be advertised"; } leaf managed-configuration { type boolean; default "false"; description "Managed address configuration flag"; } leaf mtu { type union { type uint32 { range "1280..9212"; } type enumeration { enum "not-included" { value 0; } } } units "bytes"; default "not-included"; description "Advertised MTU value"; } leaf other-stateful-configuration { type boolean; default "false"; description "Other stateful configuration flag"; } leaf reachable-time { type types-sros:time-duration { range "0..3600000"; } units "milliseconds"; default "0"; description "Neighbor discovery reachable time that is advertised for this group interface"; } leaf retransmit-timer { type uint32 { range "0..1800000"; } units "seconds"; default "0"; description "Neighbor discovery retransmit timer that is advertised for this group interface"; } leaf router-lifetime { type union { type types-sros:time-duration { range "2700..9000"; } type enumeration { enum "no-default-router" { value 0; } } } units "seconds"; default "4500"; description "Router lifetime"; } container dns { description "Enter the dns context"; leaf include-rdnss { type boolean; default "false"; description "Include the RDNSS server option 25"; } leaf rdnss-lifetime { type union { type types-sros:time-duration { range "900..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "3600"; description "Maximum time for the RDNSS address to remain valid"; } } // container dns } // container options container prefix-options { description "Enter the prefix-options context"; leaf autonomous { type boolean; default "false"; description "Value of the autonomous flag"; } leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container prefix-options } // container router-advertisements container router-solicit { when "../../fwd-service"; description "Enter the router-solicit context"; leaf inactivity-timer { type union { type types-sros:time-duration { range "1..31536000"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "300"; description "Time before an inactive host is removed"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container router-solicit } // container ipv6 container hold-time { description "Enter the hold-time context"; container ipv4 { description "Enter the ipv4 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container up { description "Enter the up context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Up hold time for the IP interface"; } } // container up container down { description "Enter the down context"; leaf seconds { type types-router:hold-time-seconds; units "seconds"; description "Down hold time for the IP interface"; } leaf init-only { type boolean; default "false"; description "Apply delay only at interface configuration or reboot"; } } // container down } // container ipv6 } // container hold-time container ipoe-linking { when "../fwd-service"; description "Enter the ipoe-linking context"; leaf gratuitous-router-advertisement { type boolean; default "false"; description "Send unsolicited router advertisement after DHCP setup"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ipoe-linking container ipoe-session { when "../fwd-service"; description "Enter the ipoe-session context"; leaf session-limit { type uint32 { range "1..500000"; } description "Maximum number of sessions on this group interface"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ipoe-session container pppoe { when "../fwd-service"; description "Enter the pppoe context"; leaf description { type types-sros:description; description "Text description"; } leaf session-limit { type uint32 { range "1..262143"; } default "1"; description "Maximum PPPoE sessions"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container pppoe container local-address-assignment { when "../fwd-service"; description "Enter the local-address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignment"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf server { type leafref { path "../../../../dhcp-server/dhcpv4/name"; } description "Local DHCP server that contains pools for local address assignment"; } leaf-list default-pool { type types-sros:named-item; max-elements 2; ordered-by user; description "Default pools"; } container client-applications { description "Enter the client-applications context"; leaf ppp { type boolean; default "false"; description "Request local addresses for PPP IPCP hosts"; } } // container client-applications } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf server { type leafref { path "../../../../dhcp-server/dhcpv6/name"; } description "Local DHCPv6 server that contains pools for local address assignment"; } container client-applications { description "Enter the client-applications context"; leaf ppp-slaac { type boolean; default "false"; description "Request local addresses for PPP SLAAC hosts"; } leaf ipoe-wan { type boolean; default "false"; description "Request local addresses for IPoE IA NA hosts"; } leaf ipoe-slaac { type boolean; default "false"; description "Request local addresses for IPoE SLAAC hosts"; } } // container client-applications } // container ipv6 } // container local-address-assignment list group-interface { when "not(../fwd-service)"; key "group-interface-name"; description "Enter the group-interface list instance"; leaf group-interface-name { type types-sros:interface-name; description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the interface"; } leaf description { type types-sros:very-long-description; description "Text description"; } leaf type { type types-services:group-interface-type; sros-ext:immutable; default "plain"; description "Group interface type"; } leaf radius-auth-policy { type leafref { path "../../../../../subscriber-mgmt/radius-authentication-policy/name"; } description "RADIUS authentication policy"; } leaf gx-policy { when "../type = 'plain' or ../type = 'lns' or ../type = 'wlan-gw' or ../type = 'gtp'"; type leafref { path "../../../../../subscriber-mgmt/diameter-gx-policy/name"; } description "Diameter application policy"; } leaf nasreq-auth-policy { when "../type = 'plain'"; type leafref { path "../../../../../subscriber-mgmt/diameter-nasreq-policy/name"; } description "Diameter NASREQ application policy to use for authentication"; } leaf ingress-stats { type boolean; default "false"; description "Collect ingress interface statistics"; } leaf ip-mtu { when "not(../type = 'bonding')"; type types-router:ip-mtu-ext; units "bytes"; description "Interface IP MTU"; } leaf mac { when "not(../type = 'wlan-gw') and not(../type = 'gtp') and not(../type = 'bonding')"; type types-sros:mac-unicast-address; description "MAC address for the interface"; } leaf oper-up-while-empty { when "../type = 'plain' or ../type = 'lns'"; type boolean; default "false"; description "Enable this group interface without any active SAPs"; } leaf redundant-interface { when "../type = 'plain' or ../type = 'lns'"; type leafref { path "../../../redundant-interface/interface-name"; } description "Redundant interface"; } leaf shcv-policy { when "../type = 'plain' or ../type = 'lns' or ../type = 'wlan-gw'"; type leafref { path "../../../../../subscriber-mgmt/shcv-policy/name"; } description "Subscriber host connectivity verification policy for IPv4 and IPv6"; } leaf shcv-policy-ipv4 { when "../type = 'plain' or ../type = 'lns' or ../type = 'wlan-gw'"; type leafref { path "../../../../../subscriber-mgmt/shcv-policy/name"; } description "Subscriber host connectivity verification policy for IPv4"; } leaf shcv-policy-ipv6 { when "../type = 'plain' or ../type = 'lns' or ../type = 'wlan-gw'"; type leafref { path "../../../../../subscriber-mgmt/shcv-policy/name"; } description "Subscriber host connectivity verification policy for IPv6"; } leaf suppress-aa-sub { type boolean; default "false"; description "Enable application assurance suppression for ESM subscribers"; } leaf tos-marking-state { type types-router:tos-marking-state; default "trusted"; description "TOS marking state"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ingress { description "Enter the ingress context"; leaf policy-accounting { type leafref { path "../../../../../../routing-options/policy-accounting/policy-acct-template/name"; } description "Configure ingress policy accounting."; } } // container ingress container dynamic-routes-track-srrp { when "../type = 'plain' or ../type = 'lns'"; presence "Enter the 'dynamic-routes-track-srrp' context"; description "Enable the dynamic-routes-track-srrp context"; leaf hold-time { type uint32 { range "1..50"; } units "deciseconds"; description "Delay before updating the route state after the last SRRP transition"; } } // container dynamic-routes-track-srrp container ipv4 { description "Enter the ipv4 context"; leaf qos-route-lookup { type types-router:qos-route-lookup-grp-if; description "QoS route lookup"; } leaf ignore-df-bit { when "../../type = 'wlan-gw'"; type boolean; default "false"; description "Ignore DF bit in the IPv4 header when fragmenting"; } container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container urpf-check { when "not(../../type = 'bonding')"; presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container arp-host { when "../../type = 'plain' or ../../type = 'lns'"; description "Enter the arp-host context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ARP hosts"; } leaf host-limit { type uint32 { range "1..524287"; } default "1"; description "Maximum number of ARP triggered hosts."; } leaf sap-host-limit { type uint32 { range "1..131071"; } default "1"; description "Maximum number of ARP triggered hosts allowed per SAP."; } leaf min-auth-interval { type types-sros:time-duration { range "1..6000"; } units "minutes"; default "15"; description "Minimal time that has to pass before incoming ARPs of an active ARP host are re-authenticated."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container arp-host container neighbor-discovery { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw'"; description "Enter the neighbor-discovery context"; leaf local-proxy-arp { type boolean; default "true"; description "Enable local proxy ARP on interface"; } leaf remote-proxy-arp { type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { type leafref { path "../../../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Proxy ARP policy name"; } leaf populate { when "../../../type = 'plain' or ../../../type = 'lns'"; type boolean; description "Allow static and dynamic hosts to be populated in system ARP cache"; } leaf timeout { when "../../../type = 'plain' or ../../../type = 'lns'"; type uint32 { range "0..65535"; } units "seconds"; default "14400"; description "Timeout for an ARP entry learned on the interface"; } } // container neighbor-discovery container dhcp { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw' or ../../type = 'gtp'"; description "Enter the dhcp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP"; } leaf description { type types-sros:description; description "Text description"; } leaf filter { type leafref { path "../../../../../../../filter/dhcp-filter/filter-id"; } description "DHCP filter."; } leaf python-policy { type leafref { path "../../../../../../../python/python-policy/name"; } description "Python policy name"; } leaf-list server { type types-sros:ipv4-unicast-address; max-elements 8; ordered-by user; description "IP addresses for DHCP server requests"; } leaf trusted { type boolean; default "false"; description "Relay untrusted packets"; } leaf gi-address { type types-sros:ipv4-unicast-address; description "Gateway interface address for the DHCP relay"; } leaf src-ip-addr { type enumeration { enum "auto" { value 0; } enum "gi-address" { value 1; } } default "auto"; description "Type of source address to use for DHCP relay"; } leaf match-circuit-id { when "not(../../../type = 'gtp')"; type boolean; default "false"; description "Configure match Opt82 circuit ID on relayed DHCP packets."; } leaf user-db { when "not(../../../type = 'gtp')"; type leafref { path "../../../../../../../subscriber-mgmt/local-user-db/name"; } description "Configure the local user database to use for authentication."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP proxy"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "Action to take with received DHCP Option 82"; } container circuit-id { description "Enter the circuit-id context"; choice circuit-id { default "ascii-tuple"; case none { leaf none { type empty; description "Do not include the Circuit ID"; } } case ifindex { leaf ifindex { type empty; description "Use the interface index for the Circuit ID"; } } case ascii-tuple { leaf ascii-tuple { type empty; description "Use the ASCII-encoded tuple for the Circuit ID"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in the option."; } } case vlan-ascii-tuple { leaf vlan-ascii-tuple { type empty; description "Include the VLAN ID and dot1p bits in the ASCII tuple"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice remote-id { default "none"; case none { leaf none { type empty; description "Do not include the Remote ID"; } } case mac { leaf mac { type empty; description "Use the MAC address for the Remote ID"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for the Remote ID"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf system-id { type boolean; default "false"; description "Send the system ID in the Vendor Specific Option"; } leaf client-mac-address { type boolean; default "false"; description "Send the MAC address in the Vendor Specific Option"; } leaf pool-name { type boolean; default "false"; description "Send the pool name in the Vendor Specific Option"; } leaf service-id { type boolean; default "false"; description "Send the service ID in the Vendor Specific Option"; } leaf sap-id { type boolean; default "false"; description "Send the SAP ID in the Nokia vendor specific suboption."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "User-defined ASCII string for Vendor Specific Option"; } } // container vendor-specific-option } // container option-82 container lease-populate { description "Enter the lease-populate context"; leaf max-leases { type uint32 { range "1..511999"; } default "1"; description "The maximum number of DHCPv4 leases."; } container l2-header { when "../../../../type = 'plain' or ../../../../type = 'lns'"; presence "Enter the 'l2-header' context"; description "Enable the l2-header context"; leaf mac { type types-sros:mac-unicast-address; description "Specify the MAC address."; } } // container l2-header } // container lease-populate container client-applications { when "../../../type = 'plain' or ../../../type = 'lns' or ../../../type = 'bonding'"; description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Enable/disable DHCP as client application."; } leaf ppp { type boolean; default "false"; description "Enable/disable PPP as client application."; } } // container client-applications container relay-proxy { when "not(../../../type = 'gtp')"; presence "Enter the 'relay-proxy' context"; description "Enable the relay-proxy context"; leaf release-update-src-ip { type boolean; default "false"; description "Specify whether or not to relay release messages."; } leaf siaddr-override { type types-sros:ipv4-unicast-address; description "Specify the IP address to use."; } } // container relay-proxy container offer-selection { description "Enter the offer-selection context"; leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Offer selection"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } } // container client-mac } case mode-server { list server { key "ipv4-address"; max-elements 8; description "Enter the server list instance"; leaf ipv4-address { type types-sros:ipv4-unicast-address; description "IP address of the DHCP server"; } leaf discover-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCP Discover messages"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server } } } // container offer-selection } // container dhcp } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf allow-multiple-wan-addresses { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw' or ../../type = 'gtp'"; type boolean; default "false"; description "Configure if the interface will accept multiple WAN addresses."; } leaf ipoe-bridged-mode { when "../../type = 'plain' or ../../type = 'lns'"; type boolean; default "false"; description "Enable/Disable IPv6 IPoE Bridged Mode."; } leaf qos-route-lookup { type types-router:qos-route-lookup-grp-if; description "QoS route lookup"; } container auto-reply { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw'"; description "Enter the auto-reply context"; leaf neighbor-solicitation { type boolean; default "false"; description "Enable auto-reply for NS"; } leaf router-solicitation { type boolean; default "false"; description "Enable auto-reply for RS"; } } // container auto-reply container urpf-check { when "not(../../type = 'bonding')"; presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check container dhcp6 { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw' or ../../type = 'gtp'"; description "Enter the dhcp6 context"; leaf filter { type leafref { path "../../../../../../../filter/dhcp6-filter/filter-id"; } description "DHCPv6 filter"; } leaf override-slaac { type boolean; default "false"; description "Allow WAN address offered by DHCP to overwrite the WAN address acquired from SLAAC"; } leaf python-policy { type leafref { path "../../../../../../../python/python-policy/name"; } description "Python policy"; } leaf user-db { when "not(../../../type = 'gtp')"; type leafref { path "../../../../../../../subscriber-mgmt/local-user-db/name"; } description "Assign a local user database."; } leaf user-ident { type types-services:dhcp6-user-ident; default "mac"; description "DHCP6 user identification for this interface"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pd-managed-route { presence "Enter the 'pd-managed-route' context"; description "Enable the pd-managed-route context"; leaf next-hop { type types-services:dhcp6-pd-managed-route-nh; default "ipv6"; description "Next hop type"; } } // container pd-managed-route container snooping { description "Enter the snooping context"; leaf admin-state { when "not(../../../../type = 'gtp')"; type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 snooping"; } } // container snooping container relay { description "Enter the relay context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 Relay"; } leaf description { type types-sros:description; description "Text description"; } leaf source-address { type types-sros:ipv6-unicast-address; description "Source IPv6 address for the DHCPv6 relay messages"; } leaf link-address { type types-sros:ipv6-address; description "Link address for the DHCPv6 relay messages"; } leaf-list server { type types-sros:ipv6-address-with-zone; max-elements 8; ordered-by user; description "DHCP6 server(s) to which the DHCP6 requests are forwarded"; } container client-applications { when "not(../../../../type = 'gtp')"; description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { when "not(../../../../../type = 'wlan-gw')"; type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container advertise-selection { description "Enter the advertise-selection context"; leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } choice mode { case mode-client-mac { container client-mac { description "Enter the client-mac context"; leaf mac-address { type enumeration { enum "odd" { value 1; } enum "even" { value 2; } } description "Designated client MAC addresses for Advertise selection"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container client-mac } case mode-server { list server { key "ipv6-address"; max-elements 8; description "Enter the server list instance"; leaf ipv6-address { type types-sros:ipv6-address; description "IP address of the DHCPv6 server"; } leaf solicit-delay { type int32 { range "1..100"; } units "deciseconds"; description "Delay before sending DHCPv6 Solicit messages"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // list server } } container preference-option { description "Enter the preference-option context"; leaf value { type int32 { range "0..255"; } description "Preference option value for DHCPv6 Advertise messages"; } } // container preference-option } // container advertise-selection container lease-split { description "Enter the lease-split context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 lease split"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime-new; default "3600"; description "DHCPv6 lease split valid lifetime (short lease time)"; } } // container lease-split } // container relay container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCPv6 proxy server"; } leaf preferred-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "3600"; description "Time for prefix to remain preferred on this interface"; } leaf valid-lifetime { type types-submgt:dhcp6-prefix-lifetime; default "86400"; description "Time for prefix to remain valid on this interface"; } leaf renew-timer { type types-submgt:dhcp6-renew-timer; description "Renew timer (T1)"; } leaf rebind-timer { type types-submgt:dhcp6-rebind-timer; description "Rebind timer (T2) for this interface"; } container client-applications { when "not(../../../../type = 'gtp')"; description "Enter the client-applications context"; leaf dhcp { type boolean; default "true"; description "Allow the DHCP application to make use of the DHCP relay functionality on this interface."; } leaf ppp { when "not(../../../../../type = 'wlan-gw')"; type boolean; default "false"; description "Allow the PPP application to use DHCP relay functionality"; } } // container client-applications container server-id { description "Enter the server-id context"; leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice server-id { default "duid-ll"; case duid-ll { leaf duid-ll { type empty; description "Use link-layer address (DUID-LL) as DUID"; } } case duid-en-hex { leaf duid-en-hex { type string { length "1..118"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as a hexadecimal string"; } } case duid-en-ascii { leaf duid-en-ascii { type types-sros:string-not-all-spaces { length "1..58"; } description "Vendor-assigned unique ID based on Enterprise Number (DUID-EN) as an ASCII string"; } } } } // container server-id } // container proxy-server container option { description "Enter the option context"; leaf remote-id { type boolean; default "false"; description "Allow remote ID option to be sent in the DHCPv6 relay packet"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container interface-id { description "Enter the interface-id context"; choice interface-id { case ascii-tuple { leaf ascii-tuple { type empty; description "Use ASCII-encoded concatenated tuple in interface ID option in DHCPv6 relay packet"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID in interface ID option in DHCPv6 relay packet"; } } case if-index { leaf if-index { type empty; description "Use interface index in interface ID option in DHCPv6 relay packet"; } } case string { leaf string { type types-sros:string-not-all-spaces { length "1..80"; } description "String for interface ID option in DHCPv6 relay packet"; } } } } // container interface-id } // container option } // container dhcp6 container neighbor-discovery { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw'"; description "Enter the neighbor-discovery context"; leaf dad-snooping { type boolean; default "false"; description "Duplicate address detection packets that are snooped to populate new neighbor entries for SLAAC hosts"; } leaf neighbor-limit { type int32 { range "1..8"; } default "1"; description "Maximum number of neighbor entries learned per SLAAC host"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container neighbor-discovery container router-advertisements { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw' or ../../type = 'gtp'"; description "Enter the router-advertisements context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router advertisement"; } leaf max-advertisement-interval { type types-sros:time-duration { range "900..1800"; } units "seconds"; default "1800"; description "Maximum advertisement interval"; } leaf min-advertisement-interval { type types-sros:time-duration { range "900..1350"; } units "seconds"; default "900"; description "Minimum advertisement interval"; } leaf force-mcast { type enumeration { enum "ip" { value 1; } enum "ip-mac" { value 2; } } description "Send router advertisement to a multicast address instead of unicast for IPoE"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container options { description "Enter the options context"; leaf current-hop-limit { type uint32 { range "0..255"; } default "64"; description "Hop limit to be advertised"; } leaf managed-configuration { type boolean; default "false"; description "Managed address configuration flag"; } leaf mtu { type union { type uint32 { range "1280..9212"; } type enumeration { enum "not-included" { value 0; } } } units "bytes"; default "not-included"; description "Advertised MTU value"; } leaf other-stateful-configuration { type boolean; default "false"; description "Other stateful configuration flag"; } leaf reachable-time { type types-sros:time-duration { range "0..3600000"; } units "milliseconds"; default "0"; description "Neighbor discovery reachable time that is advertised for this group interface"; } leaf retransmit-timer { type uint32 { range "0..1800000"; } units "seconds"; default "0"; description "Neighbor discovery retransmit timer that is advertised for this group interface"; } leaf router-lifetime { type union { type types-sros:time-duration { range "2700..9000"; } type enumeration { enum "no-default-router" { value 0; } } } units "seconds"; default "4500"; description "Router lifetime"; } container dns { description "Enter the dns context"; leaf include-rdnss { type boolean; default "false"; description "Include the RDNSS server option 25"; } leaf rdnss-lifetime { type union { type types-sros:time-duration { range "900..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "3600"; description "Maximum time for the RDNSS address to remain valid"; } } // container dns } // container options container prefix-options { description "Enter the prefix-options context"; leaf autonomous { type boolean; default "false"; description "Value of the autonomous flag"; } leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container prefix-options } // container router-advertisements container router-solicit { when "../../type = 'plain' or ../../type = 'lns' or ../../type = 'wlan-gw'"; description "Enter the router-solicit context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of router-solicit based authentication"; } leaf inactivity-timer { type union { type types-sros:time-duration { range "1..31536000"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "300"; description "Time before an inactive host is removed"; } leaf min-auth-interval { type types-sros:time-duration { range "1..360000"; } units "seconds"; default "300"; description "Minimum interval between two consecutive authentication attempts for the same host"; } leaf user-db { type leafref { path "../../../../../../../subscriber-mgmt/local-user-db/name"; } description "Local user-database that is used for router solicit based authentication"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container router-solicit } // container ipv6 container cflowd-parameters { description "Enter the cflowd-parameters context"; list sampling { key "sampling-type"; description "Enter the sampling list instance"; leaf sampling-type { type types-router:cflowd-sampling; description "Unicast or multicast traffic"; } leaf type { when "not(../sampling-type = 'both')"; type enumeration { enum "acl" { value 1; } enum "interface" { value 2; } } mandatory true; description "Type of cflowd analysis"; } leaf direction { type enumeration { enum "ingress-only" { value 1; } enum "egress-only" { value 2; } enum "both" { value 3; } } default "ingress-only"; description "Direction of traffic for cflowd sampling"; } leaf sample-profile { type union { type enumeration { enum "1" { value 1; } } type uint32; } description "Sample profile ID"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sampling } // container cflowd-parameters container ipoe-linking { when "../type = 'plain' or ../type = 'lns' or ../type = 'wlan-gw'"; description "Enter the ipoe-linking context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of IPoE host linking"; } leaf gratuitous-router-advertisement { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Send unsolicited router advertisement after DHCP setup"; } leaf shared-circuit-id { when "not(../../type = 'wlan-gw')"; type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Block DHCPv6 with unknown interface-id (circuit-id) until a circuit-id is learned from DHCP."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // container ipoe-linking container ipoe-session { when "../type = 'plain' or ../type = 'wlan-gw' or ../type = 'gtp' or ../type = 'bonding'"; description "Enter the ipoe-session context"; leaf admin-state { when "../../type = 'plain'"; type types-sros:admin-state; description "Administrative state of IPoE session management"; } leaf description { type types-sros:description; description "Text description"; } leaf ipoe-session-policy { when "../../type = 'plain'"; type leafref { path "../../../../../../subscriber-mgmt/ipoe-session-policy/name"; } sros-ext:auto-restart-to-modify; description "IPoE Session policy to be used for new sessions"; } leaf user-db { type leafref { path "../../../../../../subscriber-mgmt/local-user-db/name"; } sros-ext:auto-restart-to-modify; description "Local user database that is used to (pre-)authenticate new sessions"; } leaf session-limit { type uint32 { range "1..500000"; } description "Maximum number of sessions on this group interface"; } leaf sap-session-limit { when "../../type = 'plain'"; type uint32 { range "1..131071"; } description "Maximum number of sessions per SAP"; } leaf min-auth-interval { type types-submgt:ipoe-session-min-auth-interval; units "seconds"; default "infinite"; description "Minimum time between two authentication attempts"; } leaf radius-session-timeout { when "../../type = 'wlan-gw'"; type types-submgt:ipoe-session-radius-session-timeout; description "Session timeout attribute to be interpreted"; } leaf stateless-redundancy { when "not(../../type = 'wlan-gw')"; type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Remove IPoE sessions when the system becomes stand-by in a stateless multi-chassis redundancy setup"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container force-auth { description "Enter the force-auth context"; leaf cid-change { when "../../../type = 'plain' or ../../../type = 'wlan-gw'"; type boolean; description "Ignore min-auth-interval when circuit ID changed"; } leaf rid-change { when "../../../type = 'plain' or ../../../type = 'wlan-gw'"; type boolean; description "Ignore min-auth-interval when remote ID changed"; } } // container force-auth } // container ipoe-session container brg { when "../type = 'plain'"; description "Enter the brg context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of BRG"; } leaf authenticated-brg-only { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Allow BRGs that have been pre-authenticated"; } leaf default-brg-profile { type leafref { path "../../../../../../subscriber-mgmt/vrgw/brg-profile/brg-profile-name"; } sros-ext:auto-restart-to-modify; description "Default BRG profile that can be overridden during authentication"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // container brg container pppoe { when "../type = 'plain'"; description "Enter the pppoe context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of PPPoE"; } leaf description { type types-sros:description; description "Text description"; } leaf anti-spoof { type types-submgt:pppoe-anti-spoof; default "mac-sid"; description "PPPoE anti-spoof filtering"; } leaf policy { type leafref { path "../../../../../../subscriber-mgmt/ppp-policy/name"; } description "PPPoE policy"; } leaf session-limit { type uint32 { range "1..262143"; } default "1"; description "Maximum PPPoE sessions"; } leaf sap-session-limit { type uint32 { range "1..131071"; } default "1"; description "Maximum PPPoE sessions per SAP"; } leaf python-policy { type leafref { path "../../../../../../python/python-policy/name"; } description "Python policy used to modify PPPoE packets"; } leaf user-db { type leafref { path "../../../../../../subscriber-mgmt/local-user-db/name"; } sros-ext:auto-restart-to-modify; description "Local user database for authentication"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container dhcp-client { description "Enter the dhcp-client context"; leaf client-id { type enumeration { enum "mac-pppoe-session-id" { value 2; } } description "The type of information that DHCP option 61 will contain"; } } // container dhcp-client } // container pppoe container data-trigger { when "../type = 'plain'"; description "Enter the data-trigger context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of data-triggered host creation"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container data-trigger container local-address-assignment { description "Enter the local-address-assignment context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of local address assignment"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf server { when "../../../type = 'plain' or ../../../type = 'lns' or ../../../type = 'gtp' or ../../../type = 'bonding'"; type leafref { path "../../../../../dhcp-server/dhcpv4/name"; } description "Local DHCP server that contains pools for local address assignment"; } leaf-list default-pool { when "../../../type = 'plain' or ../../../type = 'lns'"; type types-sros:named-item; max-elements 2; ordered-by user; description "Default pools"; } container client-applications { description "Enter the client-applications context"; leaf ppp { when "../../../../type = 'plain' or ../../../../type = 'lns' or ../../../../type = 'gtp' or ../../../../type = 'bonding'"; type boolean; default "false"; description "Request local addresses for PPP IPCP hosts"; } leaf ipoe { when "../../../../type = 'gtp' or ../../../../type = 'bonding'"; type boolean; default "false"; description "Request local addresses for non-DHCP/managed IPoE hosts"; } } // container client-applications } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf server { type leafref { path "../../../../../dhcp-server/dhcpv6/name"; } description "Local DHCPv6 server that contains pools for local address assignment"; } container client-applications { description "Enter the client-applications context"; leaf ppp-slaac { when "../../../../type = 'plain' or ../../../../type = 'lns' or ../../../../type = 'gtp' or ../../../../type = 'bonding'"; type boolean; default "false"; description "Request local addresses for PPP SLAAC hosts"; } leaf ipoe-wan { type boolean; default "false"; description "Request local addresses for IPoE IA NA hosts"; } leaf ipoe-slaac { type boolean; default "false"; description "Request local addresses for IPoE SLAAC hosts"; } } // container client-applications } // container ipv6 } // container local-address-assignment list srrp { when "../type = 'plain' or ../type = 'lns'"; key "srrp-id"; max-elements 1; description "Enter the srrp list instance"; leaf srrp-id { type uint32 { range "1..4294967295"; } description "SRRP instance ID"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of SRRP"; } leaf description { type types-sros:description; description "Text description"; } leaf gw-mac { type types-sros:mac-unicast-address; description "Gateway MAC address"; } leaf keep-alive-interval { type uint32 { range "1..100"; } units "deciseconds"; default "10"; description "Interval between SRRP advertisements"; } leaf message-path { type leafref { path "../../sap/sap-id"; } sros-ext:auto-restart-to-modify; description "SAP to use as the SRRP message path"; } leaf-list policy { type leafref { path "../../../../../../vrrp/policy/policy-id"; } max-elements 2; ordered-by user; description "VRRP priority control policy associated with the SRRP"; } leaf priority { type uint32 { range "1..254"; } default "100"; description "Priority for this interface at this level"; } leaf send-fib-population-packets { type enumeration { enum "all" { value 1; } enum "outer-tag-only" { value 2; } } default "all"; description "Mode used to send FIB population packets (such as ARP) on switchover"; } leaf preempt { type boolean; default "true"; description "Allow the SRRP instance to override an existing master"; } leaf one-garp-per-sap { type boolean; default "false"; description "Send one gratuitous ARP to each SAP"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container monitor-oper-group { description "Enter the monitor-oper-group context"; leaf group-name { type leafref { path "../../../../../../oper-group/name"; } description "Operational group name"; } leaf priority-step { type uint8 { range "1..10"; } description "Value with which the group priority increases or decreases if the state of this messaging-SAP changes."; } } // container monitor-oper-group container bfd-liveness { presence "Enter the 'bfd-liveness' context"; description "Enable the bfd-liveness context"; leaf dest-ip { type types-sros:ipv4-address; sros-ext:immutable; mandatory true; description "Destination IPv4 prefix"; } leaf service-name { type types-services:service-name; sros-ext:immutable; description "Administrative service name"; } leaf interface-name { type types-sros:interface-name; sros-ext:immutable; mandatory true; description "Name of interface running BFD"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container bfd-liveness } // list srrp container sap-parameters { when "../type = 'lns' or ../type = 'wlan-gw' or ../type = 'gtp' or ../type = 'bonding'"; description "Enter the sap-parameters context"; leaf description { type types-sros:description; description "Text description"; } leaf anti-spoof { when "../../type = 'wlan-gw'"; type enumeration { enum "ip-mac" { value 3; } enum "nh-mac" { value 4; } } default "ip-mac"; description "Anti-spoofing type."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container sub-sla-mgmt { description "Enter the sub-sla-mgmt context"; leaf sub-ident-policy { type leafref { path "../../../../../../../subscriber-mgmt/sub-ident-policy/name"; } description "Subscriber identification policy"; } container defaults { description "Enter the defaults context"; leaf sub-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Default subscriber profile"; } leaf sla-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sla-profile/name"; } description "Default SLA profile"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "String to be used as default subscriber ID"; } } case auto-id { leaf auto-id { type empty; description "Subscriber ID that is autogenerated"; } } } } // container subscriber-id } // container defaults } // container sub-sla-mgmt } // container sap-parameters container bonding-parameters { when "../type = 'bonding'"; description "Enter the bonding-parameters context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of ESM connection bonding"; } leaf fpe { type leafref { path "../../../../../../fwd-path-ext/fpe/fpe-id"; } sros-ext:auto-restart-to-modify; description "FPE that provisions bonding functionality"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container multicast { description "Enter the multicast context"; leaf connection { type types-submgt:multicast-bonding-connection; sros-ext:auto-restart-to-modify; default "use-incoming"; description "Multicast connection"; } } // container multicast list connection { key "connection-index"; description "Enter the connection list instance"; leaf connection-index { type types-submgt:bonding-connection-index; description "Bonding connection index"; } leaf service { type types-services:service-name; description "Connection service"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list connection } // container bonding-parameters container gtp-parameters { when "../type = 'gtp'"; description "Enter the gtp-parameters context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of GTP access"; } leaf fpe { type leafref { path "../../../../../../fwd-path-ext/fpe/fpe-id"; } sros-ext:auto-restart-to-modify; description "PE that provisions the GTP user interface"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container gtp-parameters container wpp { when "../type = 'plain'"; presence "Enter the 'wpp' context"; description "Enable the wpp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WPP"; } leaf restore-to-initial-on-disconnect { type boolean; default "true"; description "Restore initial profiles after a host has disconnected"; } leaf user-db { type leafref { path "../../../../../../subscriber-mgmt/local-user-db/name"; } description "User database"; } leaf lease-time { type types-sros:time-duration { range "10..315446399"; } default "600"; description "Lease time"; } leaf triggered-hosts { type boolean; default "false"; description "Enable/disable triggered hosts"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container portal { description "Enter the portal context"; choice portal { case portal { leaf router-instance { type string; description "The virtual router instance of the WPP portal for this interface"; } leaf name { type types-sros:named-item; description "Name for the WPP portal of the interface"; } } case portal-group { leaf portal-group { type leafref { path "../../../../../../../aaa/wpp/portal-group/group-name"; } description "WPP portal group for this interface"; } } } } // container portal container initial { description "Enter the initial context"; leaf sub-profile { type leafref { path "../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Initial subscriber profile"; } leaf sla-profile { type leafref { path "../../../../../../../subscriber-mgmt/sla-profile/name"; } description "Initial SLA profile"; } } // container initial } // container wpp list sap { when "../type = 'plain'"; key "sap-id"; description "Enter the sap list instance"; leaf sap-id { type types-sros:sap; description "SAP identifier"; } leaf description { type types-sros:long-description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SAP"; } leaf accounting-policy { type leafref { path "../../../../../../log/accounting-policy/policy-id"; } description "Accounting policy"; } leaf anti-spoof { type types-services:anti-spoof-option-ip; default "source-ip-and-mac-addr"; description "Type of anti-spoof filtering"; } leaf calling-station-id { type types-sros:string-not-all-spaces { length "1..64"; } description "Calling station ID"; } leaf collect-stats { type boolean; default "false"; description "Collect accounting statistics"; } leaf dist-cpu-protection { type leafref { path "../../../../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Distributed CPU protection policy for SAP"; } leaf host-admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of hosts"; } leaf host-lockout-policy { type leafref { path "../../../../../../subscriber-mgmt/host-lockout-policy/name"; } description "Host lockout policy"; } leaf multi-service-site { type types-sros:named-item; description "Multi service site name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice oper-group-association { case oper-group { leaf oper-group { type leafref { path "../../../../../oper-group/name"; } description "Operational group"; } } case monitor-oper-group { leaf monitor-oper-group { type leafref { path "../../../../../oper-group/name"; } description "Monitor operational group"; } } } container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf match-qinq-dot1p { type enumeration { enum "top" { value 2; } enum "bottom" { value 3; } } description "Ingress match QinQ Dot1p"; } container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "Policy identifier"; } leaf queuing-type { type types-services:services-sap-queuing-type; description "Queuing type"; } } // container sap-ingress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter } // container ingress container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf qinq-mark-top-only { type boolean; default "false"; description "Mark top Q-tags"; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "Policy identifier"; } } // container sap-egress container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy name"; } } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy name"; } } // container scheduler-policy } // container qos container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6 { type leafref { path "../../../../../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } } // container filter container agg-rate { description "Enter the agg-rate context"; leaf limit-unused-bandwidth { type boolean; default "false"; description "Enable aggregate rate overrun protection"; } leaf rate { type types-services:agg-rate-rate; description "Maximum total rate of all egress queues in kbps."; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } } // container agg-rate } // container egress container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Monitor MAC for CPU protection"; } } case cfm { container eth-cfm-monitoring { presence "Enter the 'eth-cfm-monitoring' context"; description "Enable the eth-cfm-monitoring context"; leaf aggregate { type empty; description "Apply rate limit to the sum of the per peer packet rates"; } leaf car { type empty; description "Eth-CFM packets to be ignored when enforcing overall rate"; } } // container eth-cfm-monitoring } case ip { leaf ip-src-monitoring { type empty; description "Enable IP source monitoring for CPU protection"; } } } } // container cpu-protection container lag { description "Enter the lag context"; leaf link-map-profile { type types-services:link-map-profile-id; description "LAG link map profile applied to a SAP or network interface"; } container per-link-hash { description "Enter the per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used on LAG egress when using weighted per-link-hash"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight used on LAG egress when using weighted per-link-hash"; } } // container per-link-hash } // container lag container fwd-wholesale { description "Enter the fwd-wholesale context"; leaf pppoe-service { type leafref { path "../../../../../../epipe/service-name"; } description "PPPoE service name"; } } // container fwd-wholesale container eth-cfm { description "Enter the eth-cfm context"; leaf collect-lmm-stats { type boolean; default "false"; description "Collect statistics for loss measurement message tests"; } leaf-list squelch-ingress-levels { type uint32 { range "0..7"; } max-elements 8; description "Levels for which ETH-CFM packets are silently discarded"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container collect-lmm-fc-stats { description "Enter the collect-lmm-fc-stats context"; leaf-list fc { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-unaware counter"; } leaf-list fc-in-profile { type types-eth-cfm:fc-type; max-elements 8; description "Forwarding class name for profile-aware counter"; } } // container collect-lmm-fc-stats list mep { key "md-admin-name ma-admin-name mep-id"; description "Enter the mep list instance"; leaf md-admin-name { type leafref { path "../../../../../../../../eth-cfm/domain/md-admin-name"; } description "Admin-assigned maintenance domain index value"; } leaf ma-admin-name { type leafref { path "../../../../../../../../eth-cfm/domain[md-admin-name=current()/../md-admin-name]/association/ma-admin-name"; } description "Admin-assigned maintenance association index value"; } leaf mep-id { type types-eth-cfm:mep-id-type; description "MEP identifier"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MEP"; } leaf description { type types-sros:description; description "Text description"; } leaf low-priority-defect { type types-eth-cfm:lowest-alarm-priority; default "mac-rem-err-xcon"; description "Lowest priority defect that is allowed to generate a fault alarm"; } leaf fault-propagation { type types-eth-cfm:fault-propagation-type; description "Fault propagation for the MEP"; } leaf ccm { type boolean; default "false"; description "Generate CCM messages"; } leaf ccm-ltm-priority { type types-eth-cfm:frame-priority; default "7"; description "Priority of CCM and LTM messages transmitted by the MEP"; } leaf ccm-padding-size { type uint32 { range "3..1500"; } description "Number of octets of padding to insert in CCM packets"; } leaf one-way-delay-threshold { type uint32 { range "0..600"; } units "seconds"; default "3"; description "Threshold time limit for one-way delay test"; } leaf ais { type boolean; default "false"; description "Generate AIS frames from the Maintenance Entity Group (MEG)."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarm-notification { description "Enter the alarm-notification context"; leaf fng-alarm-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is raised"; } leaf fng-reset-time { type int32 { range "250|500|1000"; } units "centiseconds"; description "Time that must expire before an FNG alarm is reset"; } } // container alarm-notification container csf { presence "Enter the 'csf' context"; description "Enable the csf context"; leaf multiplier { type decimal64 { range "0.0|2.0..30.0"; fraction-digits 1; } default "3.5"; description "Receive period multiplier to time out CSF"; } } // container csf container eth-test { presence "Enter the 'eth-test' context"; description "Enable the eth-test context"; leaf bit-error-threshold { type uint32 { range "0..11840"; } units "bit errors"; default "1"; description "Lowest priority defect allowed to generate fault alarm"; } container test-pattern { description "Enter the test-pattern context"; leaf pattern { type enumeration { enum "all-zeros" { value 0; } enum "all-ones" { value 1; } } default "all-zeros"; description "Test pattern for ETH-test frames"; } leaf crc-tlv { type boolean; default "false"; description "Generate a CRC checksum"; } } // container test-pattern } // container eth-test container grace { description "Enter the grace context"; container eth-ed { description "Enter the eth-ed context"; leaf max-rx-defect-window { type uint32 { range "1..86400"; } units "seconds"; description "Maximum received ETH-ED window duration"; } leaf priority { type int32 { range "0..7"; } description "Transmission priority for ETH-ED PDUs"; } leaf rx-eth-ed { type boolean; default "true"; description "Receive and process ETH-ED ITU-T Y.1731 PDUs on the MEP"; } leaf tx-eth-ed { type boolean; default "false"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-ed container eth-vsm-grace { description "Enter the eth-vsm-grace context"; leaf rx-eth-vsm-grace { type boolean; default "true"; description "Receive and process Nokia ETH-CFM Grace PDU on the MEP"; } leaf tx-eth-vsm-grace { type boolean; default "true"; description "Transmit ETH-ED PDUs from the MEP"; } } // container eth-vsm-grace } // container grace } // list mep } // container eth-cfm container sub-sla-mgmt { description "Enter the sub-sla-mgmt context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of subscriber management on this SAP"; } leaf sub-ident-policy { type leafref { path "../../../../../../../subscriber-mgmt/sub-ident-policy/name"; } description "Subscriber identification policy used on this SAP"; } leaf subscriber-limit { type types-submgt:sap-subscriber-limit; default "1"; description "Maximum number of subscribers on this SAP"; } container defaults { description "Enter the defaults context"; leaf sub-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Default subscriber profile used for subscribers on this SAP"; } leaf sla-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sla-profile/name"; } description "Default SLA profile for hosts on this SAP"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case auto-id { leaf auto-id { type empty; description "Use auto-generated subscriber identification string"; } } case sap-id { leaf sap-id { type empty; description "Use SAP ID as default subscriber identification string"; } } case string { leaf string { type types-submgt:subscriber-id; description "Default subscriber identification string for the SAP"; } } } } // container subscriber-id container int-dest-id { description "Enter the int-dest-id context"; choice int-dest-id { case top-q-tag { leaf top-q-tag { type empty; description "Use the top Q-tag of this SAP"; } } case string { leaf string { type types-submgt:int-dest-id; description "Use the configured string"; } } } } // container int-dest-id } // container defaults container single-sub-parameters { description "Enter the single-sub-parameters context"; leaf profiled-traffic-only { type boolean; default "false"; description "Include all traffic in subscriber profile"; } container non-sub-traffic { presence "Enter the 'non-sub-traffic' context"; description "Enable the non-sub-traffic context"; leaf sub-profile { type leafref { path "../../../../../../../../../subscriber-mgmt/sub-profile/name"; } mandatory true; description "Subscriber ID profile applied for all non-subscriber traffic"; } leaf sla-profile { type leafref { path "../../../../../../../../../subscriber-mgmt/sla-profile/name"; } mandatory true; description "SLA profile applicable for all non-subscriber traffic"; } leaf subscriber-id { type types-submgt:subscriber-id; sros-ext:immutable; description "Subscriber ID applied for all non-subscriber traffic"; } } // container non-sub-traffic } // container single-sub-parameters } // container sub-sla-mgmt container static-host { description "Enter the static-host context"; container mac-learning { description "Enter the mac-learning context"; leaf data-triggered { type boolean; default "false"; description "Enable learning of MAC addresses from data packets."; } leaf single-mac { type boolean; default "false"; description "Enforce the limit of a single MAC address per SAP, learned by means of ICMPv6."; } } // container mac-learning list ipv4 { key "ip mac"; description "Enter the ipv4 list instance"; leaf ip { type types-sros:ipv4-unicast-address; description "IP address used by the static host."; } leaf mac { type types-sros:mac-unicast-address; description "MAC address of the static host."; } leaf rip-policy { type leafref { path "../../../../../../../../subscriber-mgmt/rip-policy/name"; } description "RIP policy name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Sub-profile name"; } leaf sla-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sla-profile/name"; } description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id container shcv { description "Enter the shcv context"; } // container shcv list managed-route { key "prefix"; max-elements 16; description "Add a list entry for managed-route"; leaf prefix { type types-sros:ipv4-unicast-prefix; description "Managed route prefix."; } } // list managed-route } // list ipv4 list ipv6 { key "prefix mac"; description "Enter the ipv6 list instance"; leaf prefix { type types-sros:ipv6-unicast-prefix; description "IPv6 prefix"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the static host"; } leaf sub-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sub-profile/name"; } description "Sub-profile name"; } leaf sla-profile { type leafref { path "../../../../../../../../subscriber-mgmt/sla-profile/name"; } description "SLA profile name"; } leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf mac-linking { type types-sros:ipv4-unicast-address; description "IPv6 host associated with the IPv4 host through the learned MAC address"; } leaf retail-svc-id { type types-services:external-service-id; description "Retail service ID"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id { case string { leaf string { type types-submgt:subscriber-id; description "Subscriber identification"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use the SAP id as subscriber ID"; } } } } // container subscriber-id container shcv { description "Enter the shcv context"; } // container shcv list managed-route { key "ipv6-prefix"; max-elements 16; description "Enter the managed-route list instance"; leaf ipv6-prefix { type types-sros:ipv6-unicast-prefix; description "Managed route prefix."; } leaf metric { type uint32; default "0"; description "Managed route metric."; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list managed-route } // list ipv6 } // container static-host container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; description "Time during which the system continues to track inactive hosts"; } leaf import-policy { type leafref { path "../../../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of multicast groups to be tracked"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of multicast groups to be tracked per group"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of multicast sources to be tracked"; } leaf router-alert-check { type boolean; default "true"; description "Enable IGMP router alert check option"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container igmp-host-tracking container default-host { description "Enter the default-host context"; list ipv4 { key "address prefix-length"; description "Enter the ipv4 list instance"; leaf address { type leafref { path "../../../../../ipv4/address/ipv4-address"; } description "IPv4 default host address."; } leaf prefix-length { type uint32 { range "0..32"; } description "IPv4 address prefix length"; } leaf next-hop { type types-sros:ipv4-unicast-address; sros-ext:immutable; mandatory true; description "Next-hop used to forward default-host traffic on this SAP."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ipv4 list ipv6 { key "address prefix-length"; description "Enter the ipv6 list instance"; leaf address { type types-sros:ipv6-unicast-address; description "IPv6 default host address."; } leaf prefix-length { type uint32 { range "0..128"; } description "IPv6 default host prefix length."; } leaf next-hop { type types-sros:ipv6-unicast-address; sros-ext:immutable; mandatory true; description "Next-hop used to forward default-host traffic on this SAP."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ipv6 } // container default-host } // list sap container wlan-gw { when "../type = 'wlan-gw'"; description "Enter the wlan-gw context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of WLAN Gateway"; } leaf oper-down-on-group-degrade { type boolean; default "false"; description "Bring interface operationally down when its ISA WLAN Gateway becomes degraded"; } leaf tcp-mss-adjust { type uint32 { range "160..10240"; } units "bytes"; description "Value for the TCP Maximum Segment Size (MSS) option if not present, or if value is higher"; } leaf wlan-gw-group { type leafref { path "../../../../../../isa/wlan-gw-group/id"; } sros-ext:auto-restart-to-modify; description "Identifier of the WLAN Gateway ISA group to terminate UEs for this group interface"; } leaf gateway-router { type string; sros-ext:auto-restart-to-modify; description "The routing instance where the tunneled UE traffic is routed, or empty to specify that the routing instance corresponding to the service containing this interface is used."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container lanext { presence "Enter the 'lanext' context"; sros-ext:auto-restart-to-modify; description "Enable the lanext context"; leaf max-bd { type uint32 { range "1..131071"; } sros-ext:auto-restart-to-modify; default "131071"; description "Maximum number of bridge domains"; } } // container lanext container learn-ap-mac { presence "Enter the 'learn-ap-mac' context"; description "Enable the learn-ap-mac context"; leaf delay-auth { type boolean; default "false"; description "Delay authentication until ARP/ND is answered or timed out, after which AP MAC can be included"; } } // container learn-ap-mac container mobility { description "Enter the mobility context"; leaf hold-time { type types-sros:time-duration { range "0..255"; } units "seconds"; default "5"; description "Minimum time between two mobility events for a single UE"; } leaf inter-tunnel-type { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Enable mobility between terminating tunnel types"; } leaf inter-vlan { type boolean; default "false"; description "Enable mobility within different VLANs within the same range of VLAN Q-tags"; } container trigger { description "Enter the trigger context"; leaf data { type boolean; default "false"; description "Use data traffic as mobility trigger"; } leaf iapp { type boolean; default "false"; description "Use Inter Access Point Protocol (IAPP) messages as mobility trigger"; } leaf control { type boolean; default "false"; description "Use control traffic (DHCP, DHCPv6, and ICMPv6-RS messages) as mobility trigger"; } } // container trigger } // container mobility container tunnel-egress-qos { description "Enter the tunnel-egress-qos context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of egress QoS for WLAN-GW tunnels"; } leaf agg-rate-limit { type types-qos:pir-rate-override; default "max"; description "Aggregate rate limit of each shaper associated with this interface"; } leaf granularity { type types-wlangw:shaping-granularity; sros-ext:auto-restart-to-modify; default "per-tunnel"; description "Granularity of the egress shaping for WLAN Gateway"; } leaf hold-time { type union { type types-sros:time-duration { range "1..86400"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Minimum time that the egress QoS resources associated with a tunnel (such as a shaper) are held"; } leaf multi-client-only { type boolean; default "false"; description "Tunnel traffic to shape when multiple UEs use this tunnel"; } leaf qos { type leafref { path "../../../../../../../qos/sap-egress/sap-egress-policy-name"; } sros-ext:auto-restart-to-modify; description "Identifier of the egress QoS policy associated with each tunnel of this interface"; } leaf scheduler-policy { type leafref { path "../../../../../../../qos/scheduler-policy/scheduler-policy-name"; } sros-ext:auto-restart-to-modify; description "Identifier of the egress scheduler policy associated with each tunnel of this interface"; } } // container tunnel-egress-qos container tunnel-encaps { description "Enter the tunnel-encaps context"; leaf learn-l2tp-cookie { type union { type enumeration { enum "never" { value 2; description "The cookie will never be interpreted."; } enum "always" { value 3; description "The cookie will always be interpreted, regardless of the value of its first two octets."; } } type types-sros:hex-string { length "6"; } } default "never"; description "System that learns the cookie from L2TP tunnels terminating on this interface"; } } // container tunnel-encaps container l2-ap { description "Enter the l2-ap context"; leaf auto-sub-id-fmt { type enumeration { enum "include-ap-tags" { value 0; } enum "sap-only" { value 1; } } default "include-ap-tags"; description "Format of the auto-generated subscriber ID"; } leaf default-encap-type { type enumeration { enum "null" { value 1; } enum "dot1q" { value 2; } enum "qinq" { value 10; } } sros-ext:auto-restart-to-modify; default "null"; description "Default encapsulation type for Layer 2 access points"; } list access-point { key "sap-id"; description "Enter the access-point list instance"; leaf sap-id { type types-sros:sap; description "SAP ID for the Layer 2 access point"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the L2 access points"; } leaf encap-type { type enumeration { enum "null" { value 1; } enum "dot1q" { value 2; } enum "qinq" { value 10; } } description "Service encapsulation type of this access point"; } leaf epipe-sap-template { type leafref { path "../../../../../../../template/epipe-sap-template/name"; } description "Parameters template for the internal connections with the ISA cards"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list access-point } // container l2-ap list gateway-address { key "address"; max-elements 10; description "Enter the gateway-address list instance"; leaf address { type types-sros:ip-unicast-without-local-address; description "Gateway endpoint address of the WLAN Gateway tunnel"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container purpose { description "Enter the purpose context"; leaf xconnect { type boolean; default "false"; description "Use tunnel IP address for crosse-connect traffic"; } } // container purpose } // list gateway-address list vlan-range { key "range"; description "Enter the vlan-range list instance"; leaf range { type string { pattern "((([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-5]))(\\.\\.(([0-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-8][0-9]|409[0-5])))?)|(unmatched)"; } description "IEEE 802.1q VLAN tag range"; } leaf http-redirect-policy { type leafref { path "../../../../../../../subscriber-mgmt/http-redirect-policy/name"; } description "Default HTTP redirect policy for portal authentication"; } leaf idle-timeout-action { type types-wlangw:idle-timeout-action; default "remove"; description "Action to perform when the idle timeout expires"; } leaf nat-policy { type leafref { path "../../../../../../nat/nat-policy/name"; } description "NAT policy for DSM and ISA portal authentication"; } leaf retail-service { type types-services:service-name; description "Default retail service for new UEs in this range"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container authentication { description "Enter the authentication context"; leaf hold-time { type types-sros:time-duration { range "0..3600"; } units "seconds"; default "5"; description "Minimum time to hold a UE down after an authentication failure"; } leaf on-control-plane { type boolean; default "false"; description "Trigger authentication on first control plane packet instead of first data packet"; } leaf policy { type leafref { path "../../../../../../../../aaa/radius/isa-policy/name"; } description "RADIUS policy for authentication"; } leaf vlan-mismatch-timeout { type types-sros:time-duration { range "5..60"; } units "seconds"; description "Timeout value for the RADIUS proxy cache if a packet is received with a non-matching VLAN"; } } // container authentication container data-triggered-ue-creation { description "Enter the data-triggered-ue-creation context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of data-triggered UE creation"; } container create-proxy-cache-entry { description "Enter the create-proxy-cache-entry context"; leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } container proxy-server { presence "Enter the 'proxy-server' context"; description "Enable the proxy-server context"; leaf router-instance { type string; mandatory true; description "The router instance of the RADIUS Proxy server."; } leaf name { type types-sros:named-item; mandatory true; description "RADIUS Proxy server name"; } } // container proxy-server } // container create-proxy-cache-entry } // container data-triggered-ue-creation container l2-service { presence "Enter the 'l2-service' context"; description "Enable the l2-service context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Layer 2 service for VLAN range"; } leaf description { type types-sros:description; description "Text description"; } leaf service { type leafref { path "../../../../../../../vpls/service-name"; } mandatory true; description "Layer 2 service associated with the range"; } } // container l2-service container dhcp4 { description "Enter the dhcp4 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv4 protocol"; } leaf l2-aware-ip-address { type union { type types-sros:ipv4-unicast-address; type enumeration { enum "from-pool" { value 0; description "The l2-aware IP address should be allocated from a pool."; } } } description "L2-Aware NAT inside IP address"; } leaf-list dns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "DNS servers signaled in DHCP"; } leaf-list nbns { type types-sros:ipv4-unicast-address; max-elements 2; ordered-by user; description "NetBIOS servers signaled in DHCP"; } container lease-time { description "Enter the lease-time context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "IP address lease time for the UE after successful (portal) authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "IP address lease time that is provided before and during (portal) authentication to the UE"; } } // container lease-time } // container dhcp4 container dhcp6 { description "Enter the dhcp6 context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the protocol"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container preferred-lifetime { description "Enter the preferred-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Preferred signaled lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Preferred signaled lifetime when the UE is not fully authenticated"; } } // container preferred-lifetime container valid-lifetime { description "Enter the valid-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Signaled valid lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Valid signaled lifetime when the UE is not fully authenticated"; } } // container valid-lifetime } // container dhcp6 container slaac { description "Enter the slaac context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the protocol"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container preferred-lifetime { description "Enter the preferred-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Preferred signaled lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Preferred signaled lifetime when the UE is not fully authenticated"; } } // container preferred-lifetime container valid-lifetime { description "Enter the valid-lifetime context"; leaf active { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "600"; description "Signaled valid lifetime after full authentication"; } leaf initial { type types-sros:time-duration { range "300..3600"; } units "seconds"; default "300"; description "Valid signaled lifetime when the UE is not fully authenticated"; } } // container valid-lifetime } // container slaac container dsm { description "Enter the dsm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DSM"; } leaf accounting-policy { type leafref { path "../../../../../../../../aaa/radius/isa-policy/name"; } sros-ext:auto-restart-to-modify; description "ISA Radius Policy for accounting"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container accounting-update { presence "Enter the 'accounting-update' context"; description "Enable the accounting-update context"; leaf interval { type uint32 { range "5..259200"; } units "minutes"; mandatory true; description "Time interval between consecutive Interim accounting update messages"; } } // container accounting-update container ingress { description "Enter the ingress context"; leaf policer { type leafref { path "../../../../../../../../../subscriber-mgmt/isa-policer/name"; } description "Policer for ingress traffic"; } leaf ip-filter { type leafref { path "../../../../../../../../../subscriber-mgmt/isa-filter/name"; } description "Filter for ingress traffic"; } } // container ingress container egress { description "Enter the egress context"; leaf policer { type leafref { path "../../../../../../../../../subscriber-mgmt/isa-policer/name"; } description "Policer for egress traffic"; } } // container egress container one-time-redirect { description "Enter the one-time-redirect context"; leaf url { type types-wlangw:one-time-http-redirect-url; description "URL for redirected HTTP protocol packets that can be overridden by AAA"; } leaf port { type uint32 { range "1..65535"; } default "80"; description "Destination port of packets considered for HTTP redirect"; } } // container one-time-redirect } // container dsm container vrgw { description "Enter the vrgw context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of VRGW"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container brg { description "Enter the brg context"; leaf default-brg-profile { type leafref { path "../../../../../../../../../subscriber-mgmt/vrgw/brg-profile/brg-profile-name"; } sros-ext:auto-restart-to-modify; description "Default BRG profile to use if the AAA server does not specify one"; } leaf authenticated-brg-only { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Only allow hosts from BRGs pre-authenticated using the radius-proxy"; } } // container brg container lanext { description "Enter the lanext context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of HLE"; } leaf assistive-address-resolution { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "ISA assists in address resolution"; } leaf bd-mac-prefix { type string { length "8"; pattern "[0-9a-f][02468ace](:[0-9a-f]{2}){2}"; } sros-ext:auto-restart-to-modify; description "Prefix from which BD MACs for MAC translation are derived"; } leaf mac-translation { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Hide MAC address of home host by translating it to BD MAC"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container access { sros-ext:auto-restart-to-modify; description "Enter the access context"; leaf max-mac { type uint32 { range "1..256"; } sros-ext:auto-restart-to-modify; default "20"; description "Maximum number of MAC entries in bridged domain from access side"; } leaf multi-access { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Allow multiple access points"; } leaf policer { type leafref { path "../../../../../../../../../../subscriber-mgmt/isa-policer/name"; } sros-ext:auto-restart-to-modify; description "Policer for ingress home traffic"; } } // container access container network { sros-ext:auto-restart-to-modify; description "Enter the network context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "enable"; description "Administrative state of network"; } leaf max-mac { type uint32 { range "1..64"; } sros-ext:auto-restart-to-modify; default "20"; description "Maximum number of MAC entries in bridged domain from network side"; } leaf policer { type leafref { path "../../../../../../../../../../subscriber-mgmt/isa-policer/name"; } sros-ext:auto-restart-to-modify; description "Policer for ingress data center traffic"; } } // container network } // container lanext } // container vrgw container xconnect { description "Enter the xconnect context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the cross-connect"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container accounting { description "Enter the accounting context"; leaf policy { type leafref { path "../../../../../../../../../aaa/radius/isa-policy/name"; } sros-ext:auto-restart-to-modify; description "ISA RADIUS accounting policy for cross-connected UEs"; } leaf update-interval { type types-sros:time-duration { range "5..259200"; } units "minutes"; description "Time between consecutive Interim accounting update messages"; } leaf mobility-updates { type boolean; default "false"; description "Accounting updates triggered by mobility"; } } // container accounting } // container xconnect } // list vlan-range } // container wlan-gw } // list group-interface container wlan-gw { presence "Enter the 'wlan-gw' context"; description "Enable the wlan-gw context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container pool-manager { description "Enter the pool-manager context"; leaf wlan-gw-group { type leafref { path "../../../../../../isa/wlan-gw-group/id"; } description "Identifier of the WLAN Gateway ISA group on which the prefixes are installed"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container dhcp6-client { description "Enter the dhcp6-client context"; leaf source-ip { type union { type enumeration { enum "use-interface-ip" { value 0; } } type types-sros:ipv6-address; } default "use-interface-ip"; description "Source IP address that is used by the DHCPv6 client"; } leaf-list servers { type types-sros:ipv6-unicast-address; max-elements 8; description "DHCPv6 servers that are used for requesting addresses"; } container lease-query { presence "Enter the 'lease-query' context"; description "Enable the lease-query context"; leaf max-retries { type uint32 { range "0..10"; } default "2"; description "Maximum number of retries before the lease query assumes that no existing subnets were allocated"; } } // container lease-query container dhcpv4-nat { description "Enter the dhcpv4-nat context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container dhcpv4-nat container ia-na { description "Enter the ia-na context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container ia-na container slaac { description "Enter the slaac context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the DHCPv6 client entity"; } leaf link-address { type types-sros:ipv6-address; default "::"; description "The IPv6-address that should be included in the link-address field of the relay header."; } leaf pool-name { type types-sros:named-item; description "Pool name to be sent in the DHCPv6 messages"; } } // container slaac } // container dhcp6-client container watermarks { description "Enter the watermarks context"; leaf high { type uint32 { range "51..99"; } default "95"; description "New prefix that is used when the ISA level reaches high watermark"; } leaf low { type uint32 { range "50..98"; } default "90"; description "Prefix that is released if the usage level without this prefix is below the low watermark"; } } // container watermarks } // container pool-manager container redundancy { description "Enter the redundancy context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of redundancy"; } leaf export { type types-sros:ipv4-unicast-prefix; sros-ext:auto-restart-to-modify; description "Route to export to peer"; } leaf monitor { type types-sros:ipv4-unicast-prefix; sros-ext:auto-restart-to-modify; description "Peer route to monitor"; } } // container redundancy } // container wlan-gw } // list subscriber-interface container twamp-light { description "Enter the twamp-light context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container reflector { presence "Enter the 'reflector' context"; description "Enable the reflector context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of TWAMP Light functionality"; } leaf description { type types-sros:description; description "Text description"; } leaf udp-port { type types-sros:tcp-udp-port-non-zero { range "862|64364..64373"; } sros-ext:auto-restart-to-modify; mandatory true; description "UDP port on which the specified TWAMP-Light reflector listens for TWAMP PDUs"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list prefix { key "ip-prefix"; max-elements 50; description "Enter the prefix list instance"; leaf ip-prefix { type types-sros:ip-unicast-prefix; description "Source prefix for the TWAMP-Light reflector"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // container reflector } // container twamp-light list video-interface { key "interface-name"; description "Enter the video-interface list instance"; leaf interface-name { type types-sros:interface-name { length "1..29"; } description "Interface name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the video interface"; } leaf accounting-policy { type leafref { path "../../../../log/accounting-policy/policy-id"; } description "Accounting Policy"; } leaf description { type types-sros:description; description "Text description"; } leaf cpu-protection { type leafref { path "../../../../system/security/cpu-protection/policy/policy-id"; } description "CPU protection policy"; } leaf multicast-service { type types-services:external-service-id; description "Service ID of the associated multicast service."; } leaf output-format { type enumeration { enum "udp" { value 1; } enum "rtp-udp" { value 2; } } default "rtp-udp"; description "Output format"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rt-client { presence "Enter the 'rt-client' context"; description "Enable the rt-client context"; leaf src-address { type types-sros:ipv4-unicast-address; mandatory true; description "An IP address for the RT client."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container rt-client container adi { description "Enter the adi context"; container scte30 { description "Enter the scte30 context"; list ad-server { key "address"; max-elements 4; description "Add a list entry for ad-server"; leaf address { type types-sros:ipv4-address; description "Ad server address"; } } // list ad-server container local-address { presence "Enter the 'local-address' context"; description "Enable the local-address context"; leaf control { type types-sros:ipv4-unicast-address; mandatory true; description "Control"; } leaf data { type types-sros:ipv4-unicast-address; mandatory true; description "Data"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container local-address } // container scte30 } // container adi container video-sap { presence "Enter the 'video-sap' context"; description "Enable the video-sap context"; leaf video-group-id { type leafref { path "../../../../../isa/video-group/video-group-id"; } sros-ext:immutable; mandatory true; description "Group id for the video interface."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "SAP-egress QoS policy"; } } // container qos } // container egress container ingress { description "Enter the ingress context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container filter { description "Enter the filter context"; leaf ip { type leafref { path "../../../../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container filter container qos { description "Enter the qos context"; leaf policy-name { type leafref { path "../../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "SAP-ingress QoS policy"; } } // container qos } // container ingress } // container video-sap list address { key "ip-address"; max-elements 16; description "Add a list entry for address"; leaf ip-address { type types-sros:ipv4-prefix-with-host-bits; description "IPv4 address for the video interface within the service"; } } // list address list channel { key "mcast-address source"; description "Enter the channel list instance"; leaf mcast-address { type types-sros:ipv4-multicast-address; description "Multicast channel address"; } leaf source { type types-sros:ipv4-unicast-address; description "Unicast source address"; } leaf channel-name { type types-sros:named-item; mandatory true; description "max 32 chars."; } leaf description { type types-sros:description; description "Text description"; } leaf scte35-action { type enumeration { enum "forward" { value 1; } enum "drop" { value 2; } } default "forward"; description "Enable/disable forwarding scte 35 cue avails."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list zone-channel { key "zone-mcast-address zone-source"; description "Enter the zone-channel list instance"; leaf zone-mcast-address { type types-sros:ipv4-multicast-address; description "Multicast zone channel address"; } leaf zone-source { type types-sros:ipv4-unicast-address; description "Unicast source address"; } leaf adi-channel-name { type types-sros:named-item; description "max 32 chars."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list zone-channel } // list channel } // list video-interface } // list vprn } // container service list sfm { key "sfm-slot"; description "Enter the sfm list instance"; leaf sfm-slot { type uint32 { range "1..16"; } description "Unique value to identify this SFM slot within a chassis in the system"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of SFM"; } leaf sfm-type { type types-sfm:sros-sfm-type; sros-ext:immutable; description "Provision the SFM type"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sfm container subscriber-mgmt { description "Enter the subscriber-mgmt context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list diameter-gx-policy { key "name"; max-elements 32; description "Enter the diameter-gx-policy list instance"; leaf name { type types-sros:named-item; description "Diameter application policy"; } leaf description { type types-sros:description; description "Text description"; } leaf tx-timer { type types-sros:time-duration { range "10..1000"; } units "seconds"; default "10"; description "Maximum wait time for a pending session request"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice diameter-base { case node { container node { description "Enter the node context"; leaf origin-host { type leafref { path "../../../../aaa/diameter/node/origin-host"; } sros-ext:immutable; description "Origin-host that identifies the diameter-node that is to be used for transmission"; } leaf destination-realm { type string { length "1..80"; } description "Destination-Realm to where the diameter application messages should be delivered."; } } // container node } case peer-policy { leaf peer-policy { status deprecated; type leafref { path "../../../aaa/diameter/peer-policy/name"; } sros-ext:immutable; description "Configure the policy for the Diameter peers."; } } } container on-failure { description "Enter the on-failure context"; leaf failover { type boolean; default "true"; description "Session peer failover"; } leaf handling { type enumeration { enum "terminate" { value 1; } enum "continue" { value 2; } enum "retry-and-terminate" { value 3; } } default "terminate"; description "Session peer failure handling"; } } // container on-failure container gx { description "Enter the gx context"; leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } leaf report-ip-address-event { type boolean; default "true"; description "Enable CCR-u upon IP address allocation events for dual stack subscribers"; } leaf credit-mcs-interval { type types-sros:time-duration { range "5..60"; } units "minutes"; default "10"; description "Volume syncing interval for usage monitoring"; } leaf destination-realm-learning { type boolean; default "true"; description "Learn the destination realm from the incoming messages"; } container avp-subscription-id { description "Enter the avp-subscription-id context"; leaf origin { type enumeration { enum "subscriber-id" { value 1; } enum "circuit-id" { value 2; } enum "imsi" { value 3; } enum "msisdn" { value 4; } enum "imei" { value 5; } enum "dual-stack-remote-id" { value 6; } enum "mac" { value 7; } enum "username" { value 8; } enum "nas-port-id" { value 9; } } default "subscriber-id"; description "Format of the Subscription-Id-Data AVP"; } leaf type { type enumeration { enum "e164" { value 0; } enum "imsi" { value 1; } enum "nai" { value 3; } enum "private" { value 4; } } default "private"; description "Format of the Subscription-Id-Type AVP"; } } // container avp-subscription-id container ccrt-replay { presence "Enter the 'ccrt-replay' context"; description "Enable the ccrt-replay context"; leaf interval { type uint32 { range "60..86400"; } default "3600"; description "Minimum interval between two consecutive CCR-t replay attempts in a session"; } leaf max-lifetime { type types-sros:time-duration { range "1..24"; } units "hours"; default "24"; description "The maximum time in hours for CCR-t replay attempts for a sessions."; } } // container ccrt-replay container include-avp { description "Enter the include-avp context"; leaf an-gw-address { type boolean; default "false"; description "Include the IP address of this gateway"; } leaf apn-ambr { type boolean; default "false"; description "Include the APN aggregate maximum bitrate"; } leaf called-station-id { type boolean; default "false"; description "Include the called station ID"; } leaf ip-can-type { type boolean; default "false"; description "Include the IP CAN type"; } leaf logical-access-id { type boolean; default "false"; description "Include the logical access id"; } leaf pdn-connection-id { type boolean; default "false"; description "Include the PDN connection id"; } leaf physical-access-id { type boolean; default "false"; description "Include the physical access ID"; } leaf rai { type boolean; default "false"; description "Include the routing area identity"; } leaf rat-type { type boolean; default "false"; description "Include the RAT type"; } leaf sgsn-mcc-mnc { type boolean; default "false"; description "Include the SGSN MCC and MNC."; } leaf supported-features { type boolean; default "false"; description "Include the supported features"; } leaf user-location-info { type boolean; default "false"; description "Include the user location info."; } container calling-station-id { presence "Enter the 'calling-station-id' context"; description "Enable the calling-station-id context"; leaf type { type enumeration { enum "sap-string" { value 1; } enum "mac" { value 2; } enum "sap-id" { value 3; } enum "remote-id" { value 4; } enum "llid" { value 5; } } default "sap-string"; description "Specifies the calling-station-id type."; } } // container calling-station-id container nas-port { presence "Enter the 'nas-port' context"; description "Enable the nas-port context"; leaf bit-spec { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[oismpvc])+"; } mandatory true; description "NAS-Port AVP format"; } } // container nas-port container nas-port-id { presence "Enter the 'nas-port-id' context"; description "Enable the nas-port-id context"; leaf prefix-string { type string { length "1..8"; } description "Prefix string for NAS-Port-Id AVP"; } container suffix { description "Enter the suffix context"; choice suffix { default "not-included"; description "Configure the format of the nas-port-id suffix."; case not-included { leaf not-included { type empty; description "Do not add a suffix"; } } case circuit-id { leaf circuit-id { type empty; description "Add Circuit ID as suffix"; } } case remote-id { leaf remote-id { type empty; description "Add Remote ID as suffix"; } } case user-string { leaf user-string { type string { length "1..64"; } description "Add a user configurable string as suffix"; } } } } // container suffix } // container nas-port-id container nas-port-type { presence "Enter the 'nas-port-type' context"; description "Enable the nas-port-type context"; leaf type { type uint32 { range "0..255"; } description "NAS-Port-Type AVP value"; } } // container nas-port-type container user-equipment-info { presence "Enter the 'user-equipment-info' context"; description "Enable the user-equipment-info context"; leaf type { type enumeration { enum "imeisv" { value 0; } enum "mac" { value 1; } enum "eui64" { value 2; } enum "modified-eui64" { value 3; } } default "mac"; description "Information to include in User-Equipment-Info attribute in CCR messages"; } } // container user-equipment-info } // container include-avp container three-gpp-qos-mapping { description "Enter the three-gpp-qos-mapping context"; container apn-ambr-dl { description "Enter the apn-ambr-dl context"; choice qos-override { default "ignore-override"; case ignore-override { leaf ignore-override { type empty; description "no override on apn-ambr-dl"; } } case arbiter { leaf arbiter { type types-sros:named-item; description "Arbiter name to be overridden"; } } case policer { leaf policer { type types-qos:sap-egress-policer-id; description "policerId used for the apn-ambr-dl qos override."; } } case queue { leaf queue { type types-qos:egress-queue-id; description "queueId used for the apn-ambr-dl qos override."; } } case scheduler { leaf scheduler { type types-sros:named-item; description "scheduler name used for the apn-ambr-dl qos override"; } } case aggregate-rate { leaf aggregate-rate { type empty; description "map apn-ambr-dl to an aggregate rate override."; } } case hs-sla-agg-rate { leaf hs-sla-agg-rate { type empty; description "map apn-ambr-dl to an hs aggregate rate override."; } } } } // container apn-ambr-dl container apn-ambr-ul { description "Enter the apn-ambr-ul context"; choice qos-override { default "ignore-override"; case ignore-override { leaf ignore-override { type empty; description "no override on apn-ambr-ul"; } } case arbiter { leaf arbiter { type types-sros:named-item; description "Arbiter name to be overridden"; } } case policer { leaf policer { type types-qos:ingress-policer-id; description "policerId used for the apn-ambr-ul qos override."; } } case queue { leaf queue { type types-qos:ingress-queue-id; description "queueId used for the apn-ambr-ul qos override."; } } case scheduler { leaf scheduler { type types-sros:named-item; description "scheduler name used for the apn-ambr-ul qos override"; } } } } // container apn-ambr-ul } // container three-gpp-qos-mapping container features { description "Enter the features context"; leaf extended-bandwidth { type boolean; default "false"; description "Negotiate support for extended bandwidth AVPs"; } } // container features } // container gx } // list diameter-gx-policy list diameter-gy-policy { key "name"; max-elements 32; description "Enter the diameter-gy-policy list instance"; leaf name { type types-sros:named-item; description "Diameter application policy"; } leaf description { type types-sros:description; description "Text description"; } leaf tx-timer { type types-sros:time-duration { range "10..1000"; } units "seconds"; default "10"; description "Maximum wait time for a pending session request"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice diameter-base { case node { container node { description "Enter the node context"; leaf origin-host { type leafref { path "../../../../aaa/diameter/node/origin-host"; } sros-ext:immutable; description "Origin-host that identifies the diameter-node that is to be used for transmission"; } leaf destination-realm { type string { length "1..80"; } description "Destination-Realm to where the diameter application messages should be delivered."; } } // container node } case peer-policy { leaf peer-policy { status deprecated; type leafref { path "../../../aaa/diameter/peer-policy/name"; } sros-ext:immutable; description "Configure the policy for the Diameter peers."; } } } container on-failure { description "Enter the on-failure context"; leaf failover { type boolean; default "true"; description "Session peer failover"; } leaf handling { type enumeration { enum "terminate" { value 1; } enum "continue" { value 2; } enum "retry-and-terminate" { value 3; } } default "terminate"; description "Session peer failure handling"; } } // container on-failure container gy { description "Enter the gy context"; leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } leaf out-of-credit-reporting { type enumeration { enum "final" { value 1; } enum "quota-exhausted" { value 2; } } default "final"; description "Reporting reason when the final granted units are consumed"; } leaf vendor-support { type types-diam:diam-vendor-support; default "three-gpp"; description "Vendor support type announced in capability exchange"; } leaf destination-realm-learning { type boolean; default "true"; description "Learn the destination realm from the incoming messages"; } container avp-subscription-id { description "Enter the avp-subscription-id context"; leaf origin { type enumeration { enum "subscriber-id" { value 1; } enum "circuit-id" { value 2; } enum "imsi" { value 3; } enum "msisdn" { value 4; } enum "imei" { value 5; } enum "dual-stack-remote-id" { value 6; } enum "mac" { value 7; } enum "username" { value 8; } enum "nas-port-id" { value 9; } } default "subscriber-id"; description "Origin for the Subscription-Id-Data AVP"; } leaf type { type enumeration { enum "e164" { value 0; } enum "imsi" { value 1; } enum "nai" { value 3; } enum "private" { value 4; } } default "private"; description "Origin for the Subscription-Id-Type AVP"; } } // container avp-subscription-id container include-avp { description "Enter the include-avp context"; leaf three-gpp-charging-characteristics { type boolean; default "true"; description "DCCA 3GPP charging characteristics AVP parameter"; } leaf three-gpp-charging-id { type enumeration { enum "false" { value 0; } enum "auto" { value 1; } enum "esm-info" { value 2; } enum "id" { value 3; } } default "auto"; description "DCCA 3GPP charging ID AVP parameter"; } leaf three-gpp-ggsn-ipv4-address { type boolean; default "true"; description "Include the 3GPP-GGSN-Address."; } leaf three-gpp-ggsn-ipv6-address { type boolean; default "false"; description "Include the 3GPP-GGSN-Ipv6 address"; } leaf three-gpp-gprs-negotiated-qos-profile { type boolean; default "true"; description "Include the DCCA 3GPP GPRS-negotiated QoS profile AVP parameter"; } leaf three-gpp-imsi { type enumeration { enum "false" { value 0; } enum "subscriber-id" { value 1; } enum "circuit-id" { value 2; } enum "imsi" { value 3; } } default "subscriber-id"; description "Origin of the information to send in the IMSI AVP"; } leaf three-gpp-nsapi { type boolean; default "true"; description "Include the 3GPP-NSAPI"; } leaf three-gpp-selection-mode { type boolean; default "true"; description "DCCA 3GPP selection mode AVP parameter"; } leaf three-gpp-session-stop-indicator { type boolean; default "true"; description "DCCA 3GPP session stop indicator AVP parameter"; } leaf three-gpp-user-location-info { type boolean; default "false"; description "DCCA 3GPP session stop indicator AVP parameter"; } leaf address-avp { type boolean; default "true"; description "DCCA AVPs that contain the host address or prefix"; } leaf pdp-context-type { type boolean; default "true"; description "Include the DCCA PDP-Context-Type AVP Parameter"; } leaf ps-information { type boolean; default "false"; description "Enable reporting of AVPs in grouped PS-Information AVP"; } leaf aaa-user-name { type boolean; default "false"; description "Include the User-Name."; } container three-gpp-rat-type { presence "Enter the 'three-gpp-rat-type' context"; description "Enable the three-gpp-rat-type context"; leaf type { type uint32 { range "1..255"; } mandatory true; description "Value for 3GPP-RAT-Type AVP"; } } // container three-gpp-rat-type container called-station-id { presence "Enter the 'called-station-id' context"; description "Enable the called-station-id context"; leaf id { type types-sros:string-not-all-spaces { length "1..64"; } mandatory true; description "MAC address of AP in WiFi"; } } // container called-station-id container charging-rule-base-name { description "Enter the charging-rule-base-name context"; choice charging-rule-base-name { default "category-map"; case category-map { leaf category-map { type empty; description "Use the category map name in use for this session"; } } case user-string { leaf user-string { type types-sros:string-not-all-spaces { length "1..64"; } description "String for charging rule base name"; } } case not-included { leaf not-included { type empty; description "Do not include Charging-Rule-Base-Name AVP in Diameter DCCA CCR messages"; } } } } // container charging-rule-base-name container ggsn-address { presence "Enter the 'ggsn-address' context"; description "Enable the ggsn-address context"; leaf type { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 2; } } mandatory true; description "Address type of GGSN address AVP"; } } // container ggsn-address container service-context-id { presence "Enter the 'service-context-id' context"; description "Enable the service-context-id context"; leaf id { type types-sros:string-not-all-spaces { length "1..32"; } mandatory true; description "Name for the service context ID AVP"; } } // container service-context-id container user-equipment-info-type { presence "Enter the 'user-equipment-info-type' context"; description "Enable the user-equipment-info-type context"; leaf type { type enumeration { enum "imeisv" { value 1; } } mandatory true; description "Information to include in User-Equipment-Info attribute in CCR messages"; } } // container user-equipment-info-type } // container include-avp container extended-failure-handling { description "Enter the extended-failure-handling context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of Extended Failure Handling"; } leaf new-session-id { type boolean; default "false"; description "Enable/disable using a new session id for CCR-i messages."; } container interim-credit { description "Enter the interim-credit context"; leaf max-attempts { type union { type uint32 { range "1..4294967295"; } type enumeration { enum "infinite" { value 0; } } } default "10"; description "Attempts to retry setting up a session to the OCS"; } leaf reporting { type boolean; default "false"; description "Report interim Credit"; } leaf validity-time { type union { type types-sros:time-duration { range "1..4294967295"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "1800"; description "Validity time for interim credit"; } container volume { description "Enter the volume context"; leaf credits { type uint32 { range "1..4294967295"; } default "500"; description "Default volume credit value"; } leaf units { type enumeration { enum "bytes" { value 0; } enum "kilobytes" { value 1; } enum "megabytes" { value 2; } enum "gigabytes" { value 3; } } default "megabytes"; description "Default volume credit units"; } } // container volume } // container interim-credit } // container extended-failure-handling container ccrt-replay { presence "Enter the 'ccrt-replay' context"; description "Enable the ccrt-replay context"; leaf interval { type uint32 { range "60..86400"; } default "3600"; description "The interval between two consecutive CCR-t replay attempts for a sessions."; } leaf max-lifetime { type types-sros:time-duration { range "1..24"; } units "hours"; default "24"; description "The maximum time in hours for CCR-t replay attempts for a sessions."; } } // container ccrt-replay } // container gy } // list diameter-gy-policy list diameter-nasreq-policy { key "name"; max-elements 32; description "Enter the diameter-nasreq-policy list instance"; leaf name { type types-sros:named-item; description "Diameter application policy"; } leaf description { type types-sros:description; description "Text description"; } leaf tx-timer { type types-sros:time-duration { range "10..1000"; } units "seconds"; default "10"; description "Maximum wait time for a pending session request"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice diameter-base { case node { container node { description "Enter the node context"; leaf origin-host { type leafref { path "../../../../aaa/diameter/node/origin-host"; } sros-ext:immutable; description "Origin-host that identifies the diameter-node that is to be used for transmission"; } leaf destination-realm { type string { length "1..80"; } description "Destination-Realm to where the diameter application messages should be delivered."; } } // container node } case peer-policy { leaf peer-policy { status deprecated; type leafref { path "../../../aaa/diameter/peer-policy/name"; } sros-ext:immutable; description "Configure the policy for the Diameter peers."; } } } container on-failure { description "Enter the on-failure context"; leaf failover { type boolean; default "true"; description "Session peer failover"; } leaf handling { type enumeration { enum "terminate" { value 1; } enum "continue" { value 2; } enum "retry-and-terminate" { value 3; } } default "terminate"; description "Session peer failure handling"; } } // container on-failure container nasreq { description "Enter the nasreq context"; leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "AA-request password"; } container user-name { description "Enter the user-name context"; leaf format { type enumeration { enum "mac" { value 1; } enum "circuit-id" { value 2; } enum "tuple" { value 3; } enum "ascii-converted-circuit-id" { value 4; } enum "ascii-converted-tuple" { value 5; } enum "dhcp-client-vendor-opts" { value 6; } enum "mac-giaddr" { value 7; } enum "nas-port-id" { value 8; } } default "mac"; description "Format type for username"; } leaf operation { type types-submgt:user-name-format-domain-operation; description "Operation to perform"; } leaf domain-name { type string { length "1..128"; } description "Domain name"; } } // container user-name container include-avp { description "Enter the include-avp context"; leaf called-station-id { type boolean; default "false"; description "Include the Called-Station-Id."; } leaf circuit-id { type boolean; default "false"; description "Include the Circuit-Id."; } leaf imei { type boolean; default "false"; description "Include the IMEI"; } leaf rat-type { type boolean; default "false"; description "Include the RAT-Type."; } leaf remote-id { type boolean; default "false"; description "Include the Remote-Id."; } leaf user-location-info { type boolean; default "false"; description "Include the user-location-info."; } container calling-station-id { presence "Enter the 'calling-station-id' context"; description "Enable the calling-station-id context"; leaf type { type enumeration { enum "sap-string" { value 1; } enum "mac" { value 2; } enum "sap-id" { value 3; } enum "remote-id" { value 4; } enum "llid" { value 5; } } default "sap-string"; description "Origin of the calling-station-id."; } } // container calling-station-id container nas-port { presence "Enter the 'nas-port' context"; description "Enable the nas-port context"; leaf bit-spec { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[oismpvc])+"; } mandatory true; description "NAS-Port AVP format"; } } // container nas-port container nas-port-id { presence "Enter the 'nas-port-id' context"; description "Enable the nas-port-id context"; leaf prefix-string { type string { length "1..8"; } description "Prefix string for NAS-Port-Id AVP"; } container suffix { description "Enter the suffix context"; choice suffix { default "not-included"; description "Configure the format of the nas-port-id suffix."; case not-included { leaf not-included { type empty; description "Do not add a suffix"; } } case circuit-id { leaf circuit-id { type empty; description "Add Circuit ID as suffix"; } } case remote-id { leaf remote-id { type empty; description "Add Remote ID as suffix"; } } case user-string { leaf user-string { type string { length "1..64"; } description "Add a user configurable string as suffix"; } } } } // container suffix } // container nas-port-id container nas-port-type { presence "Enter the 'nas-port-type' context"; description "Enable the nas-port-type context"; leaf type { type union { type enumeration { enum "rfc-aligned" { value 1000; } } type uint32 { range "0..255"; } } default "rfc-aligned"; description "NAS-Port-Type AVP value"; } } // container nas-port-type } // container include-avp } // container nasreq } // list diameter-nasreq-policy list group-interface-template { key "name"; max-elements 256; description "Enter the group-interface-template list instance"; leaf name { type types-sros:named-item; description "Identifies this group interface template template"; } leaf description { type types-sros:description; description "Text description"; } leaf ip-mtu { type types-router:ip-mtu-ext; units "bytes"; description "IP MTU applied to outgoing packets"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; container icmp { description "Enter the icmp context"; leaf mask-reply { type boolean; default "true"; description "Allow responses to ICMP mask requests on the interface"; } container redirects { description "Enter the redirects context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending ICMP redirect messages"; } leaf number { type uint16 { range "10..1000"; } default "100"; description "Maximum number of ICMP redirect messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of ICMP redirect messages"; } } // container redirects container ttl-expired { description "Enter the ttl-expired context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending TTL expired messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of TTL expired messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit the number of TTL expired messages"; } } // container ttl-expired container unreachables { description "Enter the unreachables context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sending unreachable messages"; } leaf number { type uint16 { range "10..2000"; } default "100"; description "Maximum number of unreachable messages to send"; } leaf seconds { type uint16 { range "1..60"; } units "seconds"; default "10"; description "Time to limit the number of ICMP unreachable messages"; } } // container unreachables container param-problem { description "Enter the param-problem context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of sent Parameter Problem messages"; } leaf number { type uint32 { range "10..1000"; } default "100"; description "Maximum number of Parameter Problem messages to send"; } leaf seconds { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time used to limit number of Parameter Problem messages"; } } // container param-problem } // container icmp container neighbor-discovery { description "Enter the neighbor-discovery context"; leaf remote-proxy-arp { type boolean; default "false"; description "Enable remote proxy ARP on interface"; } leaf-list proxy-arp-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } max-elements 5; ordered-by user; description "Proxy ARP policy name"; } } // container neighbor-discovery container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check } // container ipv4 container ipv6 { description "Enter the ipv6 context"; container urpf-check { presence "Enter the 'urpf-check' context"; description "Enable the urpf-check context"; leaf mode { type types-router:urpf-check-mode; default "strict"; description "Unicast RPF check mode"; } } // container urpf-check } // container ipv6 } // list group-interface-template list ipoe-session-policy { key "name"; max-elements 256; description "Enter the ipoe-session-policy list instance"; leaf name { type types-sros:named-item; description "Name for IPoE session policy"; } leaf circuit-id-from-auth { type boolean; sros-ext:immutable; default "false"; description "Use the Circuit ID from the authentication server to identify a session"; } leaf description { type types-sros:description; description "Text description"; } leaf session-timeout { type union { type uint32 { range "1..31104000"; } type enumeration { enum "unlimited" { value 0; } } } default "unlimited"; description "Timeout for IPoE sessions"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container session-key { description "Enter the session-key context"; leaf sap { type boolean; description "Use the SAP ID as part of the index"; } leaf mac { type boolean; description "Use the MAC address as part of the index"; } leaf cid { type boolean; sros-ext:immutable; description "Use the Circuit ID as part of the index"; } leaf rid { type boolean; sros-ext:immutable; description "Use the remote ID as part of the index"; } } // container session-key } // list ipoe-session-policy list sap-template { key "name"; max-elements 256; description "Enter the sap-template list instance"; leaf name { type types-sros:named-item; description "SAP template name"; } leaf description { type types-sros:description; description "Text description"; } leaf dist-cpu-protection { type leafref { path "../../../system/security/dist-cpu-protection/policy/policy-name"; } description "Distributed CPU protection policy name"; } leaf hold-time { type union { type types-sros:time-duration { range "0|30..2592000"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "30"; description "Time to hold a SAP after last PFCP session is removed"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../system/security/cpu-protection/policy/policy-id"; } description "CPU protection policy ID"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Apply CPU protection policy on MAC sources"; } } case ip { leaf ip-src-monitoring { type empty; description "Apply CPU protection policy on IP sources"; } } } } // container cpu-protection } // list sap-template list steering-profile { key "name"; max-elements 32; description "Enter the steering-profile list instance"; leaf name { type types-sros:named-item; description "The name of this steering profile."; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container access { description "Enter the access context"; leaf router-instance { type string; description "Specifies the routing instance used for access next-hop."; } } // container access container network { description "Enter the network context"; leaf next-hop { type types-sros:ipv4-unicast-address; description "Next-hop IP address used for network next-hop"; } leaf router-instance { type string; description "Specifies the (optional) routing instance used for network next-hop. If not specified, the routing instance that receives downstream packets is used to redirect packets to network next-hop"; } } // container network } // list steering-profile container explicit-subscriber-map { description "Enter the explicit-subscriber-map context"; list entry { key "subscriber-id"; description "Enter the entry list instance"; leaf subscriber-id { type types-submgt:subscriber-id; description "Subscriber Identification string"; } leaf sub-profile { type leafref { path "../../../sub-profile/name"; } description "Subscriber profile name"; } leaf alias { type string { length "1..64"; } description "Alias for subscriber identification string"; } leaf sla-profile { type leafref { path "../../../sla-profile/name"; } description "SLA profile name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list entry } // container explicit-subscriber-map list accu-stats-policy { key "name"; max-elements 32; description "Enter the accu-stats-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list egress { key "type id"; max-elements 4; description "Add a list entry for egress"; leaf type { type types-submgt:queue-or-policer; description "Type"; } leaf id { type types-submgt:queue-or-policer-id; description "Queue or policer ID"; } } // list egress list ingress { key "type id"; max-elements 4; description "Add a list entry for ingress"; leaf type { type types-submgt:queue-or-policer; description "Type"; } leaf id { type types-submgt:queue-or-policer-id; description "Queue or policer ID"; } } // list ingress } // list accu-stats-policy list host-tracking-policy { key "name"; description "Enter the host-tracking-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress-rate-modify { description "Enter the egress-rate-modify context"; choice rate-modify { case agg-rate { leaf agg-rate { type empty; description "Aggregate rate that applies for modification"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Scheduler to be applied for rate modification"; } } } } // container egress-rate-modify } // list host-tracking-policy list igmp-policy { key "name"; description "Enter the igmp-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf redirection-policy { type leafref { path "../../../policy-options/policy-statement/name"; } description "Policy for redirection."; } leaf replication { type enumeration { enum "per-sap" { value 0; } enum "per-host" { value 1; } } default "per-sap"; description "Specifies where outgoing traffic will be replicated."; } leaf fast-leave { type boolean; default "true"; description "Enable fast leave"; } leaf use-multicast-destination-mac { type boolean; default "false"; description "Use multicast destination mac address for outgoing traffic."; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type leafref { path "../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP protocol version"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress-rate-modify { description "Enter the egress-rate-modify context"; choice rate-modify { case agg-rate { leaf agg-rate { type empty; description "Aggregate rate that applies for modification"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Scheduler to be applied for rate modification"; } } } } // container egress-rate-modify container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv4-multicast-address; description "Group address of static IGMP multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv4-unicast-address; description "Source IP address of multicast channel sending data"; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static container multicast-reporter { description "Enter the multicast-reporter context"; leaf destination { type leafref { path "../../../../multicast-management/multicast-reporting-destination/name"; } description "Multicast reporter destination"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of multicast reporter"; } container optional-fields { description "Enter the optional-fields context"; leaf host-mac { type boolean; default "false"; description "Include host mac address"; } leaf pppoe-session-id { type boolean; default "false"; description "Include the PPPoE session ID in multicast reporting messages"; } leaf svc-id { type boolean; default "false"; description "Include service ID"; } leaf sap-id { type boolean; default "false"; description "Include sap ID"; } } // container optional-fields } // container multicast-reporter } // list igmp-policy list mld-policy { key "name"; description "Enter the mld-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf redirection-policy { type leafref { path "../../../policy-options/policy-statement/name"; } description "Policy for redirection."; } leaf replication { type enumeration { enum "per-sap" { value 0; } enum "per-host" { value 1; } } default "per-sap"; description "Specifies where outgoing traffic will be replicated."; } leaf fast-leave { type boolean; default "true"; description "Enable fast leave"; } leaf use-multicast-destination-mac { type boolean; default "false"; description "Use multicast destination mac address for outgoing traffic."; } leaf router-alert-check { type boolean; default "true"; description "Enable router alert checking for IGMP or MLD messages"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of groups for this interface"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of group sources for this interface"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of sources that are allowed per group"; } leaf query-interval { type uint32 { range "2..1024"; } description "Time between two consecutive host-query messages"; } leaf query-response-interval { type uint32 { range "1..1023"; } description "Time to wait for a response to the host-query messages"; } leaf query-last-member-interval { type uint32 { range "1..1023"; } description "Time between group-specific query messages"; } leaf import-policy { type leafref { path "../../../policy-options/policy-statement/name"; } description "Import policy to filter MLD packets"; } leaf version { type types-igmp:mld-version; default "2"; description "MLD protocol version"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress-rate-modify { description "Enter the egress-rate-modify context"; choice rate-modify { case agg-rate { leaf agg-rate { type empty; description "Aggregate rate that applies for modification"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Scheduler to be applied for rate modification"; } } } } // container egress-rate-modify container static { description "Enter the static context"; list group { key "group-address"; description "Enter the group list instance"; leaf group-address { type types-sros:ipv6-multicast-address; description "Group address of multicast channel"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source-or-starg { mandatory true; case source { list source { key "source-address"; description "Add a list entry for source"; leaf source-address { type types-sros:ipv6-unicast-address; description "Source address of multicast channel."; } } // list source } case starg { leaf starg { type empty; description "any source address (*,G)"; } } } } // list group } // container static } // list mld-policy list sub-mcac-policy { key "name"; description "Enter the sub-mcac-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the subscriber MCAC policy"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth } // list sub-mcac-policy container pfcp { description "Enter the pfcp context"; list association { key "name"; max-elements 1; description "Enter the association list instance"; leaf name { type types-sros:named-item; description "Name that identifies the PFCP profile"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the PFCP association"; } leaf association-setup-retry { type types-sros:time-duration { range "1..36000"; } units "seconds"; default "10"; description "Time to wait before a retry attempt after failure"; } leaf association-release-timeout { type union { type enumeration { enum "none" { value 0; } } type types-sros:time-duration { range "30..3600"; } } units "seconds"; default "3600"; description "Time to wait for a response to a release request"; } leaf path-restoration-time { type types-sros:time-duration { range "5..1440"; } units "minutes"; description "Time to wait before declaring the path down"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container node-id { description "Enter the node-id context"; choice node-id-type { default "use-ip-address"; case fqdn { leaf fqdn { type types-sros:fully-qualified-domain-name; description "FQDN that identifies the local system for PFCP"; } } case use-ip-address { leaf use-ip-address { type empty; description "Use the IP address of interface for the association"; } } } } // container node-id container interface { description "Enter the interface context"; leaf router-instance { type string; description "Router context for the PFCP association"; } leaf name { type types-sros:interface-name; description "Name of the interface to use for the association"; } } // container interface container peer { description "Enter the peer context"; choice node-id-type { case ip-address { leaf ip-address { type types-sros:ip-unicast-address; description "PFCP peer IP address"; } } } } // container peer container heartbeat { description "Enter the heartbeat context"; leaf interval { type types-sros:time-duration { range "60..180"; } units "seconds"; default "60"; description "Time between two heartbeat request messages"; } leaf timeout { type types-sros:time-duration { range "1..20"; } units "seconds"; default "5"; description "Time the system waits for a heartbeat response message"; } leaf retries { type uint32 { range "0..15"; } default "4"; description "Number of retries after the heartbeat timeout expires"; } } // container heartbeat container tx { description "Enter the tx context"; leaf timeout { type types-sros:time-duration { range "1..30"; } units "seconds"; default "5"; description "Retransmission timer"; } leaf retries { type uint32 { range "0..7"; } default "3"; description "Number of retries"; } leaf ttl { type uint32 { range "1..255"; } default "255"; description "TTL value in the IP header of egress PFCP packets"; } } // container tx container nat { description "Enter the nat context"; choice isa { case nat { leaf nat-group { type leafref { path "../../../../../isa/nat-group/id"; } description "NAT group used for CUPS NAT functionality"; } } case wlan-gw { leaf wlan-gw-group { type leafref { path "../../../../../isa/wlan-gw-group/id"; } description "WLAN gateway group used for CUPS NAT functionality"; } } } } // container nat } // list association } // container pfcp list pim-policy { key "name"; max-elements 1; description "Enter the pim-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list pim-policy list sub-profile { key "name"; description "Enter the sub-profile list instance"; leaf name { type types-sros:external-named-item; description "Profile name"; } leaf description { type types-sros:description; description "Text description"; } leaf accounting-policy { type leafref { path "../../../log/accounting-policy/policy-id"; } description "Accounting policy"; } leaf accu-stats-policy { type leafref { path "../../accu-stats-policy/name"; } description "Accumulated statistics policy"; } leaf collect-stats { type boolean; default "false"; description "Collect statistics"; } leaf firewall-policy { type leafref { path "../../../service/nat/firewall-policy/name"; } description "Firewall policy"; } leaf host-tracking-policy { type leafref { path "../../host-tracking-policy/name"; } description "Host tracking policy"; } leaf hs-sla-mode { type enumeration { enum "expanded" { value 0; } enum "single" { value 1; } } default "expanded"; description "HS board subscriber SLA mode"; } leaf igmp-policy { type leafref { path "../../igmp-policy/name"; } description "IGMP policy"; } leaf mld-policy { type leafref { path "../../mld-policy/name"; } description "MLD policy"; } leaf pim-policy { type leafref { path "../../pim-policy/name"; } description "Protocol Independent Multicast (PIM) policy"; } leaf preference { type uint32 { range "1..10"; } default "5"; description "Preference of this subscriber profile."; } leaf secondary-shaper-hashing { type boolean; default "false"; description "Include LAG hashing on secondary shaper"; } leaf sub-mcac-policy { type leafref { path "../../sub-mcac-policy/name"; } description "Subscriber MCAC policy"; } leaf upnp-policy { type leafref { path "../../../service/upnp/policy/name"; } description "Universal Plug 'n Play (UPnP) policy"; } leaf volume-stats-type { type enumeration { enum "l2" { value 0; } enum "ip" { value 1; } } default "l2"; description "Include non-IP headers in the accounting statistics"; } leaf vport-hashing { type boolean; default "false"; description "Include LAG hashing on Vport"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container control { description "Enter the control context"; leaf local { type boolean; default "true"; description "Allow the local control plane to use the profile"; } leaf cups { type boolean; default "false"; description "Allow the CUPS control plane to use the profile"; } } // container control container nat { description "Enter the nat context"; leaf policy { type leafref { path "../../../../service/nat/nat-policy/name"; } description "Apply a NAT policy."; } leaf prefix-list { type leafref { path "../../../../service/nat/prefix-list/name"; } description "Apply a Layer-2-Aware NAT prefix list."; } leaf allow-bypass { type boolean; default "false"; description "Allow traffic to bypass NAT"; } leaf access-mode { type enumeration { enum "auto" { value 1; description "Automatically derived from the access SAP's anti-spoof type"; } enum "bridged" { value 2; description "Force to bridged mode"; } } default "auto"; description "The subscriber NAT access mode"; } } // container nat container ancp { description "Enter the ancp context"; leaf ancp-policy { type leafref { path "../../../ancp/ancp-policy/name"; } description "ANCP policy for this subscriber profile"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ancp container egress { description "Enter the egress context"; container lag-per-link-hash { description "Enter the lag-per-link-hash context"; leaf class { type types-services:sap-lag-per-link-hash-class; default "1"; description "Class used to select a LAG link"; } leaf weight { type types-services:sap-lag-per-link-hash-weight; default "1"; description "Weight to be associated with SAP when selecting a LAG link"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container lag-per-link-hash container qos { description "Enter the qos context"; leaf hs-agg-rate { type int32 { range "1..100000000"; } units "kilobps"; description "Maximum rate for single egress HS queues"; } leaf hs-min-resv-bw { type int32 { range "0..100000000"; } units "kilobps"; default "1"; description "Reserved minimum total rate of all egress queues"; } leaf hs-low-burst-max-class { type uint32 { range "1..6"; } default "6"; description "The class value that separates what classes use the low priority burst threshold and what classes use the high priority burst threshold."; } container agg-rate { description "Enter the agg-rate context"; leaf rate { type int32 { range "1..800000000"; } units "kilobps"; description "Maximum total rate of all egress queues"; } leaf min-resv-bw { type int32 { range "0..800000000"; } units "kilobps"; default "1"; description "Reserved minimum total rate of all egress queues"; } leaf queue-frame-based-accounting { type boolean; default "false"; description "Enable frame-based accounting on all policers and queues associated with context"; } } // container agg-rate container hsmda { status obsolete; description "Enter the hsmda context"; leaf agg-rate { status obsolete; type int32 { range "1..100000000"; } units "kilobps"; description "HSMDA-2 egress aggregate rate limit"; } leaf min-resv-bw { status obsolete; type int32 { range "0..100000000"; } units "kilobps"; default "1"; description "Reserved minimum total rate of all egress queues"; } container sap-egress { status obsolete; description "Enter the sap-egress context"; leaf policy-name { status obsolete; type leafref { path "../../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "SAP-egress QoS policy"; } leaf stat-mode { status obsolete; type enumeration { enum "v4-v6" { value 0; } } description "Specify stat-mode."; } container overrides { status obsolete; description "Enter the overrides context"; leaf packet-byte-offset { status obsolete; type types-services:egress-hsmda-queue-packet-byte-offset; description "Specify a packet offset for HSMDA-2 queue accounting."; } leaf wrr-policy { status obsolete; type leafref { path "../../../../../../../../qos/hsmda-wrr-policy/hsmda-wrr-policy-name"; } description "HSMDA-2 WRR policy"; } list queue { status obsolete; key "id"; description "Enter the queue list instance"; leaf id { status obsolete; type leafref { path "../../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/hsmda-queues/queue/queue-id"; } description "Queue ID"; } leaf mbs { status obsolete; type types-qos:hsmda-queue-burst-size-override; description "MBS"; } leaf rate { status obsolete; type types-qos:hsmda-queue-pir-rate-override; units "kilobps"; description "PIR percent rate"; } leaf slope-policy { status obsolete; type leafref { path "../../../../../../../../../qos/hsmda-slope-policy/hsmda-slope-policy-name"; } description "HSMDA-2 slope policy"; } leaf wrr-weight { status obsolete; type types-qos:hsmda-wrr-weight-override; description "HSMDA-2 WRR policy"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list queue } // container overrides } // container sap-egress } // container hsmda container encap-offset { presence "Enter the 'encap-offset' context"; description "Enable the encap-offset context"; leaf type { type enumeration { enum "pppoa-llc" { value 1; } enum "pppoa-null" { value 2; } enum "pppoeoa-llc" { value 3; } enum "pppoeoa-llc-fcs" { value 4; } enum "pppoeoa-llc-tagged" { value 5; } enum "pppoeoa-llc-tagged-fcs" { value 6; } enum "pppoeoa-null" { value 7; } enum "pppoeoa-null-fcs" { value 8; } enum "pppoeoa-null-tagged" { value 9; } enum "pppoeoa-null-tagged-fcs" { value 10; } enum "ipoa-llc" { value 11; } enum "ipoa-null" { value 12; } enum "ipoeoa-llc" { value 13; } enum "ipoeoa-llc-fcs" { value 14; } enum "ipoeoa-llc-tagged" { value 15; } enum "ipoeoa-llc-tagged-fcs" { value 16; } enum "ipoeoa-null" { value 17; } enum "ipoeoa-null-fcs" { value 18; } enum "ipoeoa-null-tagged" { value 19; } enum "ipoeoa-null-tagged-fcs" { value 20; } enum "pppoe" { value 21; } enum "pppoe-tagged" { value 22; } enum "ipoe" { value 23; } enum "ipoe-tagged" { value 24; } } description "Offset type"; } } // container encap-offset container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy"; } container overrides { description "Enter the overrides context"; container root { presence "Enter the 'root' context"; description "Enable the root context"; leaf max-rate { type types-qos:policer-pir-rate-override; units "kilobps"; description "Maximum rate"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type types-qos:policer-burst-size-override; description "Minimum threshold separation"; } list priority { key "level"; description "Enter the priority list instance"; leaf level { type types-qos:hierarchy-level; description "Specifies the priority level."; } leaf mbs-contribution { type types-qos:policer-burst-size-override; description "MBS size"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type leafref { path "../../../../../../../../qos/scheduler-policy[scheduler-policy-name=current()/../../../policy-name]/tier/scheduler/scheduler-name"; } description "Scheduler name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Specifies the administrative PIR."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "sum"; description "Specifies the administrative CIR."; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos } // container egress container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; container hsmda { status obsolete; description "Enter the hsmda context"; container sap-ingress { status obsolete; description "Enter the sap-ingress context"; leaf policy-name { status obsolete; type leafref { path "../../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "SAP-ingress QoS policy"; } container overrides { status obsolete; description "Enter the overrides context"; list policer { status obsolete; key "id"; description "Enter the policer list instance"; leaf id { status obsolete; type leafref { path "../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer ID"; } leaf stat-mode { status obsolete; type enumeration { enum "v4-v6" { value 0; } } description "Stat mode for the policer"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list policer list queue { status obsolete; key "id"; description "Enter the queue list instance"; leaf id { status obsolete; type leafref { path "../../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Queue ID"; } leaf stat-mode { status obsolete; type enumeration { enum "v4-v6" { value 0; } } description "Stat mode for the policer"; } leaf-list apply-groups { status obsolete; type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { status obsolete; type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list queue } // container overrides } // container sap-ingress } // container hsmda container policer-control-policy { description "Enter the policer-control-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/policer-control-policy/policer-control-policy-name"; } description "Policer control policy"; } container overrides { description "Enter the overrides context"; container root { presence "Enter the 'root' context"; description "Enable the root context"; leaf max-rate { type types-qos:policer-pir-rate-override; units "kilobps"; description "Maximum rate"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority-mbs-thresholds { description "Enter the priority-mbs-thresholds context"; leaf min-thresh-separation { type types-qos:policer-burst-size-override; description "Minimum threshold separation"; } list priority { key "level"; description "Enter the priority list instance"; leaf level { type types-qos:hierarchy-level; description "Specifies the priority level."; } leaf mbs-contribution { type types-qos:policer-burst-size-override; description "MBS size"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container priority-mbs-thresholds } // container root } // container overrides } // container policer-control-policy container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Scheduler policy"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type leafref { path "../../../../../../../../qos/scheduler-policy[scheduler-policy-name=current()/../../../policy-name]/tier/scheduler/scheduler-name"; } description "Scheduler name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Specifies the administrative PIR."; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "sum"; description "Specifies the administrative CIR."; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos } // container ingress container radius-accounting { description "Enter the radius-accounting context"; leaf-list policy { type leafref { path "../../../radius-accounting-policy/name"; } max-elements 5; ordered-by user; description "RADIUS accounting policies"; } leaf session-optimized-stop { type boolean; default "false"; description "Optimize PPPoE session accounting stop behavior"; } } // container radius-accounting container sla-profile-map { description "Enter the sla-profile-map context"; leaf use-direct-map-as-default { type boolean; default "false"; description "Allow direct mapping of SLA profile as default"; } list entry { key "sla-profile-string"; description "Enter the entry list instance"; leaf sla-profile-string { type string { length "1..32"; } description "SLA profile string"; } leaf sla-profile { type leafref { path "../../../../sla-profile/name"; } mandatory true; description "SLA profile"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list entry } // container sla-profile-map container session-limits { description "Enter the session-limits context"; leaf ipoe { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPoE sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of subscriber sessions"; } container pppoe { description "Enter the pppoe context"; leaf local { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE local-terminated sessions"; } leaf lac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE L2TP LAC sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE sessions"; } } // container pppoe container l2tp { description "Enter the l2tp context"; leaf lns { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LNS sessions"; } leaf lts { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LTS sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP sessions"; } } // container l2tp } // container session-limits container host-limits { description "Enter the host-limits context"; leaf lac-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LAC hosts"; } leaf overall { type types-submgt:sla-profile-host-limit; description "Maximum number of subscriber hosts"; } container ipv4 { description "Enter the ipv4 context"; leaf arp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 ARP hosts"; } leaf dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 DHCP hosts"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 hosts"; } leaf ppp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 PPP hosts"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 hosts"; } leaf pd-ipoe-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE DHCP PD hosts"; } leaf pd-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 DHCP PD hosts"; } leaf pd-ppp-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 PPPoE DHCP PD hosts"; } leaf wan-ipoe-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE DHCP WAN hosts"; } leaf wan-ipoe-slaac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE SLAAC WAN hosts"; } leaf wan-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 WAN hosts"; } leaf wan-ppp-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 PPPoE DHCP WAN hosts"; } leaf wan-ppp-slaac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 PPPoE SLAAC WAN hosts"; } } // container ipv6 } // container host-limits } // list sub-profile list sla-profile { key "name"; description "Enter the sla-profile list instance"; leaf name { type types-sros:external-named-item; description "Profile name"; } leaf description { type types-sros:description; description "Text description"; } leaf credit-control-policy { type leafref { path "../../credit-control-policy/name"; } description "Credit policy for this SLA profile"; } leaf def-instance-sharing { type enumeration { enum "per-sap" { value 1; } enum "per-session" { value 2; } } default "per-sap"; description "Default method for SLA Profile Instance sharing of IPoE and PPPoE sessions"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container control { description "Enter the control context"; leaf local { type boolean; default "true"; description "Allow the local control plane to use the profile"; } leaf cups { type boolean; default "false"; description "Allow the CUPS control plane to use the profile"; } } // container control container idle-timeout { presence "Enter the 'idle-timeout' context"; description "Enable the idle-timeout context"; leaf category-map-name { type leafref { path "../../../category-map/category-map-name"; } sros-ext:immutable; mandatory true; description "The name of the credit control category map to be used when idle-timeout is enabled for this SLA profile."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list category { key "category-name"; max-elements 16; description "Enter the category list instance"; leaf category-name { type leafref { path "../../../../category-map[category-map-name=current()/../../category-map-name]/category/category-name"; } description "Name for the credit control category associated with this SLA profile"; } leaf timeout { type uint32 { range "60..15552000"; } units "seconds"; description "The time that this category can stay below its activity-threshold before action is taken."; } leaf action { type enumeration { enum "terminate" { value 1; } enum "shcv" { value 2; } } default "terminate"; description "The action to be taken when the idle timeout has occurred."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list category } // container idle-timeout container egress { description "Enter the egress context"; leaf ip-filter { type leafref { path "../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6-filter { type leafref { path "../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } container bonding-selection { description "Enter the bonding-selection context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate-thresholds { description "Enter the rate-thresholds context"; leaf high { type uint32 { range "56..99"; } units "percent"; default "90"; description "High threshold rate percentage"; } leaf low { type uint32 { range "55..98"; } units "percent"; default "80"; description "Low threshold rate percentage"; } } // container rate-thresholds container weight { description "Enter the weight context"; leaf initial { type uint32 { range "1..100"; } units "percent"; default "100"; description "Initial weight of the preferred connection"; } leaf change { type uint32 { range "0..10"; } units "percent"; default "5"; description "Weight change of the preferred connection"; } } // container weight } // container bonding-selection container qos { description "Enter the qos context"; leaf hs-agg-rate { type int32 { range "1..100000000"; } units "kilobps"; description "Maximum rate for expanded egress HS queues"; } leaf qos-marking-from-sap { type boolean; default "true"; description "Define the sap-egress qos-policy from which the egress qos marking rules are taken."; } leaf use-ingress-l2tp-dscp { type boolean; default "false"; description "Specify that the DSCP of the ingress L2TP header be used to do egress reclassification."; } container sap-egress { description "Enter the sap-egress context"; leaf policy-name { type leafref { path "../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "SAP-egress QoS policy"; } leaf port-parent-location { type enumeration { enum "port" { value 1; } enum "vport" { value 2; } } default "port"; description "Scheduling type for queued traffic"; } container overrides { description "Enter the overrides context"; leaf hs-queue-stat-mode { type enumeration { enum "v4-v6" { value 0; } } description "Egress HS queue stats mode"; } list hs-wrr-group { key "id"; description "Enter the hs-wrr-group list instance"; leaf id { type leafref { path "../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/hs-wrr-group/group-id"; } description "HS WRR group ID"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Class weight override for WRR group"; } leaf rate { type types-qos:hs-wrr-rate-override; units "kilobps"; description "PIR rate override for WRR group"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list hs-wrr-group list policer { key "id"; description "Enter the policer list instance"; leaf id { type leafref { path "../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer ID"; } leaf cbs { type types-qos:policer-burst-size-override; description "CBS"; } leaf mbs { type types-qos:policer-burst-size-override; description "MBS"; } leaf packet-byte-offset { type types-qos:egress-per-packet-offset-override; description "Packet byte offset"; } leaf stat-mode { type types-submgt:subscriber-egress-policer-stat-mode-type; description "Stat mode for the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate-override; units "kilobps"; description "Specifies PIR override"; } leaf cir { type types-qos:policer-cir-rate-override; units "kilobps"; description "Specifies CIR override"; } } // container rate } // list policer list queue { key "id"; description "Enter the queue list instance"; leaf id { type leafref { path "../../../../../../../../qos/sap-egress[sap-egress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Queue ID"; } leaf avg-frame-overhead { type decimal64 { range "0.00..100.00"; fraction-digits 2; } units "percent"; description "Average frame overhead"; } leaf cbs { type types-qos:burst-size-override; description "CBS"; } leaf high-prio-only { type types-qos:burst-percent-or-default-override; units "percent"; description "High priority burst size"; } leaf hs-class-weight { type types-qos:hs-class-weight-override; description "Class-weight override for expanded egress HS queues"; } leaf hs-wrr-weight { type types-qos:hs-wrr-weight-override; description "Maximum rate for expanded egress HS queues"; } leaf mbs { type types-qos:queue-burst-size-override; description "MBS"; } leaf stat-mode { type enumeration { enum "v4-v6" { value 0; } } description "Stat mode for the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hs-wred-queue { description "Enter the hs-wred-queue context"; leaf policy { type leafref { path "../../../../../../../../../qos/slope-policy/slope-policy-name"; } description "Name of slope-policy."; } } // container hs-wred-queue container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-override; units "kilobps"; description "Specifies PIR override"; } leaf cir { type types-qos:queue-cir-rate-override; units "kilobps"; description "Specifies CIR override"; } } // container rate } // list queue } // container overrides } // container sap-egress container scheduler-policy { description "Enter the scheduler-policy context"; leaf policy-name { type leafref { path "../../../../../../qos/scheduler-policy/scheduler-policy-name"; } description "Egress scheduler policy"; } container overrides { description "Enter the overrides context"; list scheduler { key "scheduler-name"; description "Enter the scheduler list instance"; leaf scheduler-name { type leafref { path "../../../../../../../../qos/scheduler-policy[scheduler-policy-name=current()/../../../policy-name]/tier/scheduler/scheduler-name"; } description "Scheduler name"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:scheduler-pir-rate; units "kilobps"; default "max"; description "Administrative PIR"; } leaf cir { type types-qos:scheduler-cir-rate; units "kilobps"; default "sum"; description "Administrative CIR"; } } // container rate } // list scheduler } // container overrides } // container scheduler-policy } // container qos container report-rate { description "Enter the report-rate context"; choice report-rate { case agg-rate { leaf agg-rate { type empty; description "Report the aggregate rate"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Report the rate of the specified scheduler"; } } case pppoe-actual-rate { leaf pppoe-actual-rate { type empty; description "Report the rate of the DSL-Forum Vendor-Specific PPPoE Tag."; } } case policer { leaf policer { type uint32 { range "1..63"; } description "Report the rate of the specified policer"; } } case rfc5515-actual-rate { leaf rfc5515-actual-rate { type empty; description "Report the rate as specified in RFC5515"; } } } } // container report-rate } // container egress container session-limits { description "Enter the session-limits context"; leaf ipoe { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPoE sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of subscriber sessions"; } container pppoe { description "Enter the pppoe context"; leaf local { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE local terminated sessions"; } leaf lac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE L2TP LAC sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of PPPoE sessions"; } } // container pppoe container l2tp { description "Enter the l2tp context"; leaf lns { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LNS sessions"; } leaf lts { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LTS sessions"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP sessions"; } } // container l2tp } // container session-limits container host-limits { description "Enter the host-limits context"; leaf lac-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of L2TP LAC hosts"; } leaf overall { type types-submgt:sla-profile-host-limit; description "Maximum number of subscriber hosts"; } leaf remove-oldest { type boolean; default "false"; description "Remove oldest"; } container ipv4 { description "Enter the ipv4 context"; leaf arp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 ARP hosts"; } leaf dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 DHCP hosts"; } leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 hosts"; } leaf ppp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv4 PPP hosts"; } } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 hosts"; } leaf pd-ipoe-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE DHCP PD hosts"; } leaf pd-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 DHCP PD hosts"; } leaf pd-ppp-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 PPPoE DHCP PD hosts"; } leaf wan-ipoe-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE DHCP WAN hosts"; } leaf wan-ipoe-slaac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 IPoE SLAAC WAN hosts"; } leaf wan-overall { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 WAN hosts"; } leaf wan-ppp-dhcp { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number IPv6 PPPoE DHCP WAN hosts"; } leaf wan-ppp-slaac { type types-submgt:sla-profile-host-limit-with-zero; description "Maximum number of IPv6 PPPoE SLAAC WAN hosts"; } } // container ipv6 } // container host-limits container ingress { description "Enter the ingress context"; leaf ip-filter { type leafref { path "../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } leaf ipv6-filter { type leafref { path "../../../../filter/ipv6-filter/filter-name"; } description "IPv6 filter policy name"; } container qos { description "Enter the qos context"; container sap-ingress { description "Enter the sap-ingress context"; leaf policy-name { type leafref { path "../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "SAP-ingress QoS policy"; } leaf queuing-type { type types-qos:ingress-queuing-type; default "service"; description "Queuing type"; } container overrides { description "Enter the overrides context"; list policer { key "id"; description "Enter the policer list instance"; leaf id { type leafref { path "../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/policer/policer-id"; } description "Policer ID"; } leaf cbs { type types-qos:policer-burst-size-override; description "CBS"; } leaf mbs { type types-qos:policer-burst-size-override; description "MBS"; } leaf packet-byte-offset { type types-qos:ingress-per-packet-offset-override; description "Packet byte offset"; } leaf stat-mode { type types-submgt:subscriber-ingress-policer-stat-mode-type; description "Stat mode for the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:policer-pir-rate-override; units "kilobps"; description "Specifies PIR override"; } leaf cir { type types-qos:policer-cir-rate-override; units "kilobps"; description "Specifies CIR override"; } } // container rate } // list policer list queue { key "id"; description "Enter the queue list instance"; leaf id { type leafref { path "../../../../../../../../qos/sap-ingress[sap-ingress-policy-name=current()/../../../policy-name]/queue/queue-id"; } description "Queue ID"; } leaf cbs { type types-qos:burst-size-override; description "CBS"; } leaf high-prio-only { type types-qos:burst-percent-or-default-override; units "percent"; description "High priority burst size"; } leaf mbs { type types-qos:queue-burst-size-override; description "MBS"; } leaf stat-mode { type enumeration { enum "v4-v6" { value 0; } } description "Stat mode for the policer"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; leaf pir { type types-qos:queue-pir-rate-override; units "kilobps"; description "Specifies PIR override"; } leaf cir { type types-qos:queue-cir-rate-override; units "kilobps"; description "Specifies CIR override"; } } // container rate } // list queue } // container overrides } // container sap-ingress } // container qos container report-rate { description "Enter the report-rate context"; choice report-rate { case agg-rate { leaf agg-rate { type empty; description "Report the aggregate rate"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Report the rate of the specified scheduler"; } } case pppoe-actual-rate { leaf pppoe-actual-rate { type empty; description "Report the rate of the DSL-Forum Vendor-Specific PPPoE Tag."; } } case policer { leaf policer { type uint32 { range "1..63"; } description "Report the rate of the specified policer"; } } case rfc5515-actual-rate { leaf rfc5515-actual-rate { type empty; description "Report the rate as specified in RFC5515"; } } } } // container report-rate } // container ingress container one-time-http-redirection { description "Enter the one-time-http-redirection context"; leaf ip-filter { type leafref { path "../../../../filter/ip-filter/filter-name"; } description "IPv4 filter policy name"; } } // container one-time-http-redirection } // list sla-profile list sub-ident-policy { key "name"; description "Enter the sub-ident-policy list instance"; leaf name { type types-sros:external-named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf strings-from-option { type uint32 { range "1..254"; } description "IPOE option to get the identification strings"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container primary { description "Enter the primary context"; leaf script-url { type types-sros:url; description "Identification script URL"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of script execution"; } } // container primary container secondary { description "Enter the secondary context"; leaf script-url { type types-sros:url; description "Identification script URL"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of script execution"; } } // container secondary container tertiary { description "Enter the tertiary context"; leaf script-url { type types-sros:url; description "Identification script URL"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of script execution"; } } // container tertiary container sla-profile-map { description "Enter the sla-profile-map context"; leaf use-direct-map-as-default { type boolean; default "false"; description "Allow direct mapping of SLA profile as default"; } list entry { key "sla-profile-string"; description "Enter the entry list instance"; leaf sla-profile-string { type string { length "1..32"; } description "SLA profile string"; } leaf sla-profile { type leafref { path "../../../../sla-profile/name"; } mandatory true; description "SLA profile"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list entry } // container sla-profile-map container sub-profile-map { description "Enter the sub-profile-map context"; leaf use-direct-map-as-default { type boolean; default "false"; description "Allow direct mapping of subscriber profile as default"; } list entry { key "sub-profile-string"; description "Enter the entry list instance"; leaf sub-profile-string { type string { length "1..32"; } description "Subscriber identification string"; } leaf sub-profile { type leafref { path "../../../../sub-profile/name"; } mandatory true; description "Subscriber profile"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list entry } // container sub-profile-map } // list sub-ident-policy list ppp-policy { key "name"; max-elements 256; description "Enter the ppp-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf default-pap-password { type types-sros:encrypted-leaf { length "1..115"; } description "Default PAP password to be used when the PPP client does not provide a password"; } leaf default-user-name { type types-sros:string-not-all-spaces { length "1..253"; } description "Default PPP username to be used when the PPP client does not provide a username"; } leaf cookies { type boolean; default "true"; description "Enable/disable the use of AC-Cookie tags."; } leaf force-ppp-mtu-gt-1492 { type boolean; default "false"; description "Force the PPPoE MTU size to go above 1492 without RFC 4638."; } leaf ipcp-subnet-negotiation { type boolean; default "false"; description "Allow IPCP subnet negotiation for PPPoE hosts"; } leaf lcp-ignore-magic-numbers { type boolean; default "false"; description "Magic-Number field in LCP Echo-Request and LCP Echo-Reply messages that are checked"; } leaf max-sessions-per-mac { type uint32 { range "1..8191"; } default "1"; description "Maximum sessions per MAC"; } leaf allow-same-circuit-id-for-dhcp { type boolean; default "false"; description "Allow multiple PPPoE sessions with the same MAC address and circuit ID for a specific SAP"; } leaf pado-ac-name { type types-sros:string-not-all-spaces { length "1..128"; } description "Configure the Access-Concentrator-Name to send with a PADO."; } leaf pado-delay { type uint32 { range "1..30"; } units "deciseconds"; description "Delay timeout before sending a PADO"; } leaf ppp-authentication { type enumeration { enum "pap" { value 1; } enum "chap" { value 2; } enum "pref-chap" { value 3; } enum "pref-pap" { value 4; } } default "pref-chap"; description "PPP authentication protocol to negotiate"; } leaf ppp-initial-delay { type boolean; default "false"; description "Select delay timeout before starting the PPP stack"; } leaf ppp-mtu { type uint32 { range "512..9212"; } description "Maximum PPP MTU size"; } leaf re-establish-session { type boolean; default "false"; description "Reconnect and override an existing session"; } leaf reject-unconfigured-ncp { type boolean; default "false"; description "Enable/disable reject unconfigured NCP."; } leaf reply-on-padt { type boolean; default "false"; description "Enable/disable reply on PADT packets."; } leaf session-timeout { type types-sros:time-duration { range "1..31104000"; } units "seconds"; description "Session timeout interval"; } leaf sid-allocation { type enumeration { enum "sequential" { value 0; } enum "random" { value 1; } } default "sequential"; description "PPPoE session ID allocation method"; } leaf unique-sid { type enumeration { enum "per-sap" { value 1; } enum "per-sap-mac" { value 2; } enum "per-msap" { value 3; } } default "per-sap-mac"; description "Mode in which a unique session ID is allocated"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container max-sessions-per-cid { presence "Enter the 'max-sessions-per-cid' context"; description "Enable the max-sessions-per-cid context"; leaf limit { type uint32 { range "1..8190"; } mandatory true; description "Maximum sessions per Agent Circuit ID and per SAP"; } leaf allow-sessions-without-cid { type boolean; default "false"; description "Allow PPPoE sessions without an Agent Circuit ID"; } } // container max-sessions-per-cid container keepalive { description "Enter the keepalive context"; leaf interval { type types-sros:time-duration { range "4..300"; } units "seconds"; default "30"; description "PPP keepalive interval"; } leaf hold-up-multiplier { type uint32 { range "1..5"; } default "3"; description "PPP keepalive multiplier"; } } // container keepalive container ppp-chap-challenge-length { description "Enter the ppp-chap-challenge-length context"; leaf min { type uint32 { range "8..64"; } default "32"; description "Minimum length for the PPP CHAP challenge"; } leaf max { type uint32 { range "8..64"; } default "64"; description "Maximum length for the PPP CHAP challenge"; } } // container ppp-chap-challenge-length container mlppp { description "Enter the mlppp context"; leaf accept-mrru { type boolean; default "false"; description "Accept multilink MRRU LCP option"; } leaf short-sequence-numbers { type boolean; default "false"; description "Request a peer to send short sequence numbers"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container endpoint { description "Enter the endpoint context"; choice endpoint { case ip { leaf ip { type types-ppp:mlppp-ip-endpoint; description "Endpoint ID as an IP address"; } } case mac { leaf mac { type types-ppp:mlppp-mac-endpoint; description "Endpoint ID as a MAC address"; } } } } // container endpoint } // container mlppp container ppp-options { description "Enter the ppp-options context"; list custom-option { key "protocol option-number"; description "Enter the custom-option list instance"; leaf protocol { type enumeration { enum "lcp" { value 1; } enum "ipcp" { value 2; } enum "ipv6cp" { value 3; } } description "Protocol for the custom PPP option"; } leaf option-number { type uint32 { range "0..255"; } description "PPP option number"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice option-data { mandatory true; case address { leaf address { type types-sros:ipv4-address; description "IP address for the custom PPP option"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "Hexadecimal string for the custom PPP option"; } } case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "ASCII string for the customer PPP option"; } } case empty { leaf empty { type empty; description "Configure an empty PPP option."; } } } } // list custom-option } // container ppp-options } // list ppp-policy list pppoe-client-policy { key "name"; max-elements 256; description "Enter the pppoe-client-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf mru { type uint32 { range "512..9154"; } default "1492"; description "PPPoE MRU"; } leaf mtu { type uint32 { range "512..9154"; } default "1492"; description "PPPoE MTU"; } leaf python-policy { type leafref { path "../../../python/python-policy/name"; } description "Python policy to be applied to all messages in the PPPoE client policy"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container keepalive { description "Enter the keepalive context"; leaf interval { type types-sros:time-duration { range "10..300"; } units "seconds"; default "30"; description "PPPoE keepalive interval"; } leaf hold-up-multiplier { type uint32 { range "1..5"; } default "3"; description "PPPoE keepalive multiplier"; } } // container keepalive container restart-backoff { description "Enter the restart-backoff context"; leaf initial-time { type types-sros:time-duration { range "10..3600"; } units "seconds"; default "30"; description "Initial backoff time"; } leaf max-time { type types-sros:time-duration { range "10..3600"; } units "seconds"; default "600"; description "Maximum backoff time"; } } // container restart-backoff container stack { description "Enter the stack context"; leaf ipv4 { type boolean; default "true"; description "Start IPCP to retrieve an IPv4 address"; } leaf ipv6-slaac { type boolean; default "false"; description "Start IPv6CP and use SLAAC to retrieve an IPv6 prefix"; } } // container stack } // list pppoe-client-policy list radius-accounting-policy { key "name"; max-elements 32; description "Enter the radius-accounting-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf acct-tunnel-connection-fmt { type types-sros:ascii-specification { length "1..253"; } default "%n"; description "Configure the accounting tunnel connection ascii-specification."; } leaf delay-start-time { type types-sros:time-duration { range "1..10"; } units "seconds"; description "Accounting start delay"; } leaf radius-server-policy { type leafref { path "../../../aaa/radius/server-policy/name"; } description "Referenced RADIUS server policy"; } leaf session-id-format { type enumeration { enum "description" { value 1; } enum "number" { value 2; } } default "description"; description "Format used in accounting session ID attributes"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container triggered-updates { description "Enter the triggered-updates context"; leaf gtp-mobility { type boolean; default "false"; description "Enable/disable gtp triggered updates."; } } // container triggered-updates container host-accounting { description "Enter the host-accounting context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of per-host accounting"; } leaf interim-update { type boolean; default "false"; description "Allow interim-update accounting messages to be sent"; } } // container host-accounting container queue-instance-accounting { description "Enter the queue-instance-accounting context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of per-queue instance accounting"; } leaf interim-update { type boolean; default "true"; description "Send accounting interim-update messages for the queue instance"; } } // container queue-instance-accounting container session-accounting { description "Enter the session-accounting context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of per-session accounting"; } leaf interim-update { type boolean; default "false"; description "Allow interim-update accounting messages to be sent"; } leaf host-update { type boolean; default "false"; description "Allow host updates"; } } // container session-accounting container update-interval { description "Enter the update-interval context"; leaf interval { type types-sros:time-duration { range "5..259200"; } units "minutes"; description "Intermediate update interval"; } leaf jitter { type union { type enumeration { enum "auto" { value -10; } } type types-sros:time-duration { range "0..3600"; } } units "seconds"; default "auto"; description "Intermediate and MCS update interval jitter"; } } // container update-interval container mcs-interval { description "Enter the mcs-interval context"; leaf interval { type union { type enumeration { enum "none" { value 0; } enum "use-update-interval" { value 1; } } type types-sros:time-duration { range "5..60"; } } units "minutes"; description "MCS synchronization interval of usage counters"; } } // container mcs-interval container custom-record { description "Enter the custom-record context"; leaf significant-change { type uint32 { range "0..max"; } description "Significant change required to generate the record"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list override-counter { key "id"; description "Enter the override-counter list instance"; leaf id { type uint32 { range "1..8"; } description "Override counter ID"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container i-counters } // list override-counter list queue { key "id"; description "Enter the queue list instance"; leaf id { type uint32 { range "1..32"; } description "Custom record queue ID"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } leaf high-octets-offered-count { type boolean; default "false"; description "Include the high octets offered count"; } leaf high-packets-offered-count { type boolean; default "false"; description "Include the high packets offered count"; } leaf low-octets-offered-count { type boolean; default "false"; description "Include the low octets offered count"; } leaf low-packets-offered-count { type boolean; default "false"; description "Include the low packets offered count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncolored octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncolored packets offered count"; } } // container i-counters } // list queue container ref-override-counter { description "Enter the ref-override-counter context"; choice counter { case id { leaf id { type leafref { path "../../override-counter/id"; } description "Referenced override counter ID"; } } case all { leaf all { type empty; description "All referenced override counters"; } } } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container i-counters } // container ref-override-counter container ref-queue { description "Enter the ref-queue context"; choice queue { case id { leaf id { type leafref { path "../../queue/id"; } description "Referenced queue ID"; } } case all { leaf all { type empty; description "All referenced queues"; } } } container e-counters { description "Enter the e-counters context"; leaf in-profile-octets-discarded-count { type boolean; default "false"; description "Include the in-profile octets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-discarded-count { type boolean; default "false"; description "Include the in-profile packets discarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf out-profile-octets-discarded-count { type boolean; default "false"; description "Include the out-profile octets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-discarded-count { type boolean; default "false"; description "Include the out-profile packets discarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } } // container e-counters container i-counters { description "Enter the i-counters context"; leaf all-octets-offered-count { type boolean; default "false"; description "Include the all octets offered count"; } leaf all-packets-offered-count { type boolean; default "false"; description "Include all packets offered count"; } leaf high-octets-discarded-count { type boolean; default "false"; description "Include the high octets discarded count"; } leaf high-packets-discarded-count { type boolean; default "false"; description "Include the high packets discarded count"; } leaf in-profile-octets-forwarded-count { type boolean; default "false"; description "Include the in-profile octets forwarded count"; } leaf in-profile-packets-forwarded-count { type boolean; default "false"; description "Include the in-profile packets forwarded count"; } leaf low-octets-discarded-count { type boolean; default "false"; description "Include the low octets discarded count"; } leaf low-packets-discarded-count { type boolean; default "false"; description "Include the low packets discarded count"; } leaf out-profile-octets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile octets forwarded count"; } leaf out-profile-packets-forwarded-count { type boolean; default "false"; description "Include the out-of-profile packets forwarded count"; } leaf high-octets-offered-count { type boolean; default "false"; description "Include the high octets offered count"; } leaf high-packets-offered-count { type boolean; default "false"; description "Include the high packets offered count"; } leaf low-octets-offered-count { type boolean; default "false"; description "Include the low octets offered count"; } leaf low-packets-offered-count { type boolean; default "false"; description "Include the low packets offered count"; } leaf uncoloured-octets-offered-count { type boolean; default "false"; description "Include the uncolored octets offered count"; } leaf uncoloured-packets-offered-count { type boolean; default "false"; description "Include the uncolored packets offered count"; } } // container i-counters } // container ref-queue } // container custom-record container include-radius-attribute { description "Enter the include-radius-attribute context"; leaf access-loop-options { type boolean; default "false"; description "Enable/disable include of the access-loop-options attribute."; } leaf acct-authentic { type boolean; default "false"; description "Enable/disable include of the acct-authentic attribute."; } leaf acct-delay-time { type boolean; default "false"; description "Enable/disable include of the acct-delay-time attribute."; } leaf acct-triggered-reason { type boolean; default "false"; description "Include Alc-Acct-Triggered-Reason attribute"; } leaf error-code { type boolean; default "false"; description "Include detailed error codes"; } leaf all-authorized-session-addresses { type boolean; default "false"; description "Include all included and authorized address/prefix attributes in session accounting"; } leaf apn { type boolean; default "false"; description "Enable/disable include of the APN attribute."; } leaf bonding-active-connections { type boolean; default "false"; description "Enable/disable including the Radius attribute Alc-Bonding-Active-Connections."; } leaf bonding-id { type boolean; default "false"; description "Enable/disable including the Radius attribute Alc-Bonding-Id."; } leaf brg-num-active-sessions { type boolean; default "false"; description "Enable/disable including the Radius attribute Alc-BRG-Num-Active-Sessions."; } leaf called-station-id { type boolean; default "false"; description "Include called-station-id attribute"; } leaf circuit-id { type boolean; default "false"; description "Include circuit-id attribute"; } leaf delegated-ipv6-prefix { type boolean; default "false"; description "Include delegated-ipv6-prefix attribute"; } leaf detailed-acct-attributes { type boolean; default "true"; description "Include more detailed accounting attributes"; } leaf dhcp-vendor-class-id { type boolean; default "false"; description "Enable/disable include of the IPOE-Vendor-Class-Id RADIUS attribute."; } leaf firewall-info { type boolean; default "false"; description "Enable/disable include of the firewall information attribute."; } leaf framed-interface-id { type boolean; default "false"; description "Include framed-interface-id attribute"; } leaf framed-ip-address { type boolean; default "false"; description "Include framed-ip-address attribute"; } leaf framed-ip-netmask { type boolean; default "false"; description "Include framed-ip-netmask attribute"; } leaf framed-ipv6-prefix { type boolean; default "false"; description "Include framed-ipv6-prefix attribute"; } leaf framed-ipv6-route { type boolean; default "false"; description "Include framed-ipv6-route attribute"; } leaf framed-route { type boolean; default "false"; description "Include framed-route attribute"; } leaf imei { type boolean; default "false"; description "Enable/disable include of the IMEI attribute."; } leaf ipv6-address { type boolean; default "false"; description "Include IPv6 address attribute"; } leaf lanext-bridge-id { type boolean; default "false"; description "Enable/disable include of the lanext-bridge-id attribute."; } leaf lanext-device-type { type boolean; default "false"; description "Enable/disable include of the lanext-device-type attribute."; } leaf lanext-route-distinguisher { type boolean; default "false"; description "Enable/disable include of the lanext-route-distinguisher attribute."; } leaf lanext-route-target { type boolean; default "false"; description "Enable/disable include of the lanext-route-target attribute."; } leaf lanext-vni { type boolean; default "false"; description "Enable/disable include of the lanext-vni attribute."; } leaf mac-address { type boolean; default "false"; description "Enable/disable include of the MAC-Address attribute."; } leaf msisdn { type boolean; default "false"; description "Enable/disable include of the MSISDN attribute."; } leaf nas-identifier { type boolean; default "false"; description "Enable/disable include of the NAS-Identifier attribute."; } leaf nat-port-range { type boolean; default "false"; description "Include NAT port range attribute"; } leaf remote-id { type boolean; default "false"; description "Include remote-id attribute"; } leaf sla-profile { type boolean; default "false"; description "Include sla-profile attribute"; } leaf spi-sharing-id { type boolean; default "false"; description "Include spi-sharing-id attribute"; } leaf std-acct-attributes { type boolean; default "false"; description "Include standard accounting attributes"; } leaf steering-profile { type boolean; default "false"; description "Enable/disable including the Radius attribute Alc-Steering-Profile."; } leaf sub-profile { type boolean; default "false"; description "Include sub-profile attribute"; } leaf subscriber-id { type boolean; default "false"; description "Include subscriber-id attribute"; } leaf tunnel-client-attrs { type boolean; default "false"; description "Enable/disable include of tunnel-client attributes."; } leaf tunnel-server-attrs { type boolean; default "false"; description "Enable/disable include of tunnel-server attributes."; } leaf user-name { type boolean; default "false"; description "Enable/disable include of user-name attribute."; } leaf v6-aggregate-stats { type boolean; default "false"; description "Report IPv6 aggregated forwarded octet and packet counters using RADIUS VSAs"; } leaf wifi-num-attached-ues { type boolean; default "false"; description "Enable/disable including the Alc-Num-Attached-UEs RADIUS attribute."; } leaf wifi-rssi { type boolean; default "false"; description "Enable/disable include of the 802.11 Received Signal Strength Indication attribute."; } leaf wifi-ssid-vlan { type boolean; default "false"; description "Enable/disable including the per-SSID VLAN ID in Alc-Wlan-SSID-VLAN."; } leaf uli { type boolean; default "false"; description "Generate the ULI RADIUS attribute"; } leaf bearer-fteid { type boolean; default "false"; description "Include bearer-fteid attribute"; } leaf xconnect-tunnel-home-address { type boolean; default "false"; description "Enable/disable include of Alc-Xconnect-Tunnel-Home-Ipv6 attribute."; } container calling-station-id { presence "Enter the 'calling-station-id' context"; description "Enable the calling-station-id context"; leaf type { type enumeration { enum "sap-string" { value 1; } enum "mac" { value 2; } enum "sap-id" { value 3; } enum "remote-id" { value 4; } enum "llid" { value 5; } } default "sap-string"; description "Specifies the calling-station-id type."; } } // container calling-station-id container nas-port { presence "Enter the 'nas-port' context"; description "Enable the nas-port context"; leaf bit-spec { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[smpoivc])+"; } mandatory true; description "RADIUS NAS-Port attribute"; } } // container nas-port container nas-port-id { presence "Enter the 'nas-port-id' context"; description "Enable the nas-port-id context"; leaf prefix-string { type string { length "1..8"; } description "String to be prefixed to the NAS-Port-Id attribute"; } leaf suffix { type enumeration { enum "circuit-id" { value 1; } enum "remote-id" { value 2; } } description "String to be suffixed to the NAS-Port-Id attribute"; } } // container nas-port-id container nas-port-type { presence "Enter the 'nas-port-type' context"; description "Enable the nas-port-type context"; leaf type { type union { type enumeration { enum "rfc-aligned" { value 1000; } } type uint32 { range "0..255"; } } default "rfc-aligned"; description "Value for RADIUS NAS-Port-Type attribute"; } } // container nas-port-type } // container include-radius-attribute } // list radius-accounting-policy container authentication-origin { description "Enter the authentication-origin context"; container overrides { description "Enter the overrides context"; list priority { key "id"; description "Enter the priority list instance"; leaf id { type uint32 { range "1..4294967295"; } description "Specifies the insert position of the authentication origin priority override."; } leaf source { type types-submgt:authentication-origin; mandatory true; description "The source of authentication having priority specified id."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priority } // container overrides } // container authentication-origin list radius-authentication-policy { key "name"; max-elements 32; description "Enter the radius-authentication-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "RADIUS request password"; } leaf pppoe-access-method { type enumeration { enum "none" { value 1; } enum "padi" { value 2; } enum "pap-chap" { value 3; } } default "padi"; description "PPPoE access method"; } leaf radius-server-policy { type leafref { path "../../../aaa/radius/server-policy/name"; } description "Referenced RADIUS server policy"; } leaf re-authentication { type boolean; default "false"; description "Enable re-authentication on IPOE renewal"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container fallback { description "Enter the fallback context"; leaf force-probing { type boolean; default "false"; description "Enable force probing"; } container action { description "Enter the action context"; choice action { case accept { leaf accept { type empty; description "Automatically accept all authentication requests"; } } case user-db { leaf user-db { type types-sros:named-item; description "Local user database used to authenticate to the server"; } } } } // container action } // container fallback container ppp-user-name { description "Enter the ppp-user-name context"; leaf domain-operation { type types-submgt:user-name-format-domain-operation; description "Specifies the operation to perform on the user-name."; } leaf domain-name { type string { length "1..128"; } description "Specifies the domain-name to use with user-name operations."; } } // container ppp-user-name container send-acct-stop-on-fail { description "Enter the send-acct-stop-on-fail context"; leaf on-request-failure { type boolean; default "false"; description "Send accounting-stop on request failure."; } leaf on-reject { type boolean; default "false"; description "Send accounting-stop on access-reject."; } leaf on-accept-failure { type boolean; default "false"; description "Send accounting-stop on host authentication and instantiation failure after access-accept."; } } // container send-acct-stop-on-fail container user-name { description "Enter the user-name context"; leaf format { type enumeration { enum "mac" { value 1; } enum "circuit-id" { value 2; } enum "tuple" { value 3; } enum "ascii-converted-circuit-id" { value 4; } enum "ascii-converted-tuple" { value 5; } enum "dhcp-client-vendor-opts" { value 6; } enum "mac-giaddr" { value 7; } enum "ppp-user-name" { value 8; } } default "mac"; description "How user is represented when contacting RADIUS server"; } leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "Specifies how the MAC address gets formatted."; } leaf gtp-format { type enumeration { enum "imsi" { value 1; } enum "imsi-apn" { value 2; } } default "imsi"; description "Format of the GTP username"; } leaf domain-operation { type types-submgt:user-name-format-domain-operation; description "Specifies the operation to perform on the user-name."; } leaf domain-name { type string { length "1..128"; } description "Specifies the domain-name to use with user-name operations."; } } // container user-name container include-radius-attribute { description "Enter the include-radius-attribute context"; leaf access-loop-options { type boolean; default "false"; description "Enable/disable include of the access-loop-options attribute."; } leaf apn { type boolean; default "false"; description "Enable/disable include of the APN attribute."; } leaf called-station-id { type boolean; default "false"; description "Include called-station-id attribute"; } leaf circuit-id { type boolean; default "false"; description "Include circuit-id attribute"; } leaf dhcp-options { type boolean; default "false"; description "Generate the DHCP options RADIUS attribute"; } leaf dhcp-vendor-class-id { type boolean; default "false"; description "Enable/disable include of the IPOE-Vendor-Class-Id RADIUS attribute."; } leaf dhcp6-options { type boolean; default "false"; description "Generate the DHCPv6 options RADIUS attribute"; } leaf gprs-negotiated-qos-profile { type boolean; default "false"; description "Generate the GPRS negotiated QoS profile RADIUS attribute"; } leaf imei { type boolean; default "false"; description "Enable/disable include of the IMEI attribute."; } leaf mac-address { type boolean; default "false"; description "Enable/disable include of the MAC-Address attribute."; } leaf msisdn { type boolean; default "false"; description "Enable/disable include of the MSISDN attribute."; } leaf nas-identifier { type boolean; default "false"; description "Enable/disable include of the NAS-Identifier attribute."; } leaf pppoe-service-name { type boolean; default "false"; description "Generate the pppoe-service-name RADIUS attribute"; } leaf rat-type { type boolean; default "false"; description "Generate the RAT type RADIUS attribute"; } leaf remote-id { type boolean; default "false"; description "Include remote-id attribute"; } leaf sap-session-index { type boolean; default "false"; description "Generate the per-SAP unique session index"; } leaf tunnel-server-attrs { type boolean; default "false"; description "Enable/disable include of tunnel-server attributes."; } leaf uli { type boolean; default "false"; description "Generate the ULI RADIUS attribute"; } leaf wifi-num-attached-ues { type boolean; default "false"; description "Enable/disable including the Alc-Num-Attached-UEs RADIUS attribute."; } leaf wifi-ssid-vlan { type boolean; default "false"; description "Enable/disable including the per-SSID VLAN ID in Alc-Wlan-SSID-VLAN."; } leaf xconnect-tunnel-home-address { type boolean; default "false"; description "Enable/disable include of Alc-Xconnect-Tunnel-Home-Ipv6 attribute."; } container acct-session-id { presence "Enter the 'acct-session-id' context"; description "Enable the acct-session-id context"; leaf type { type enumeration { enum "host" { value 1; } enum "session" { value 2; } } default "host"; description "Specifies the accounting-session-id type."; } } // container acct-session-id container calling-station-id { presence "Enter the 'calling-station-id' context"; description "Enable the calling-station-id context"; leaf type { type enumeration { enum "sap-string" { value 1; } enum "mac" { value 2; } enum "sap-id" { value 3; } enum "remote-id" { value 4; } enum "llid" { value 5; } } default "sap-string"; description "Specifies the calling-station-id type."; } } // container calling-station-id container nas-port { presence "Enter the 'nas-port' context"; description "Enable the nas-port context"; leaf bit-spec { type types-sros:binary-specification { pattern "([01]|(\\*[0123456789]+)?[smpoivc])+"; } mandatory true; description "RADIUS NAS-Port attribute"; } } // container nas-port container nas-port-id { presence "Enter the 'nas-port-id' context"; description "Enable the nas-port-id context"; leaf prefix-string { type string { length "1..8"; } description "String to be prefixed to the NAS-Port-Id attribute"; } leaf suffix { type enumeration { enum "circuit-id" { value 1; } enum "remote-id" { value 2; } } description "String to be suffixed to the NAS-Port-Id attribute"; } } // container nas-port-id container nas-port-type { presence "Enter the 'nas-port-type' context"; description "Enable the nas-port-type context"; leaf type { type union { type enumeration { enum "rfc-aligned" { value 1000; } } type uint32 { range "0..255"; } } default "rfc-aligned"; description "Value for RADIUS NAS-Port-Type attribute"; } } // container nas-port-type } // container include-radius-attribute } // list radius-authentication-policy container auto-sub-id { description "Enter the auto-sub-id context"; leaf-list ipoe-key { type types-submgt:sub-id-key-ipoe; max-elements 4; ordered-by user; description "Auto-generated subscriber identifier key1 for IPoE hosts"; } leaf-list ppp-key { type types-submgt:sub-id-key-ppp; max-elements 5; ordered-by user; description "Auto-generated subscriber identifier key1 for PPP hosts"; } leaf implicit-generation { type boolean; default "true"; description "Generate implicitly the subscriber identifier if none is provided"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container auto-sub-id list rip-policy { key "name"; max-elements 255; description "Enter the rip-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..51"; } description "Set authentication key."; } leaf authentication-type { type enumeration { enum "password" { value 2; } enum "message-digest" { value 3; } enum "message-digest-20" { value 4; } } description "Set authentication type."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list rip-policy list host-lockout-policy { key "name"; max-elements 128; description "Enter the host-lockout-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf host-key { type enumeration { enum "all" { value 0; } enum "mac" { value 1; } } sros-ext:immutable; default "all"; description "Parameters used in host identification for lockout on specified SAP or capture SAP"; } leaf lockout-reset-time { type types-sros:time-duration { range "1..86400"; } units "seconds"; default "60"; description "Lockout reset time settings"; } leaf max-lockout-hosts { type uint32 { range "1..32000"; } default "100"; description "Max lockout hosts"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container lockout-time { description "Enter the lockout-time context"; leaf min { type types-sros:time-duration { range "1..86400"; } units "seconds"; default "10"; description "Minimum lockout time"; } leaf max { type types-sros:time-duration { range "1..86400"; } units "seconds"; default "3600"; description "Maximum lockout time"; } } // container lockout-time } // list host-lockout-policy list shcv-policy { key "name"; max-elements 64; description "Enter the shcv-policy list instance"; leaf name { type types-sros:external-named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container periodic { description "Enter the periodic context"; leaf action { type types-submgt:host-connectivity-verify-action; default "alarm"; description "Action when periodic connectivity verification fails"; } leaf interval { type types-submgt:host-connectivity-verify-interval; default "30"; description "Interval between periodic connectivity verification."; } leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "2"; description "Number of retransmissions in periodic connectivity verification."; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "10"; description "Timeout before a periodic connectivity verification is retransmitted."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of periodic connectivity verification"; } } // container periodic container vpls { description "Enter the vpls context"; leaf source-ip { type types-sros:ipv4-unicast-address; description "Source IPv4 address for connectivity verification."; } leaf source-mac { type yang:mac-address; sros-ext:immutable; description "Source MAC address for connectivity verification."; } } // container vpls container layer-3 { description "Enter the layer-3 context"; leaf source-ip-origin { type types-submgt:host-connectivity-verify-source-ip-origin; default "interface"; description "Origin of the source IP address for connectivity verification."; } } // container layer-3 container trigger { description "Enter the trigger context"; container ip-conflict { description "Enter the ip-conflict context"; leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "1"; description "Number of retransmissions in ip-conflict periodic connectivity verification"; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "1"; description "Timeout before an ip-conflict periodic connectivity verification is retransmitted"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the trigger for IP conflict"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ip-conflict container host-limit-exceeded { description "Enter the host-limit-exceeded context"; leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "1"; description "Number of retransmissions in host-limit-exceeded periodic connectivity verification"; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "1"; description "Timeout before a host-limit-exceeded periodic connectivity verification is retransmitted"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of trigger for host-limit exceeded"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container host-limit-exceeded container inactivity { description "Enter the inactivity context"; leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "2"; description "Number of retransmissions in inactivity periodic connectivity verification"; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "10"; description "Timeout before an inactivity periodic connectivity verification is retransmitted"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the trigger for inactive hosts"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container inactivity container mobility { description "Enter the mobility context"; leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "1"; description "Number of retransmissions in mobility periodic connectivity verification"; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "1"; description "Timeout before an mobility periodic connectivity verification is retransmitted"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of trigger for SAP IP/MAC conflict"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mobility container mac-learning { description "Enter the mac-learning context"; leaf retry-count { type types-submgt:host-connectivity-verify-retry-count; default "2"; description "Number of retransmissions in mac-learning periodic connectivity verification"; } leaf timeout { type types-submgt:host-connectivity-verify-retry-timeout; default "10"; description "Timeout before an mac-learning periodic connectivity verification is retransmitted"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of trigger for MAC learning"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mac-learning } // container trigger } // list shcv-policy list http-redirect-policy { key "name"; max-elements 16; description "Enter the http-redirect-policy list instance"; leaf name { type types-sros:named-item; description "Identification of the http redirect policy"; } leaf description { type types-sros:description; description "Text description"; } leaf url { type types-sros:http-redirect-url; description "HTTP URL to which the matching traffic is redirected. Only macros $URL, $MAC, $IP are supported in this case. For unsupported macros, the string is not modified."; } leaf dst-port { type types-sros:tcp-udp-port-non-zero; default "80"; description "Destination port number of the HTTP request to match"; } leaf portal-hold-time { type types-sros:time-duration { range "1..60"; } description "Time for holding on to the re-direct forwarding resources after the subscriber has left the portal"; } leaf ignore-app-profile { type boolean; default "false"; description "Ignore application profile attribute in the RADIUS Access-Accept message"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list forward-entry { key "dst-ip protocol dst-port"; description "Add a list entry for forward-entry"; leaf dst-ip { type types-sros:ip-prefix; description "Destination address"; } leaf protocol { type enumeration { enum "tcp" { value 6; } enum "udp" { value 17; } } description "Destination protocol"; } leaf dst-port { type types-sros:tcp-udp-port-non-zero; description "Destination port"; } } // list forward-entry } // list http-redirect-policy list msap-policy { key "name"; max-elements 256; description "Enter the msap-policy list instance"; leaf name { type types-sros:named-item; description "Managed SAP policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf dist-cpu-protection { type types-sros:named-item; description "Distributed CPU protection policy"; } leaf lag-link-map-profile { type types-services:link-map-profile-id; description "Map profile for LAG link"; } leaf sticky-msaps { type boolean; default "false"; description "Prevent MSAPs from being deleted"; } leaf sticky-msaps-idle-timeout { when "not(../sticky-msaps = 'false')"; type uint32 { range "5..604800"; } units "seconds"; description "Timeout used for sticky MSAPs"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container cpu-protection { description "Enter the cpu-protection context"; leaf policy-id { type leafref { path "../../../../system/security/cpu-protection/policy/policy-id"; } description "CPM protection policy"; } choice monitoring { case mac { leaf mac-monitoring { type empty; description "Apply the CPU protection policy per-source-rate on MAC sources."; } } case ip { leaf ip-src-monitoring { type empty; description "Apply the CPU protection policy per-source-rate on IP sources."; } } } } // container cpu-protection container sub-sla-mgmt { description "Enter the sub-sla-mgmt context"; leaf subscriber-limit { type types-submgt:sap-subscriber-limit; default "1"; description "Maximum subscribers on this SAP"; } leaf sub-ident-policy { type leafref { path "../../../sub-ident-policy/name"; } description "Configure subscriber identification policy"; } container defaults { description "Enter the defaults context"; leaf sla-profile { type leafref { path "../../../../sla-profile/name"; } description "Default SLA profile"; } leaf sub-profile { type leafref { path "../../../../sub-profile/name"; } description "Subscriber profile"; } container int-dest-id { description "Enter the int-dest-id context"; choice int-dest-id-config { case top-q-tag { leaf top-q-tag { type empty; description "Derive string based on top most delineating Dot1Q tag from SAP's encapsulation"; } } case string { leaf string { type types-submgt:int-dest-id; description "String to be used as the int-dest-id"; } } } } // container int-dest-id container subscriber-id { description "Enter the subscriber-id context"; choice subscriber-id-config { case auto-id { leaf auto-id { type empty; description "Autogenerated sub-id as default sub-id"; } } case sap-id { leaf sap-id { type empty; description "SAP-id as default sub-id"; } } case string { leaf string { type types-submgt:subscriber-id; description "String to be used as default sub-id"; } } } } // container subscriber-id } // container defaults container single-sub-parameters { description "Enter the single-sub-parameters context"; leaf profiled-traffic-only { type boolean; default "false"; description "Enable/disable profiled-traffic-only."; } container non-sub-traffic-profiles { presence "Enter the 'non-sub-traffic-profiles' context"; description "Enable the non-sub-traffic-profiles context"; leaf sub-profile { type leafref { path "../../../../../sub-profile/name"; } mandatory true; description "Subscriber profile"; } leaf sla-profile { type leafref { path "../../../../../sla-profile/name"; } mandatory true; description "SLA profile name"; } leaf subscriber-id { type types-submgt:subscriber-id; description "Subscriber identification string"; } } // container non-sub-traffic-profiles } // container single-sub-parameters } // container sub-sla-mgmt container igmp-host-tracking { description "Enter the igmp-host-tracking context"; leaf expiry-time { type types-sros:time-duration { range "1..65535"; } units "seconds"; description "Time during which the system continues to track inactive hosts"; } leaf import-policy { type leafref { path "../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type uint32 { range "1..16000"; } description "Maximum number of multicast groups to be tracked"; } leaf maximum-number-group-sources { type uint32 { range "1..32000"; } description "Maximum number of multicast groups to be tracked per group"; } leaf maximum-number-sources { type uint32 { range "1..1000"; } description "Maximum number of multicast sources to be tracked"; } } // container igmp-host-tracking container vpls-only-sap-parameters { description "Enter the vpls-only-sap-parameters context"; leaf arp-reply-agent { type types-services:arp-reply-agent; description "Enable arp-reply-agent function"; } leaf mac-da-hashing { type boolean; default "false"; description "Include hashing on MAC DA ISO subscriber ID"; } leaf split-horizon-group { type types-sros:named-item; description "Name of the split horizon group for the MSAP"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container arp-host { description "Enter the arp-host context"; leaf host-limit { type types-submgt:sap-host-limit; default "1"; description "Maximum number of ARP hosts"; } leaf min-auth-interval { type types-sros:time-duration { range "1..6000"; } units "minutes"; default "15"; description "The minimum authentication interval."; } } // container arp-host container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf policy-name { type leafref { path "../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "SAP-egress QoS policy"; } } // container qos } // container egress container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf policy-name { type leafref { path "../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "Configure the SAP-ingress QoS policy."; } leaf queuing-type { type enumeration { enum "multipoint-shared" { value 1; } enum "service" { value 2; } } default "multipoint-shared"; description "Queuing type"; } } // container qos } // container ingress container dhcp { description "Enter the dhcp context"; leaf lease-populate { type types-submgt:sap-lease-state-limit; default "1"; description "Maximum number of DHCPv4 leases per managed SAP"; } container proxy-server { description "Enter the proxy-server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of DHCP proxy"; } leaf emulated-server { type types-sros:ipv4-unicast-address; description "IP address used as the DHCP server address in the context of this service"; } container lease-time { description "Enter the lease-time context"; leaf value { type types-sros:time-duration { range "300..315446399"; } units "seconds"; description "DHCP lease time"; } leaf radius-override { type boolean; default "false"; description "Use lease time information provided by RADIUS server"; } } // container lease-time } // container proxy-server container option-82 { description "Enter the option-82 context"; leaf action { type enumeration { enum "replace" { value 1; } enum "drop" { value 2; } enum "keep" { value 3; } } default "keep"; description "DHCP relay forwarding policy action"; } leaf circuit-id { type enumeration { enum "none" { value 0; } enum "ascii-tuple" { value 1; } enum "vlan-ascii-tuple" { value 2; } } default "ascii-tuple"; description "Circuit ID suboption of the IPOE relay"; } container remote-id { description "Enter the remote-id context"; choice remote-id { case mac { leaf mac { type empty; description "MAC address of the remote end that is encoded in the suboption"; } } case string { leaf string { type types-sros:named-item; description "String to encode in the suboption"; } } } } // container remote-id container vendor-specific-option { description "Enter the vendor-specific-option context"; leaf client-mac-address { type boolean; default "false"; description "Enable/disable sending of the MAC address in the Nokia vendor specific suboption of the IPOE Relay packet."; } leaf sap-id { type boolean; default "false"; description "Enable/disable sending of the SAP-id in the Nokia vendor specific suboption of the IPOE Relay packet."; } leaf service-id { type boolean; default "false"; description "Enable/disable sending of the service-id in the Nokia vendor specific suboption of the IPOE Relay packet."; } leaf string { type types-sros:string-not-all-spaces { length "1..32"; } description "Specifies the string in the Nokia vendor specific suboption of the IPOE Relay packet."; } leaf system-id { type boolean; default "false"; description "Enable/disable sending of the system-id in the Nokia vendor specific suboption of the IPOE Relay packet."; } } // container vendor-specific-option } // container option-82 } // container dhcp container igmp-snooping { description "Enter the igmp-snooping context"; leaf fast-leave { type boolean; default "false"; description "Allow IGMP fast leave processing"; } leaf query-last-member-interval { type types-sros:time-duration { range "1..50"; } units "deciseconds"; default "10"; description "Time between group-specific query messages"; } leaf import-policy { type leafref { path "../../../../../policy-options/policy-statement/name"; } description "Import policy that filters IGMP packets"; } leaf maximum-number-groups { type union { type enumeration { enum "unlimited" { value 0; } } type uint32 { range "1..16000"; } } default "unlimited"; description "Maximum number of multicast groups"; } leaf query-interval { type types-sros:time-duration { range "2..1024"; } units "seconds"; default "125"; description "Time between two consecutive host-query messages"; } leaf query-response-interval { type types-sros:time-duration { range "1..1023"; } units "seconds"; default "10"; description "Time to wait for a response to the host-query messages"; } leaf robust-count { type uint32 { range "2..7"; } default "2"; description "Number of retries to cope with message loss"; } leaf send-queries { type boolean; default "false"; description "Generate IGMP general queries"; } leaf version { type types-igmp:igmp-version; default "3"; description "IGMP version"; } container mcac { description "Enter the mcac context"; leaf interface-policy { type leafref { path "../../../../../../mcac/interface-policy/policy-name"; } description "Multicast CAC interface-policy name."; } leaf policy { type leafref { path "../../../../../../mcac/policy/policy-name"; } description "Multicast CAC policy name"; } container bandwidth { description "Enter the bandwidth context"; leaf total { type types-mcast-cac:bandwidth-limit; description "Maximum allowed bandwidth"; } leaf mandatory { type types-mcast-cac:bandwidth-limit; description "Pre-reserved bandwidth for all mandatory channels"; } } // container bandwidth container mc-constraints { description "Enter the mc-constraints context"; leaf use-lag-port-weight { type boolean; default "false"; description "Use LAG port weight while calculating Multicast CAC constraints"; } list level { key "level-id"; description "Enter the level list instance"; leaf level-id { type types-mcast-cac:constraints-level; description "Bandwidth level ID for a multicast CAC constraint"; } leaf bandwidth { type types-mcast-cac:bandwidth; default "1"; description "Bandwidth available for this level"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list level list number-down { key "number-lag-port-down"; description "Enter the number-down list instance"; leaf number-lag-port-down { type uint32 { range "1..64"; } description "Number of lag ports down"; } leaf level { type types-mcast-cac:constraints-level; mandatory true; description "Level to be associated with this number of lag ports that are down"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list number-down } // container mc-constraints } // container mcac container mvr { description "Enter the mvr context"; leaf from-vpls { type leafref { path "../../../../../../service/vpls/service-name"; } description "MVR VPLS from which the multicast channels are taken"; } } // container mvr } // container igmp-snooping } // container vpls-only-sap-parameters container ies-vprn-only-sap-parameters { description "Enter the ies-vprn-only-sap-parameters context"; leaf anti-spoof { type types-services:anti-spoof-option-ip-mac; default "source-ip-and-mac-addr"; description "Anti-spoof filtering for the MSAP"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; container qos { description "Enter the qos context"; leaf policy-name { type leafref { path "../../../../../../qos/sap-egress/sap-egress-policy-name"; } description "SAP-egress QoS policy"; } } // container qos } // container egress container ingress { description "Enter the ingress context"; container qos { description "Enter the qos context"; leaf policy-name { type leafref { path "../../../../../../qos/sap-ingress/sap-ingress-policy-name"; } description "Configure the SAP-ingress QoS policy."; } leaf queuing-type { type enumeration { enum "shared" { value 1; } enum "service" { value 2; } } default "shared"; description "Queuing type"; } } // container qos } // container ingress } // container ies-vprn-only-sap-parameters } // list msap-policy list category-map { key "category-map-name"; max-elements 255; description "Enter the category-map list instance"; leaf category-map-name { type types-sros:named-item; description "Category map name"; } leaf description { type types-sros:description; description "Text description"; } leaf credit-type { type enumeration { enum "volume" { value 1; } enum "time" { value 2; } } default "volume"; description "Credit type"; } leaf credit-exhaust-threshold { type uint32 { range "50..100"; } units "percent"; default "100"; description "Percentage for credit exhaust threshold"; } leaf activity-threshold { type types-submgt:activity-threshold; description "Threshold that is applied to determine whether an activity is ongoing"; } leaf gx-session-level-usage { type boolean; default "false"; description "Allow Gx session level Usage Monitoring"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list category { key "category-name"; max-elements 16; description "Enter the category list instance"; leaf category-name { type types-sros:named-item; description "Category name"; } leaf description { type types-sros:description; description "Text description"; } leaf rating-group { type int64 { range "0..4294967295"; } description "Rating group for this category"; } leaf credit-type-override { type enumeration { enum "volume" { value 1; } enum "time" { value 2; } } description "Credit type override in category map"; } leaf out-of-credit-action-override { type enumeration { enum "continue" { value 1; } enum "disconnect-host" { value 2; } enum "block-category" { value 3; } enum "change-service-level" { value 4; } } description "Out of credit action that is overridden in category map"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container default-credit { description "Enter the default-credit context"; choice default-credit { case time { leaf time { type types-sros:time-duration { range "1..4294967295"; } units "seconds"; description "Default time credit"; } } case volume { container volume { presence "Enter the 'volume' context"; description "Enable the volume context"; leaf value { type uint32 { range "1..4294967295"; } mandatory true; description "Value for the default volume credit"; } leaf unit { type enumeration { enum "bytes" { value 0; } enum "kilobytes" { value 1; } enum "megabytes" { value 2; } enum "gigabytes" { value 3; } } default "bytes"; description "Unit for the default volume credit"; } } // container volume } } } // container default-credit container exhausted-credit-service-level { description "Enter the exhausted-credit-service-level context"; leaf pir { type types-qos:pir-rate-override; description "PIR"; } container ingress { description "Enter the ingress context"; container ip-filter { description "Enter the ip-filter context"; list entry { key "id"; max-elements 10; description "Enter the entry list instance"; leaf id { type types-filter:limited-entry-id; description "IP Filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IPv4 protocol to match"; } leaf multiple-option { type boolean; description "Match the multiple option"; } leaf option-present { type boolean; description "Match the present option"; } leaf dst-ip { type types-sros:ipv4-address-and-mask; description "Destination IP address and mask to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP to match"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Fragmentation to match"; } container icmp { description "Enter the icmp context"; leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code to match"; } leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match"; } } // container icmp container ip-option { description "Enter the ip-option context"; leaf type { type types-filter:filter-match-ip-option; default "0"; description "First IP option value for the IP header"; } leaf mask { type types-filter:filter-match-ip-option; default "0"; description "Mask with which the first IP option of IP header is ANDed before comparing"; } } // container ip-option container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Check for ACK bit"; } leaf syn { type boolean; description "Check for SYN bit"; } } // container tcp-flags container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Upper bound of the range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Upper bound of the range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; choice type { default "drop"; description "Action type for the filter entry"; case drop { leaf drop { type empty; description "Packets matching the filter entry are dropped"; } } case forward { leaf forward { type empty; description "Packets matching the filter entry are forwarded"; } } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type types-sros:http-redirect-url; mandatory true; description "URL that is used to redirect the packets"; } leaf allow-override { type boolean; default "false"; description "Allow URL to be overridden by RADIUS/Diameter"; } } // container http-redirect } } } // container action } // list entry } // container ip-filter container ipv6-filter { description "Enter the ipv6-filter context"; list entry { key "id"; max-elements 10; description "Enter the entry list instance"; leaf id { type types-filter:limited-entry-id; description "IP Filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } leaf dst-ip { type types-sros:ipv6-address-and-mask; default "0::0 0::0"; description "Destination IP address and mask to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP to match"; } container icmp { description "Enter the icmp context"; leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code to match"; } leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match"; } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Check for ACK bit"; } leaf syn { type boolean; description "Check for SYN bit"; } } // container tcp-flags container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Upper bound of the range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Upper bound of the range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; choice type { default "drop"; description "Action type for the filter entry"; case drop { leaf drop { type empty; description "Packets matching the filter entry are dropped"; } } case forward { leaf forward { type empty; description "Packets matching the filter entry are forwarded"; } } } } // container action } // list entry } // container ipv6-filter } // container ingress container egress { description "Enter the egress context"; container ip-filter { description "Enter the ip-filter context"; list entry { key "id"; max-elements 10; description "Enter the entry list instance"; leaf id { type types-filter:limited-entry-id; description "IP Filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf protocol { type types-sros:match-ip-protocol; description "IPv4 protocol to match"; } leaf multiple-option { type boolean; description "Match the multiple option"; } leaf option-present { type boolean; description "Match the present option"; } leaf src-ip { type types-sros:ipv4-address-and-mask; description "Source IP address and mask to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP to match"; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Fragmentation to match"; } container icmp { description "Enter the icmp context"; leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code to match"; } leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match"; } } // container icmp container ip-option { description "Enter the ip-option context"; leaf type { type types-filter:filter-match-ip-option; default "0"; description "First IP option value for the IP header"; } leaf mask { type types-filter:filter-match-ip-option; default "0"; description "Mask with which the first IP option of IP header is ANDed before comparing"; } } // container ip-option container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Check for ACK bit"; } leaf syn { type boolean; description "Check for SYN bit"; } } // container tcp-flags container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Upper bound of the range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Upper bound of the range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; choice type { default "drop"; description "Action type for the filter entry"; case drop { leaf drop { type empty; description "Packets matching the filter entry are dropped"; } } case forward { leaf forward { type empty; description "Packets matching the filter entry are forwarded"; } } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type types-sros:http-redirect-url; mandatory true; description "URL that is used to redirect the packets"; } leaf allow-override { type boolean; default "false"; description "Allow URL to be overridden by RADIUS/Diameter"; } } // container http-redirect } } } // container action } // list entry } // container ip-filter container ipv6-filter { description "Enter the ipv6-filter context"; list entry { key "id"; max-elements 10; description "Enter the entry list instance"; leaf id { type types-filter:limited-entry-id; description "IP Filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } leaf src-ip { type types-sros:ipv6-address-and-mask; default "0::0 0::0"; description "Source IP address and mask to match"; } leaf dscp { type types-qos:dscp-name; description "DSCP to match"; } container icmp { description "Enter the icmp context"; leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code to match"; } leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match"; } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "Check for ACK bit"; } leaf syn { type boolean; description "Check for SYN bit"; } } // container tcp-flags container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Upper bound of the range"; } } // container range } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port equal"; } } case lt { leaf lt { type uint16 { range "1..65535"; } description "Port less than"; } } case gt { leaf gt { type uint16 { range "0..65534"; } description "Port greater than"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound of the range"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Upper bound of the range"; } } // container range } } } // container dst-port } // container match container action { description "Enter the action context"; choice type { default "drop"; description "Action type for the filter entry"; case drop { leaf drop { type empty; description "Packets matching the filter entry are dropped"; } } case forward { leaf forward { type empty; description "Packets matching the filter entry are forwarded"; } } } } // container action } // list entry } // container ipv6-filter } // container egress } // container exhausted-credit-service-level container ingress { description "Enter the ingress context"; leaf-list queue { type int8 { range "1..32"; } max-elements 32; description "Ingress queues used in this category"; } leaf-list policer { type int8 { range "1..63"; } max-elements 63; description "Ingress policers used in this category"; } } // container ingress container egress { description "Enter the egress context"; leaf-list queue { type int8 { range "1..8"; } max-elements 8; description "Egress queues for this category"; } leaf-list policer { type int8 { range "1..63"; } max-elements 63; description "Egress policers for this category"; } } // container egress } // list category } // list category-map list credit-control-policy { key "name"; max-elements 255; description "Enter the credit-control-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf default-category-map { type leafref { path "../../category-map/category-map-name"; } description "Default category map for this policy"; } leaf out-of-credit-action { type enumeration { enum "continue" { value 1; } enum "disconnect-host" { value 2; } enum "block-category" { value 3; } enum "change-service-level" { value 4; } } default "continue"; description "Action when out of credit is reached"; } leaf error-handling-action { type enumeration { enum "continue" { value 1; } enum "block" { value 2; } } default "continue"; description "Action when an error occurs in the determination of Credit Control"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container server { description "Enter the server context"; choice server { default "radius"; case radius { leaf radius { type empty; description "Use RADIUS authentication servers defined in the RADIUS authentication policy in group interface"; } } case diameter { leaf diameter { type leafref { path "../../../diameter-gy-policy/name"; } description "Diameter policy name that defines the Diameter peers to be used"; } } } } // container server } // list credit-control-policy list router-advertisement-policy { key "name"; max-elements 16; description "Enter the router-advertisement-policy list instance"; leaf name { type types-sros:external-named-item; description "Router advertisement policy name"; } leaf max-advertisement-interval { type types-sros:time-duration { range "900..1800"; } units "seconds"; default "1800"; description "Maximum advertisement interval"; } leaf min-advertisement-interval { type types-sros:time-duration { range "900..1350"; } units "seconds"; default "900"; description "Minimum advertisement interval"; } leaf force-mcast { type enumeration { enum "ip" { value 1; } enum "ip-mac" { value 2; } } description "Send router advertisement to a multicast address instead of unicast for IPoE"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container options { description "Enter the options context"; leaf current-hop-limit { type uint32 { range "0..255"; } default "64"; description "Hop limit to be advertised"; } leaf managed-configuration { type boolean; default "false"; description "Managed address configuration flag"; } leaf mtu { type union { type uint32 { range "1280..9212"; } type enumeration { enum "not-included" { value 0; } } } units "bytes"; default "not-included"; description "Advertised MTU value"; } leaf other-stateful-configuration { type boolean; default "false"; description "Other stateful configuration flag"; } leaf reachable-time { type types-sros:time-duration { range "0..3600000"; } units "milliseconds"; default "0"; description "Neighbor discovery reachable time that is advertised for this group interface"; } leaf retransmit-timer { type uint32 { range "0..1800000"; } units "seconds"; default "0"; description "Neighbor discovery retransmit timer that is advertised for this group interface"; } leaf router-lifetime { type union { type types-sros:time-duration { range "2700..9000"; } type enumeration { enum "no-default-router" { value 0; } } } units "seconds"; default "4500"; description "Router lifetime"; } container dns { description "Enter the dns context"; leaf include-rdnss { type boolean; default "false"; description "Include the RDNSS server option 25"; } leaf rdnss-lifetime { type union { type types-sros:time-duration { range "900..3600"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; default "3600"; description "Maximum time for the RDNSS address to remain valid"; } } // container dns } // container options container prefix-options { description "Enter the prefix-options context"; container stateful { description "Enter the stateful context"; leaf auto-lifetimes { type boolean; default "false"; description "Use automatic lifetimes for stateful prefixes"; } leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container stateful container stateless { description "Enter the stateless context"; leaf on-link { type boolean; default "true"; description "Assign the prefix to an interface on the specified link"; } leaf preferred-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "3600"; description "Time for a prefix to remain preferred"; } leaf valid-lifetime { type types-submgt:router-advertisement-prefix-options-lifetime; units "seconds"; default "86400"; description "Time for a prefix to remain valid"; } } // container stateless } // container prefix-options } // list router-advertisement-policy list bgp-peering-policy { key "name"; max-elements 255; description "Enter the bgp-peering-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf description { type types-sros:description; description "Text description"; } leaf advertise-inactive { type boolean; description "Advertise inactive BGP routes to other BGP peers"; } leaf aggregator-id-zero { type boolean; description "Set router ID in aggregator path attribute to zero when BGP aggregates routes"; } leaf as-override { type boolean; description "Replace all instances of the peer's AS number with the local AS number in a BGP route's AS_PATH"; } leaf authentication-keychain { type leafref { path "../../../system/security/keychains/keychain/keychain-name"; } description "Specify the TCP authentication keychain to use for the session."; } leaf authentication-key { type types-sros:encrypted-leaf { length "1..370"; } description "BGP authentication key for all peers"; } leaf cluster { type types-sros:ipv4-address; description "Cluster ID for route reflector server"; } leaf connect-retry { type int32 { range "1..65535"; } units "seconds"; description "BGP connect retry timer value"; } leaf damping { type boolean; description "Use BGP route damping for learned routes defined within the route policy"; } leaf client-reflect { type boolean; description "Enable/disable the reflection of routes by the route reflector."; } leaf fast-external-failover { type boolean; description "Enable/disable BGP fast external failover."; } leaf hold-time { type int32 { range "0|3..65535"; } units "seconds"; description "BGP hold time before closing connection"; } leaf keepalive { type int32 { range "0..21845"; } units "seconds"; description "BGP keepalive timer"; } leaf local-address { type types-sros:ip-unicast-address; description "Local IP address used by group or neighbor when communicating with BGP peers"; } leaf local-preference { type int64 { range "0..4294967295"; } description "Local preference attribute for incoming routes if not specified"; } leaf loop-detect { type types-bgp:loop-detect; description "Strategy for loop detection in the AS path"; } leaf med-out { type union { type uint32; type enumeration { enum "igp-cost" { value -1; } } } description "Multi-Exit Discriminator (MED) advertising"; } leaf min-route-advertisement { type int16 { range "1..255"; } units "seconds"; description "Minimum interval between successive updates of prefix toward peer"; } leaf multihop { type uint32 { range "1..255"; } description "TTL value entered in IP header of packets sent to peer"; } leaf next-hop-self { type boolean; description "Advertise routes to peer using next hop path attribute set to itself"; } leaf passive { type boolean; description "Wait passively for BGP peer to connect"; } leaf peer-as { type uint32 { range "1..4294967295"; } description "AS number for remote peer"; } leaf preference { type uint32 { range "1..255"; } description "Route preference for routes learned from all configured peers"; } leaf prefix-limit { type uint32 { range "1..4294967295"; } description "Maximum number of routes that can be learned from peer"; } leaf ttl-security { type int32 { range "1..255"; } description "Minimum TTL value for incoming BGP packet"; } leaf type { type types-bgp:peer-type; description "Peer type"; } leaf asn-4-byte { type boolean; description "Enable/disable the advertisement of 4-byte ASN capability."; } leaf-list import { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 15; ordered-by user; description "Import route policies used to control routes advertised to BGP neighbors"; } leaf-list export { type leafref { path "../../../policy-options/policy-statement/name"; } max-elements 15; ordered-by user; description "Export route policies used to control routes advertised to BGP neighbors"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container send-communities { description "Enter the send-communities context"; leaf standard { type boolean; description "Send the community attribute to the peer for non-external communities"; } leaf extended { type boolean; description "Send the community attribute to the peer for external communities"; } } // container send-communities container local-as { description "Enter the local-as context"; leaf as-number { type uint32 { range "1..4294967295"; } description "AS number to be advertised to peer"; } leaf private { type boolean; default "false"; description "Hide local AS number in paths learned from peering"; } } // container local-as container remove-private { presence "Enter the 'remove-private' context"; description "Enable the remove-private context"; leaf limited { type boolean; default "false"; description "Remove private AS numbers up to first public ASN encountered"; } } // container remove-private } // list bgp-peering-policy container svlan-statistics { description "Enter the svlan-statistics context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of statistics collection"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container svlan-statistics container ancp { description "Enter the ancp context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list ancp-policy { key "name"; description "Enter the ancp-policy list instance"; leaf name { type types-sros:named-item; description "Policy name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container egress { description "Enter the egress context"; leaf rate-adjustment { type uint32 { range "1..200"; } units "percent"; default "100"; description "Rate adjustment"; } leaf rate-reduction { type uint32 { range "1..4294967295"; } units "kilobps"; description "Rate reduction"; } container rate-modify { description "Enter the rate-modify context"; choice rate-modify { case agg-rate { leaf agg-rate { type empty; description "Aggregate rate that applies for modification"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Scheduler to be applied for rate modification"; } } } } // container rate-modify container rate-monitor { description "Enter the rate-monitor context"; leaf rate { type uint32 { range "1..4294967295"; } units "kilobps"; description "Rate below which the system generates an event"; } leaf alarm { type boolean; default "false"; description "Generate SNMP notification when monitor event is raised"; } } // container rate-monitor } // container egress container ingress { description "Enter the ingress context"; leaf rate-adjustment { type uint32 { range "1..200"; } units "percent"; default "100"; description "Rate adjustment"; } leaf rate-reduction { type uint32 { range "1..4294967295"; } units "kilobps"; description "Rate reduction"; } container rate-modify { description "Enter the rate-modify context"; leaf scheduler { type types-sros:named-item; description "Scheduler to be applied for rate modification"; } } // container rate-modify container rate-monitor { description "Enter the rate-monitor context"; leaf rate { type uint32 { range "1..4294967295"; } units "kilobps"; description "Rate below which the system generates an event"; } leaf alarm { type boolean; default "false"; description "Generate SNMP notification when monitor event is raised"; } } // container rate-monitor } // container ingress container port-down { description "Enter the port-down context"; container suspend-shcv { presence "Enter the 'suspend-shcv' context"; description "Enable the suspend-shcv context"; leaf alarm { type boolean; default "false"; description "Enables/disables whether the system should generate a notification before suspending SHCV."; } leaf hold-time { type types-sros:time-duration { range "1..7200"; } units "seconds"; description "Configures how long SHCV is suspended."; } } // container suspend-shcv } // container port-down } // list ancp-policy container ancp-static-map { description "Enter the ancp-static-map context"; list sap-entry { key "ancp-string sap-id"; description "Enter the sap-entry list instance"; leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf sap-id { type types-sros:sap; description "SAP"; } leaf ancp-policy { type leafref { path "../../../ancp-policy/name"; } mandatory true; description "ANCP policy name"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list sap-entry list multi-service-site-entry { key "ancp-string customer-name customer-site-name"; description "Enter the multi-service-site-entry list instance"; leaf ancp-string { type types-submgt:ancp-string; description "ANCP string"; } leaf customer-name { type leafref { path "../../../../../service/customer/customer-name"; } description "Service customer identifier"; } leaf customer-site-name { type leafref { path "../../../../../service/customer[customer-name=current()/../customer-name]/multi-service-site/multi-service-site-name"; } description "Service customer multi-service site name"; } leaf ancp-policy { type leafref { path "../../../ancp-policy/name"; } mandatory true; description "The ANCP policy."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list multi-service-site-entry } // container ancp-static-map } // container ancp container gtp { description "Enter the gtp context"; leaf max-held-uplink-sessions { type uint32 { range "0..500000"; } default "2000"; description "Maximum GTP sessions to be held while there is no corresponding ESM state"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container serving-network { presence "Enter the 'serving-network' context"; description "Enable the serving-network context"; leaf mcc { type string { length "3"; pattern "\\d{3}" { error-message "mcc must be digits"; } } mandatory true; description "Mobile Country Code (MCC) portion of serving network"; } leaf mnc { type string { length "2..3"; pattern "\\d{2,3}" { error-message "mnc must be digits"; } } mandatory true; description "Mobile Network Code (MNC) portion of serving network"; } } // container serving-network list apn-policy { key "name"; max-elements 128; description "Enter the apn-policy list instance"; leaf name { type types-sros:named-item; description "GTP APN policy name"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list apn { key "apn-name"; max-elements 1024; description "Enter the apn list instance"; leaf apn-name { type string { length "1..80"; pattern "([a-zA-Z0-9]+-+)*([a-zA-Z0-9]+\\.([a-zA-Z0-9]+-+)*)*[a-zA-Z0-9]+" { error-message "wrong format of apn name"; } } description "GTP APN name"; } leaf skip-gtp-ipv4-allocation { type boolean; default "false"; description "defer IPv4 address allocation to DHCP"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice auth-policy { case diameter { leaf diameter-nasreq-policy { type leafref { path "../../../../diameter-nasreq-policy/name"; } description "NASREQ authentication policy name"; } } case radius { leaf radius-auth-policy { type leafref { path "../../../../radius-authentication-policy/name"; } description "RADIUS authentication policy name"; } } case user-db { leaf user-db { type leafref { path "../../../../local-user-db/name"; } description "Local user database name"; } } } container ambr-qos-mapping { description "Enter the ambr-qos-mapping context"; leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container downlink { presence "Enter the 'downlink' context"; description "Enable the downlink context"; choice downlink { mandatory true; case aggregate-rate { leaf aggregate-rate { type empty; description "Map the downlink APN-AMBR rate to an Aggregate Rate override"; } } case arbiter { leaf arbiter { type types-sros:named-item; description "Map the downlink APN-AMBR rate to an override for the specified arbiter"; } } case policer { leaf policer { type types-qos:sap-egress-policer-id; description "Map the downlink APN-AMBR rate to a policer PIR override"; } } case queue { leaf queue { type types-qos:egress-queue-id; description "Map the downlink APN-AMBR rate to a queue PIR override"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Map the downlink APN-AMBR rate to a scheduler rate override"; } } } } // container downlink container uplink { presence "Enter the 'uplink' context"; description "Enable the uplink context"; choice uplink { mandatory true; case arbiter { leaf arbiter { type types-sros:named-item; description "Map the uplink APN-AMBR rate to an override for the specified arbiter"; } } case policer { leaf policer { type types-qos:ingress-policer-id; description "Map the uplink APN-AMBR rate to a policer PIR override"; } } case queue { leaf queue { type types-qos:ingress-queue-id; description "Map the uplink APN-AMBR rate to a queue PIR override"; } } case scheduler { leaf scheduler { type types-sros:named-item; description "Map the uplink APN-AMBR rate to a scheduler rate override"; } } } } // container uplink } // container ambr-qos-mapping container defaults { description "Enter the defaults context"; container group-interface { presence "Enter the 'group-interface' context"; description "Enable the group-interface context"; leaf svc-name { type types-services:service-name; mandatory true; description "Group interface service name"; } leaf name { type types-sros:interface-name; mandatory true; description "Group interface name"; } } // container group-interface } // container defaults } // list apn } // list apn-policy list peer-profile { key "name"; description "Enter the peer-profile list instance"; leaf name { type types-sros:named-item; description "GTP peer profile name"; } leaf description { type types-sros:description; description "Text description"; } leaf interface-type { type enumeration { enum "gn" { value 1; } enum "s2a" { value 2; } enum "s2b" { value 3; } enum "s11" { value 4; } } description "3GPP interface type for connections toward this peer"; } leaf ip-ttl { type uint8 { range "1..255"; } default "255"; description "IP TTL value for GTP control messages."; } leaf python-policy { type leafref { path "../../../../python/python-policy/name"; } description "Python policy used to process GTP messages."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container keep-alive { description "Enter the keep-alive context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of GTP-C echo request messages"; } leaf interval { when "../admin-state = 'enable'"; type types-sros:time-duration { range "60..180"; } units "seconds"; default "60"; description "Frequency for sending keepalives"; } leaf retry-count { when "../admin-state = 'enable'"; type uint32 { range "1..15"; } default "4"; description "Maximum number of unanswered echo retries after which keepalive failure is detected"; } leaf timeout { when "../admin-state = 'enable'"; type uint32 { range "1..20"; } units "seconds"; default "5"; description "Timeout after which an echo request is considered unanswered"; } } // container keep-alive container message-retransmit { description "Enter the message-retransmit context"; leaf timeout { type uint32 { range "1..30"; } units "seconds"; default "5"; description "Timeout after which a message is considered unanswered"; } leaf retry-count { type uint32 { range "1..8"; } default "3"; description "Maximum number of unanswered retries after which the message is considered failed"; } } // container message-retransmit container s11 { description "Enter the s11 context"; leaf ipv4-mtu { type uint32 { range "512..9000"; } default "1400"; description "IPv4 MTU signaled in the Protocol Configuration Options (PCO)"; } leaf end-marker-count { type uint32 { range "0..5"; } default "1"; description "The number of GTP-U end-marker packets sent after mobility."; } leaf change-reporting-action { type union { type uint32 { range "0..255"; } type enumeration { enum "cgi-sai" { value 1; } enum "rai" { value 2; } enum "tai" { value 3; } enum "ecgi" { value 4; } enum "cgi-sai-rai" { value 5; } enum "tai-ecgi" { value 6; } } } description "The value of the Change Reporting Action Information Element sent to the peer."; } container qos { description "Enter the qos context"; leaf arp { type uint32 { range "1..15"; } default "1"; description "Allocation or retention priority"; } leaf qci { type uint32 { range "1..9"; } default "8"; description "QoS Class Identifier (QCI) value that is used in GTP messages"; } container ambr { description "Enter the ambr context"; leaf down-link { type int32 { range "0..10000000"; } units "kilobps"; default "20000"; description "Downlink Aggregated Maximum Bit Rate (AMBR)"; } leaf up-link { type int32 { range "0..10000000"; } units "kilobps"; default "10000"; description "Uplink Aggregated Maximum Bit Rate (AMBR)"; } } // container ambr container down-link { description "Enter the down-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Maximum Bit Rate (MBR)"; } } // container down-link container up-link { description "Enter the up-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Maximum Bit Rate (MBR)"; } } // container up-link } // container qos } // container s11 container uplink { description "Enter the uplink context"; leaf protocol-configuration-options { type enumeration { enum "pco" { value 1; } enum "apco" { value 2; } } default "pco"; description "Information element to use for the protocol configuration options"; } leaf rat-type { type union { type uint32 { range "0..255"; } type enumeration { enum "utran" { value 1; } enum "geran" { value 2; } enum "wlan" { value 3; } enum "gan" { value 4; } enum "hspa" { value 5; } enum "eutran" { value 6; } enum "virtual" { value 7; } } } default "wlan"; description "The default Radio Access Technology type signaled during GTP set-up."; } leaf report-wlan-location { type boolean; default "false"; description "Report the wlan location of the UE during session set-up."; } leaf session-hold-time { type union { type types-sros:time-duration { range "0..3600"; } type enumeration { enum "remaining-lease-time" { value -1; } } } default "30"; description "Time to hold a GTP session after its UE is disconnected"; } container charging-characteristics { description "Enter the charging-characteristics context"; container home { description "Enter the home context"; leaf bit0 { type boolean; default "false"; description "Set bit 0 in charging characteristics information element (IE) for home UE"; } leaf bit1 { type boolean; default "false"; description "Set bit 1 in charging characteristics information element (IE) for home UE"; } leaf bit2 { type boolean; default "false"; description "Set bit 2 in charging characteristics information element (IE) for home UE"; } leaf bit3 { type boolean; default "false"; description "Set bit 3 in charging characteristics information element (IE) for home UE"; } leaf bit4 { type boolean; default "false"; description "Set bit 4 in charging characteristics information element (IE) for home UE"; } leaf bit5 { type boolean; default "false"; description "Set bit 5 in charging characteristics information element (IE) for home UE"; } leaf bit6 { type boolean; default "false"; description "Set bit 6 in charging characteristics information element (IE) for home UE"; } leaf bit7 { type boolean; default "false"; description "Set bit 7 in charging characteristics information element (IE) for home UE"; } leaf bit8 { type boolean; default "false"; description "Set bit 8 in charging characteristics information element (IE) for home UE"; } leaf bit9 { type boolean; default "false"; description "Set bit 9 in charging characteristics information element (IE) for home UE"; } leaf bit10 { type boolean; default "false"; description "Set bit 10 in charging characteristics information element (IE) for home UE"; } leaf bit11 { type boolean; default "false"; description "Set bit 11 in charging characteristics information element (IE) for home UE"; } leaf bit12 { type boolean; default "false"; description "Set bit 12 in charging characteristics information element (IE) for home UE"; } leaf bit13 { type boolean; default "false"; description "Set bit 13 in charging characteristics information element (IE) for home UE"; } leaf bit14 { type boolean; default "false"; description "Set bit 14 in charging characteristics information element (IE) for home UE"; } leaf bit15 { type boolean; default "false"; description "Set bit 15 in charging characteristics information element (IE) for home UE"; } } // container home container roaming { description "Enter the roaming context"; leaf bit0 { type boolean; default "false"; description "Set bit 0 in charging characteristics information element (IE) for home UE"; } leaf bit1 { type boolean; default "false"; description "Set bit 1 in charging characteristics information element (IE) for home UE"; } leaf bit2 { type boolean; default "false"; description "Set bit 2 in charging characteristics information element (IE) for home UE"; } leaf bit3 { type boolean; default "false"; description "Set bit 3 in charging characteristics information element (IE) for home UE"; } leaf bit4 { type boolean; default "false"; description "Set bit 4 in charging characteristics information element (IE) for home UE"; } leaf bit5 { type boolean; default "false"; description "Set bit 5 in charging characteristics information element (IE) for home UE"; } leaf bit6 { type boolean; default "false"; description "Set bit 6 in charging characteristics information element (IE) for home UE"; } leaf bit7 { type boolean; default "false"; description "Set bit 7 in charging characteristics information element (IE) for home UE"; } leaf bit8 { type boolean; default "false"; description "Set bit 8 in charging characteristics information element (IE) for home UE"; } leaf bit9 { type boolean; default "false"; description "Set bit 9 in charging characteristics information element (IE) for home UE"; } leaf bit10 { type boolean; default "false"; description "Set bit 10 in charging characteristics information element (IE) for home UE"; } leaf bit11 { type boolean; default "false"; description "Set bit 11 in charging characteristics information element (IE) for home UE"; } leaf bit12 { type boolean; default "false"; description "Set bit 12 in charging characteristics information element (IE) for home UE"; } leaf bit13 { type boolean; default "false"; description "Set bit 13 in charging characteristics information element (IE) for home UE"; } leaf bit14 { type boolean; default "false"; description "Set bit 14 in charging characteristics information element (IE) for home UE"; } leaf bit15 { type boolean; default "false"; description "Set bit 15 in charging characteristics information element (IE) for home UE"; } } // container roaming } // container charging-characteristics container ggsn { description "Enter the ggsn context"; container qos { description "Enter the qos context"; leaf arp { type uint32 { range "1..3"; } default "1"; description "Allocation or retention priority"; } container ambr { presence "Enter the 'ambr' context"; description "Enable the ambr context"; leaf down-link { type int32 { range "0..10000000"; } units "kilobps"; mandatory true; description "Downlink Aggregated Maximum Bit Rate (AMBR)"; } leaf up-link { type int32 { range "0..10000000"; } units "kilobps"; mandatory true; description "Uplink Aggregated Maximum Bit Rate (AMBR)"; } } // container ambr container down-link { description "Enter the down-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "2000"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "2000"; description "Maximum Bit Rate (MBR)"; } } // container down-link container up-link { description "Enter the up-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "5000"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "5000"; description "Maximum Bit Rate (MBR)"; } } // container up-link } // container qos } // container ggsn container pgw { description "Enter the pgw context"; container qos { description "Enter the qos context"; leaf arp { type uint32 { range "1..15"; } default "1"; description "Allocation or retention priority"; } leaf qci { type uint32 { range "1..9"; } default "8"; description "QoS Class Identifier (QCI) value that is used in GTP messages"; } container ambr { description "Enter the ambr context"; leaf down-link { type int32 { range "0..10000000"; } units "kilobps"; default "20000"; description "Downlink Aggregated Maximum Bit Rate (AMBR)"; } leaf up-link { type int32 { range "0..10000000"; } units "kilobps"; default "10000"; description "Uplink Aggregated Maximum Bit Rate (AMBR)"; } } // container ambr container down-link { description "Enter the down-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Maximum Bit Rate (MBR)"; } } // container down-link container up-link { description "Enter the up-link context"; leaf gbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Guaranteed Bit Rate (GBR)"; } leaf mbr { type uint32 { range "0..100000"; } units "kilobps"; default "0"; description "Maximum Bit Rate (MBR)"; } } // container up-link } // container qos } // container pgw } // container uplink } // list peer-profile } // container gtp list isa-filter { key "name"; description "Enter the isa-filter list instance"; leaf name { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "ISA filter name"; } leaf type { type enumeration { enum "dsm" { value 0; description "Limit the ISA filter to DSM applications"; } } sros-ext:immutable; default "dsm"; description "Limit what the ISA filter can be used for"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipv4 { description "Enter the ipv4 context"; leaf default-action { type types-filter:isa-filter-default-action; description "Action for non-matching entry"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint16 { range "1..1024"; } description "ISA filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container action { presence "Enter the 'action' context"; description "Enable the action context"; choice action { mandatory true; case drop { leaf drop { type empty; description "A packet matching the entry will be dropped"; } } case forward { leaf forward { type empty; description "A packet matching the entry will be forwarded"; } } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type types-sros:http-redirect-url; sros-ext:immutable; mandatory true; description "HTTP URL to which the matching traffic is redirected"; } } // container http-redirect } } } // container action container match { description "Enter the match context"; leaf protocol { type enumeration { enum "icmp" { value 1; description "Match only ICMP packets"; } enum "tcp" { value 6; description "Match only TCP packets"; } enum "udp" { value 17; description "Match only UDP packets"; } enum "gre" { value 47; description "Match only GRE packets"; } } description "Protocol"; } leaf dst-ip { type types-sros:ipv4-prefix; description "Destination IPv4 prefix"; } container dst-port { description "Enter the dst-port context"; choice operator-choices { case equals { leaf equals { type types-sros:tcp-udp-port; description "Exact port number"; } } } } // container dst-port } // container match } // list entry } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf default-action { type types-filter:isa-filter-default-action; description "Action for non-matching entry"; } list entry { key "id"; description "Enter the entry list instance"; leaf id { type uint16 { range "1..1024"; } description "ISA filter entry ID"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container action { presence "Enter the 'action' context"; description "Enable the action context"; choice action { mandatory true; case drop { leaf drop { type empty; description "A packet matching the entry will be dropped"; } } case forward { leaf forward { type empty; description "A packet matching the entry will be forwarded"; } } case http-redirect { container http-redirect { presence "Enter the 'http-redirect' context"; description "Enable the http-redirect context"; leaf url { type types-sros:http-redirect-url; sros-ext:immutable; mandatory true; description "HTTP URL to which the matching traffic is redirected"; } } // container http-redirect } } } // container action container match { description "Enter the match context"; leaf protocol { type enumeration { enum "icmp" { value 1; description "Match only ICMP packets"; } enum "tcp" { value 6; description "Match only TCP packets"; } enum "udp" { value 17; description "Match only UDP packets"; } enum "gre" { value 47; description "Match only GRE packets"; } } description "Protocol"; } leaf dst-ip { type types-sros:ipv6-prefix; description "Destination IPv6 prefix"; } container dst-port { description "Enter the dst-port context"; choice operator-choices { case equals { leaf equals { type types-sros:tcp-udp-port; description "Exact port number"; } } } } // container dst-port } // container match } // list entry } // container ipv6 } // list isa-filter list isa-policer { key "name"; max-elements 128; description "Enter the isa-policer list instance"; leaf name { type types-sros:named-item { pattern "[^_].*" { error-message "Identifiers starting with '_' are reserved for internal use"; } } description "ISA policer name"; } leaf description { type types-sros:description; description "Text description"; } leaf type { type enumeration { enum "single-bucket-bandwidth" { value 0; description "Police traffic using a single bucket"; } enum "dual-bucket-bandwidth" { value 1; description "Police traffic using dual buckets"; } } sros-ext:immutable; default "single-bucket-bandwidth"; description "Policing technique"; } leaf action { type enumeration { enum "permit-deny" { value 0; description "Permit or deny packets based on policer outcome"; } enum "priority-mark" { value 1; description "Mark packets as in or out of profile based on policer outcome"; } } default "permit-deny"; description "Action to be taken for packets that are in-profile and out-of-profile"; } leaf cbs { type types-qos:kilobytes { range "0..131071"; } default "0"; description "Committed burst size"; } leaf mbs { type types-qos:kilobytes { range "0..131071"; } default "0"; description "Maximum Burst Size"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container adaptation-rule { description "Enter the adaptation-rule context"; leaf pir { type types-qos:adaptation-rule; default "closest"; description "Peak Information Rate"; } leaf cir { type types-qos:adaptation-rule; default "closest"; description "Committed information rate"; } } // container adaptation-rule container rate { description "Enter the rate context"; leaf pir { type types-qos:isa-policer-pir-rate; default "max"; description "Peak Information Rate"; } leaf cir { type types-qos:isa-policer-cir-rate; default "0"; description "Committed information rate"; } } // container rate } // list isa-policer container isa-service-chaining { description "Enter the isa-service-chaining context"; leaf mac-prefix { type string { length "8"; pattern "[0-9a-f][02468ace](:[0-9a-f]{2}){2}"; } description "Unique MAC prefix per ISA and per outside service for all NAT-groups configured for Service Chaining"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list evpn { key "id"; max-elements 1024; description "Enter the evpn list instance"; leaf id { type types-services:service-name { pattern "[0-9]{1,10}"; } description "Service-id of the EVPN"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of EVPN"; } leaf description { type types-sros:description; description "Text description"; } leaf import-mode { type enumeration { enum "none" { value 0; } enum "bridged" { value 1; } enum "routed" { value 2; } } sros-ext:immutable; default "none"; description "Import mode for the EVPN"; } leaf prefix-route-resolution { type enumeration { enum "recursive" { value 0; } enum "non-recursive" { value 1; } } sros-ext:immutable; default "recursive"; description "How prefix routes should be resolved"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container bgp { description "Enter the bgp context"; container route-distinguisher { description "Enter the route-distinguisher context"; leaf rd { type types-services:vpn-route-distinguisher-or-auto-rd; sros-ext:auto-restart-to-modify; description "High-order 6 bytes that are used as string to compose VSI-ID for use in NLRI"; } } // container route-distinguisher container route-target { presence "Enter the 'route-target' context"; description "Enable the route-target context"; leaf import { type types-services:route-target-32; sros-ext:auto-restart-to-modify; mandatory true; description "Extended community name for default import policy for BGP in EVPN service"; } leaf export { type types-services:route-target-32; sros-ext:auto-restart-to-modify; mandatory true; description "Extended community name for default export policy for BGP in EVPN service"; } } // container route-target } // container bgp container export { description "Enter the export context"; container vxlan { description "Enter the vxlan context"; leaf vni { type uint32 { range "1..16777215"; } sros-ext:auto-restart-to-modify; description "VNI of the VXLAN created by the EVPN service"; } } // container vxlan container gateway-address-range { when "not(../../import-mode = 'bridged') and ../../prefix-route-resolution = 'recursive'"; presence "Enter the 'gateway-address-range' context"; description "Enable the gateway-address-range context"; leaf start { type types-sros:ipv4-unicast-address; mandatory true; description "Start of the gateway address range (V4) for this EVPN service"; } leaf end { type types-sros:ipv4-unicast-address; mandatory true; description "End of the gateway address range (V4) for this EVPN service"; } } // container gateway-address-range container advertise-pools { when "not(../../import-mode = 'bridged')"; description "Enter the advertise-pools context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NAT pool route advertisement"; } list pool { key "router-instance name"; description "Add a list entry for pool"; leaf router-instance { type string; description "Router-instance of the NAT pool"; } leaf name { type types-sros:named-item; description "Name of the NAT pool"; } } // list pool } // container advertise-pools } // container export } // list evpn list vas-filter { key "name"; description "Enter the vas-filter list instance"; leaf name { type types-sros:named-item; description "VAS filter name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "id"; max-elements 64; description "Enter the entry list instance"; leaf id { type types-filter:limited-entry-id; description "VAS filter entry id"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the VAS filter"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container match { sros-ext:auto-restart-to-modify; description "Enter the match context"; leaf protocol { type enumeration { enum "tcp-udp" { value -2; description "TCP & UDP"; } enum "none" { value -1; description "Disable matching by IP protocol"; } enum "icmp" { value 1; description "ICMP"; } enum "tcp" { value 6; description "TCP"; } enum "udp" { value 17; description "UDP"; } } sros-ext:auto-restart-to-modify; default "none"; description "IP protocol to match the VAS filter"; } leaf foreign-ip { type union { type types-sros:ipv4-unicast-prefix; type types-sros:ipv4-unicast-address; } sros-ext:auto-restart-to-modify; description "Foreign IP address or prefix to match in this VAS filter entry"; } leaf foreign-port { type types-sros:tcp-udp-port-non-zero; sros-ext:auto-restart-to-modify; description "Foreign TCP or UDP port to match in this VAS filter entry"; } } // container match list action { key "direction"; sros-ext:auto-restart-to-modify; description "Enter the action list instance"; leaf direction { type enumeration { enum "upstream" { value 1; } enum "downstream" { value 2; } } description "Direction for the action in a VAS filter entry"; } leaf fail-action { type types-filter:filter-default-action; sros-ext:auto-restart-to-modify; default "accept"; description "Fail action when sf-ip is not resolved or no forward action specified"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container forward { presence "Enter the 'forward' context"; sros-ext:auto-restart-to-modify; description "Enable the forward context"; leaf sf-ip { type types-sros:ip-unicast-without-local-address; sros-ext:auto-restart-to-modify; mandatory true; description "Forwarding SF (Service Forward) IP address for the action in VAS filter entry"; } leaf svc { type leafref { path "../../../../../evpn/id"; } sros-ext:auto-restart-to-modify; mandatory true; description "EVPN service used for forwarding packets"; } leaf esi { type types-services:ethernet-segment-id { pattern "[0-9a-fA-F]{2}([:\\- ][0-9a-fA-F]{2}){9}"; } sros-ext:auto-restart-to-modify; default "00:00:00:00:00:00:00:00:00:00"; description "ESI (Ethernet Segment Identifier) for the action in a VAS filter"; } } // container forward container insert-nsh { sros-ext:auto-restart-to-modify; description "Enter the insert-nsh context"; container svc-path { presence "Enter the 'svc-path' context"; sros-ext:auto-restart-to-modify; description "Enable the svc-path context"; leaf path-id { type uint32 { range "1..16777215"; } sros-ext:auto-restart-to-modify; mandatory true; description "Path ID used to construct a NSH for the action in a VAS filter entry"; } leaf svc-index { type uint32 { range "1..255"; } sros-ext:auto-restart-to-modify; mandatory true; description "Service index used to construct a NSH for the action in a VAS filter entry"; } } // container svc-path container meta-data { sros-ext:auto-restart-to-modify; description "Enter the meta-data context"; choice type { case opaque-data { leaf opaque-data { type string { length "10|18|26|34"; } sros-ext:auto-restart-to-modify; description "Opaque meta-data for the NSH"; } } case insert-subscriber-id { leaf insert-subscriber-id { type empty; sros-ext:auto-restart-to-modify; description "Insert the subscriber-id in the NSH"; } } } } // container meta-data } // container insert-nsh } // list action } // list entry } // list vas-filter } // container isa-service-chaining list local-user-db { key "name"; max-elements 127; description "Enter the local-user-db list instance"; leaf name { type types-sros:named-item; description "Local user database name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the local user database"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ipoe { description "Enter the ipoe context"; leaf-list match-list { type enumeration { enum "circuit-id" { value 1; } enum "mac" { value 2; } enum "remote-id" { value 3; } enum "sap-id" { value 4; } enum "service-id" { value 5; } enum "string" { value 6; } enum "system-id" { value 7; } enum "option60" { value 8; } enum "encap-tag-range" { value 9; } enum "dual-stack-remote-id" { value 10; } enum "derived-id" { value 11; } enum "ip" { value 12; } enum "encap-tag-separate-range" { value 13; } } max-elements 4; ordered-by user; sros-ext:auto-restart-to-modify; description "IPoE host match type"; } list mask { key "type"; description "Enter the mask list instance"; leaf type { type enumeration { enum "circuit-id" { value 1; } enum "remote-id" { value 3; } enum "sap-id" { value 4; } enum "string" { value 6; } enum "system-id" { value 7; } enum "option60" { value 8; } } description "Matching type to identify a host"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container prefix { presence "Enter the 'prefix' context"; description "Enable the prefix context"; choice prefix { mandatory true; case length { leaf length { type uint32 { range "1..127"; } description "Prefix length"; } } case string { leaf string { type string { length "1..127"; } description "Prefix string"; } } } } // container prefix container suffix { presence "Enter the 'suffix' context"; description "Enable the suffix context"; choice suffix { mandatory true; case length { leaf length { type uint32 { range "1..127"; } description "Suffix length"; } } case string { leaf string { type string { length "1..127"; pattern "[^*].*"; } description "Suffix string"; } } } } // container suffix } // list mask list host { key "host-name"; description "Enter the host list instance"; leaf host-name { type types-sros:named-item; description "Host key"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the host"; } leaf retail-service-id { type types-services:service-id-maf; description "Configure the retail service-id"; } leaf rip-policy { type types-sros:named-item; description "RIP policy"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container host-identification { description "Enter the host-identification context"; leaf derived-id { type types-sros:display-string; description "Derived ID string"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address"; } leaf sap-id { type types-sros:display-string; description "SAP ID"; } leaf ip-prefix { type types-sros:ip-prefix-with-host-bits; description "IP interface name"; } leaf string { type types-sros:display-string; description "VSO string"; } leaf service-id { type types-services:service-id-maf; description "Service ID"; } leaf system-id { type types-sros:display-string; description "System ID"; } container circuit-id { description "Enter the circuit-id context"; choice format { case ascii-string { leaf ascii-string { type string { length "1..127"; } description "Circuit ID as ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "Circuit ID as hexadecimal string"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice format { case ascii-string { leaf ascii-string { type string { length "1..255"; } description "Remote ID as ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..512"; } description "Remote ID as hexadecimal string"; } } } } // container remote-id container option60 { description "Enter the option60 context"; choice format { case ascii-string { leaf ascii-string { type types-sros:named-item; description "Option 60 as ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..64"; } description "Option 60 as hexadecimal string"; } } } } // container option60 container encap-tag-range { presence "Enter the 'encap-tag-range' context"; description "Enable the encap-tag-range context"; leaf from { type types-sros:atm-or-vlan-encap; mandatory true; description "Start tag"; } leaf to { type types-sros:atm-or-vlan-encap; mandatory true; description "End tag"; } } // container encap-tag-range container encap-tag-separate-range { description "Enter the encap-tag-separate-range context"; container outer { description "Enter the outer context"; leaf start { type int32 { range "0..4094"; } description "Lower bound of the outer encapsulation tag range"; } leaf end { type int32 { range "0..4094"; } description "Upper bound of the outer encapsulation tag range"; } } // container outer container inner { description "Enter the inner context"; leaf start { type int32 { range "0..4094"; } description "Lower bound of the inner encapsulation tag range"; } leaf end { type int32 { range "0..4094"; } description "Upper bound of the inner encapsulation tag range"; } } // container inner } // container encap-tag-separate-range } // container host-identification container authentication { description "Enter the authentication context"; leaf radius-auth-policy { type types-sros:named-item; description "Host authentication policy"; } leaf gx-policy { type types-sros:named-item; description "Diameter application policy"; } leaf nasreq-auth-policy { type types-sros:named-item; description "Diameter NASREQ application policy to use for authentication"; } leaf auth-domain-name { type types-sros:named-item; description "Authentication domain name for this host"; } } // container authentication container radius-accounting-policy { description "Enter the radius-accounting-policy context"; leaf name { type types-sros:named-item; description "RADIUS accounting policy for generating accounting information"; } leaf duplicate { type types-sros:named-item; description "RADIUS accounting policy for generating duplicate accounting information"; } } // container radius-accounting-policy container gtp-interface { presence "Enter the 'gtp-interface' context"; description "Enable the gtp-interface context"; leaf name { type types-sros:named-item; mandatory true; description "IP interface name"; } leaf service-id { type types-services:service-id-maf; mandatory true; description "Service ID"; } } // container gtp-interface container identification { presence "Enter the 'identification' context"; description "Enable the identification context"; leaf option-number { type uint32 { range "1..254"; } sros-ext:immutable; default "254"; description "The option number used to return the strings in case the LUDB is linked to a DHCP server."; } leaf ancp-string { type string { length "1..63"; } description "ANCP string"; } leaf category-map-name { type types-sros:named-item; description "Category map name"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf sla-profile-string { type string { length "1..32"; } description "SLA profile string"; } leaf sub-profile-string { type string { length "1..32"; } description "Sub profile string"; } leaf subscriber-id { type types-sros:named-item-64; description "Subscriber ID"; } leaf spi-sharing-group-id { type int32 { range "0..65535"; } description "SPI sharing group ID"; } } // container identification container match-radius-proxy-cache { description "Enter the match-radius-proxy-cache context"; leaf fail-action { type enumeration { enum "continue" { value 1; } enum "drop" { value 2; } } default "drop"; description "Action when no match is found"; } leaf mac-format { type types-submgt:mac-specification; default "aa:"; description "MAC address format"; } container match { description "Enter the match context"; choice format { default "mac"; case mac { leaf mac { type boolean; default "true"; description "Match MAC address of DHCP client"; } } case circuit-id { leaf circuit-id { type boolean; description "Match circuit ID in DHCP Option 82"; } } case remote-id { leaf remote-id { type boolean; description "Match remote ID in DHCP Option 82"; } } case option { leaf ipv4-option { type uint8 { range "1..254"; } description "DHCP option number"; } leaf ipv6-option { type uint32 { range "1..65535"; } description "DHCPv6 option number"; } } } } // container match container server { presence "Enter the 'server' context"; description "Enable the server context"; leaf service { type types-services:external-service-id; description "Service ID"; } leaf name { type types-sros:named-item; mandatory true; description "Server Name"; } } // container server } // container match-radius-proxy-cache container msap-defaults { description "Enter the msap-defaults context"; leaf policy { type types-sros:named-item; description "MSAP policy"; } leaf service { type types-services:service-id-maf; description "The service id."; } container group-interface { presence "Enter the 'group-interface' context"; description "Enable the group-interface context"; leaf name { type types-sros:named-item; mandatory true; description "IP interface name"; } choice parameters { case prefix { leaf prefix { type enumeration { enum "port-id" { value 2; } } description "prefix."; } } case suffix { leaf suffix { type enumeration { enum "port-id" { value 2; } } description "Suffix for the group interface"; } } } } // container group-interface } // container msap-defaults container wpp { description "Enter the wpp context"; leaf restore-to-initial-on-disconnect { type enumeration { enum "restore" { value 1; } enum "no-restore" { value 2; } } description "Restore initial profiles after a host has disconnected"; } container portal { description "Enter the portal context"; choice portal { case portal { leaf router-instance { type union { type enumeration { enum "base" { value 0; } } type types-services:external-service-id; } default "base"; description "The virtual router instance of the WPP portal for the hosts"; } leaf name { type types-sros:named-item; description "Name for the WPP portal of the hosts"; } } case portal-group { leaf portal-group { type types-sros:named-item; description "WPP portal group for this interface"; } } } } // container portal container initial { description "Enter the initial context"; leaf sub-profile { type types-sros:named-item; description "Initial subscriber profile"; } leaf sla-profile { type types-sros:named-item; description "Initial SLA profile"; } } // container initial } // container wpp container ipv4 { description "Enter the ipv4 context"; leaf gi-address { type types-sros:ipv4-unicast-address; description "The DHCP gi-address of this host."; } leaf server { type types-sros:ipv4-unicast-address; description "IPv4 address of the DHCP server"; } container address { description "Enter the address context"; choice address { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IPv4 host address"; } } case gi-address { leaf gi-address { type enumeration { enum "subnet-scope" { value 0; } enum "pool-scope" { value 1; } } description "Use gi-address to select a pool with the given scope"; } } case pool { container pool { presence "Enter the 'pool' context"; description "Enable the pool context"; leaf primary { type types-sros:named-item; mandatory true; description "Primary pool name"; } leaf secondary { type types-sros:named-item; description "Secondary pool name"; } leaf delimiter { type string { length "1"; } description "Delimiter character to combine primary and secondary pool names"; } } // container pool } case use-pool-from-client { container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type string { length "1"; } description "Delimiter character to combine primary and secondary pool names"; } } // container use-pool-from-client } } } // container address list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } description "DHCP option to send identification strings to client"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { when "../number = 46 or ../number = 'netbios-node-type'"; type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type"; } } case duration { leaf duration { when "../number = 51 or ../number = 'lease-time' or ../number = 58 or ../number = 'lease-renew-time' or ../number = 59 or ../number = 'lease-rebind-time'"; type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration"; } } case ipv4-address { leaf-list ipv4-address { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses"; } } case empty { leaf empty { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type empty; description "Empty DHCP option."; } } } } // list option } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf address { type types-sros:ipv6-unicast-address; description "IPv6 address of this host"; } leaf address-pool { type types-sros:named-item; description "IPv6 address pool name"; } leaf delegated-prefix { type types-sros:ipv6-unicast-prefix; description "IPv6 delegated prefix of this host"; } leaf delegated-prefix-length { type uint32 { range "48..64"; } description "Delegated prefix length"; } leaf delegated-prefix-pool { type types-sros:named-item; description "Delegated prefix pool"; } leaf slaac-prefix { type types-sros:ipv6-unicast-prefix; description "IPv6 SLAAC prefix of this host"; } leaf slaac-prefix-pool { type types-sros:named-item; description "IPv6 SLAAC prefix pool of this host"; } leaf router-advertisement-policy { type types-sros:named-item; description "IPv6 router advertisement policy"; } leaf server { type types-sros:ipv6-unicast-address; description "IPv6 address of the DHCP server"; } leaf link-address { type types-sros:ipv6-unicast-address; description "The DHCP Relay link-address."; } container timers { description "Enter the timers context"; leaf preferred-lifetime { type union { type types-sros:time-duration { range "300..315446399"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Time for a lease to remain preferred"; } leaf rebind { type types-sros:time-duration { range "0..1209600"; } units "seconds"; description "Rebind timer (T2)"; } leaf renew { type types-sros:time-duration { range "0..604800"; } units "seconds"; description "Renew timer (T1)"; } leaf valid-lifetime { type union { type types-sros:time-duration { range "300..315446399"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Time for a lease to remain valid"; } } // container timers list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "23"; } type enumeration { enum "dns-server" { value 23; } } } description "The number of the DHCPv6 option."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } } } // list option } // container ipv6 list mld-import { key "policy-name"; max-elements 14; description "Add a list entry for mld-import"; leaf policy-name { type types-sros:named-item; description "MLD import policy for this host"; } } // list mld-import container to-client-options { description "Enter the to-client-options context"; list ipv4-option { key "number"; description "Enter the ipv4-option list instance"; leaf number { type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } description "DHCP option to send identification strings to client"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { when "../number = 46 or ../number = 'netbios-node-type'"; type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type"; } } case duration { leaf duration { when "../number = 51 or ../number = 'lease-time' or ../number = 58 or ../number = 'lease-renew-time' or ../number = 59 or ../number = 'lease-rebind-time'"; type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration"; } } case ipv4-address { leaf-list ipv4-address { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list ipv4-option list ipv6-option { key "number"; description "Enter the ipv6-option list instance"; leaf number { type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } description "DHCP option number"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list ipv6-option } // container to-client-options container to-server-options { description "Enter the to-server-options context"; list ipv6-option { key "number"; description "Enter the ipv6-option list instance"; leaf number { type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } description "DHCP option number"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list ipv6-option } // container to-server-options } // list host } // container ipoe container ppp { description "Enter the ppp context"; leaf-list match-list { type enumeration { enum "circuit-id" { value 1; } enum "mac" { value 2; } enum "remote-id" { value 3; } enum "user-name" { value 4; } enum "service-name" { value 5; } enum "sap-id" { value 6; } enum "encap-tag-range" { value 7; } enum "derived-id" { value 8; } enum "encap-tag-separate-range" { value 9; } } max-elements 3; ordered-by user; sros-ext:auto-restart-to-modify; description "PPP host match type"; } list mask { key "type"; description "Enter the mask list instance"; leaf type { type enumeration { enum "circuit-id" { value 1; } enum "remote-id" { value 3; } enum "user-name" { value 4; } enum "service-name" { value 5; } enum "sap-id" { value 6; } } description "Matching type to identify a host"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container prefix { presence "Enter the 'prefix' context"; description "Enable the prefix context"; choice prefix { mandatory true; case length { leaf length { type uint32 { range "1..127"; } description "Prefix length"; } } case string { leaf string { type string { length "1..127"; } description "Prefix string"; } } } } // container prefix container suffix { presence "Enter the 'suffix' context"; description "Enable the suffix context"; choice suffix { mandatory true; case length { leaf length { type uint32 { range "1..127"; } description "Suffix length"; } } case string { leaf string { type string { length "1..127"; pattern "[^*].*"; } description "Suffix string"; } } } } // container suffix } // list mask list host { key "host-name"; description "Enter the host list instance"; leaf host-name { type types-sros:named-item; description "Host key"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the host"; } leaf retail-service-id { type types-services:service-id-maf; description "Configure the retail service-id"; } leaf rip-policy { type types-sros:named-item; description "RIP policy"; } leaf pado-delay { type types-sros:time-duration { range "1..30"; } units "deciseconds"; description "Delay timeout before sending a PADO"; } leaf steering-profile { type types-sros:named-item; description "Steering profile"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container host-identification { description "Enter the host-identification context"; leaf derived-id { type types-sros:display-string; description "Derived ID string"; } leaf mac { type types-sros:mac-unicast-address; description "MAC address"; } leaf sap-id { type types-sros:display-string; description "SAP ID"; } leaf service-name { type types-sros:display-string; description "Administrative service name"; } container circuit-id { description "Enter the circuit-id context"; choice format { case ascii-string { leaf ascii-string { type string { length "1..127"; } description "Circuit ID as ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "Circuit ID as hexadecimal string"; } } } } // container circuit-id container remote-id { description "Enter the remote-id context"; choice format { case ascii-string { leaf ascii-string { type string { length "1..255"; } description "Remote ID as ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..512"; } description "Remote ID as hexadecimal string"; } } } } // container remote-id container encap-tag-range { presence "Enter the 'encap-tag-range' context"; description "Enable the encap-tag-range context"; leaf from { type types-sros:atm-or-vlan-encap; mandatory true; description "Start tag"; } leaf to { type types-sros:atm-or-vlan-encap; mandatory true; description "End tag"; } } // container encap-tag-range container encap-tag-separate-range { description "Enter the encap-tag-separate-range context"; container outer { description "Enter the outer context"; leaf start { type int32 { range "0..4094"; } description "Lower bound of the outer encapsulation tag range"; } leaf end { type int32 { range "0..4094"; } description "Upper bound of the outer encapsulation tag range"; } } // container outer container inner { description "Enter the inner context"; leaf start { type int32 { range "0..4094"; } description "Lower bound of the inner encapsulation tag range"; } leaf end { type int32 { range "0..4094"; } description "Upper bound of the inner encapsulation tag range"; } } // container inner } // container encap-tag-separate-range container user-name { presence "Enter the 'user-name' context"; description "Enable the user-name context"; leaf name { type types-sros:display-string { length "1..253"; } mandatory true; description "Full or part of PPP user name as specified with the format."; } leaf format { type enumeration { enum "full" { value 1; } enum "no-domain" { value 2; } enum "domain-only" { value 3; } } default "full"; description "User name format."; } } // container user-name } // container host-identification container authentication { description "Enter the authentication context"; leaf radius-auth-policy { type types-sros:named-item; description "Host authentication policy"; } leaf gx-policy { type types-sros:named-item; description "Diameter application policy"; } leaf nasreq-auth-policy { type types-sros:named-item; description "Diameter NASREQ application policy to use for authentication"; } leaf padi-auth-policy { type types-sros:named-item; description "Authentication policy name"; } leaf pre-auth-policy { type types-sros:named-item; description "Pre-authentication policy of this host"; } leaf user-db { type types-sros:named-item; description "Local user DB to use for PPP PAP/CHAP authentication"; } } // container authentication container lns-interface { presence "Enter the 'lns-interface' context"; description "Enable the lns-interface context"; leaf name { type types-sros:named-item; mandatory true; description "IP interface name"; } leaf service-id { type types-services:service-id-maf; mandatory true; description "Service ID"; } } // container lns-interface container radius-accounting-policy { description "Enter the radius-accounting-policy context"; leaf name { type types-sros:named-item; description "RADIUS accounting policy for generating accounting information"; } leaf duplicate { type types-sros:named-item; description "RADIUS accounting policy for generating duplicate accounting information"; } } // container radius-accounting-policy container identification { presence "Enter the 'identification' context"; description "Enable the identification context"; leaf option-number { type uint32 { range "1..254"; } sros-ext:immutable; default "254"; description "The option number used to return the strings in case the LUDB is linked to a DHCP server."; } leaf ancp-string { type string { length "1..63"; } description "ANCP string"; } leaf category-map-name { type types-sros:named-item; description "Category map name"; } leaf int-dest-id { type types-submgt:int-dest-id; description "Intermediate destination ID"; } leaf sla-profile-string { type string { length "1..32"; } description "SLA profile string"; } leaf sub-profile-string { type string { length "1..32"; } description "Sub profile string"; } leaf subscriber-id { type types-sros:named-item-64; description "Subscriber ID"; } leaf spi-sharing-group-id { type int32 { range "0..65535"; } description "SPI sharing group ID"; } } // container identification container msap-defaults { description "Enter the msap-defaults context"; leaf policy { type types-sros:named-item; description "MSAP policy"; } leaf service { type types-services:service-id-maf; description "The service id."; } container group-interface { presence "Enter the 'group-interface' context"; description "Enable the group-interface context"; leaf name { type types-sros:named-item; mandatory true; description "IP interface name"; } choice parameters { case prefix { leaf prefix { type enumeration { enum "port-id" { value 2; } } description "prefix."; } } case suffix { leaf suffix { type enumeration { enum "port-id" { value 2; } } description "Suffix for the group interface"; } } } } // container group-interface } // container msap-defaults container access-loop-information { description "Enter the access-loop-information context"; container circuit-id { presence "Enter the 'circuit-id' context"; description "Enable the circuit-id context"; choice format { mandatory true; case ascii-string { leaf ascii-string { type string { length "1..63"; } description "Circuit ID as an ASCII string"; } } case sap-id { leaf sap-id { status obsolete; type boolean; description "SAP ID as circuit ID"; } } case use-sap-id { leaf use-sap-id { type empty; description "Use sap-id as circuit-id."; } } } } // container circuit-id container remote-id { presence "Enter the 'remote-id' context"; description "Enable the remote-id context"; choice format { mandatory true; case ascii-string { leaf ascii-string { type string { length "1..63"; } description "Remote-id as an ASCII string."; } } case mac { leaf mac { status obsolete; type boolean; description "Use MAC address as remote ID"; } } case use-mac-address { leaf use-mac-address { type empty; description "Use MAC address as remote-id."; } } } } // container remote-id } // container access-loop-information container l2tp { description "Enter the l2tp context"; container group { presence "Enter the 'group' context"; description "Enable the group context"; leaf name { type string { length "1..63"; } mandatory true; description "Tunnel group name"; } leaf service-id { type types-services:external-service-id; description "Service-id for group."; } } // container group } // container l2tp container password { description "Enter the password context"; choice password { case pap { leaf pap { type types-sros:encrypted-leaf { length "1..115"; } description "PAP protocol."; } } case chap { leaf chap { type types-sros:encrypted-leaf { length "1..115"; } description "CHAP protocol"; } } case ignore { leaf ignore { type empty; description "Ignore."; } } } } // container password container access-loop-encapsulation { presence "Enter the 'access-loop-encapsulation' context"; description "Enable the access-loop-encapsulation context"; leaf rate-down { type uint32 { range "1..100000"; } units "kilobps"; description "Last mile link downstream rate in the access loop"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container encap-offset { description "Enter the encap-offset context"; leaf type { type enumeration { enum "pppoa-llc" { value 1; } enum "pppoa-null" { value 2; } enum "pppoeoa-llc" { value 3; } enum "pppoeoa-llc-fcs" { value 4; } enum "pppoeoa-llc-tagged" { value 5; } enum "pppoeoa-llc-tagged-fcs" { value 6; } enum "pppoeoa-null" { value 7; } enum "pppoeoa-null-fcs" { value 8; } enum "pppoeoa-null-tagged" { value 9; } enum "pppoeoa-null-tagged-fcs" { value 10; } enum "ipoa-llc" { value 11; } enum "ipoa-null" { value 12; } enum "ipoeoa-llc" { value 13; } enum "ipoeoa-llc-fcs" { value 14; } enum "ipoeoa-llc-tagged" { value 15; } enum "ipoeoa-llc-tagged-fcs" { value 16; } enum "ipoeoa-null" { value 17; } enum "ipoeoa-null-fcs" { value 18; } enum "ipoeoa-null-tagged" { value 19; } enum "ipoeoa-null-tagged-fcs" { value 20; } enum "pppoe" { value 21; } enum "pppoe-tagged" { value 22; } enum "ipoe" { value 23; } enum "ipoe-tagged" { value 24; } } description "Egress encapsulation type"; } } // container encap-offset } // container access-loop-encapsulation container ipv4 { description "Enter the ipv4 context"; leaf ignore-df-bit { type boolean; default "false"; description "Ignore the DF bit in the IPv4 header when fragmenting"; } container address { description "Enter the address context"; choice address { case ip-address { leaf ip-address { type types-sros:ipv4-unicast-address; description "IPv4 host address"; } leaf prefix-length { type uint32 { range "1..32"; } default "32"; description "IPv4 host address prefix length, a value different from 32 will be used during IPCP subnet negotiation when enabled."; } } case gi-address { leaf gi-address { type enumeration { enum "subnet-scope" { value 0; } enum "pool-scope" { value 1; } } description "Use gi-address to select a pool with the given scope"; } } case pool { container pool { presence "Enter the 'pool' context"; description "Enable the pool context"; leaf primary { type types-sros:named-item; mandatory true; description "Primary pool name"; } leaf secondary { type types-sros:named-item; description "Secondary pool name"; } leaf delimiter { type string { length "1"; } description "Delimiter character to combine primary and secondary pool names"; } } // container pool } case use-pool-from-client { container use-pool-from-client { presence "Enter the 'use-pool-from-client' context"; description "Enable the use-pool-from-client context"; leaf delimiter { type string { length "1"; } description "Delimiter character to combine primary and secondary pool names"; } } // container use-pool-from-client } } } // container address list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } description "DHCP option to send identification strings to client"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case netbios-node-type { leaf netbios-node-type { when "../number = 46 or ../number = 'netbios-node-type'"; type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type"; } } case duration { leaf duration { when "../number = 51 or ../number = 'lease-time' or ../number = 58 or ../number = 'lease-renew-time' or ../number = 59 or ../number = 'lease-rebind-time'"; type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration"; } } case ipv4-address { leaf-list ipv4-address { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses"; } } case empty { leaf empty { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type empty; description "Empty DHCP option."; } } } } // list option } // container ipv4 container ipv6 { description "Enter the ipv6 context"; leaf address { type types-sros:ipv6-unicast-address; description "IPv6 address of this host"; } leaf address-pool { type types-sros:named-item; description "IPv6 address pool name"; } leaf delegated-prefix { type types-sros:ipv6-unicast-prefix; description "IPv6 delegated prefix of this host"; } leaf delegated-prefix-length { type uint32 { range "48..64"; } description "Delegated prefix length"; } leaf delegated-prefix-pool { type types-sros:named-item; description "Delegated prefix pool"; } leaf slaac-prefix { type types-sros:ipv6-unicast-prefix; description "IPv6 SLAAC prefix of this host"; } leaf slaac-prefix-pool { type types-sros:named-item; description "IPv6 SLAAC prefix pool of this host"; } leaf router-advertisement-policy { type types-sros:named-item; description "IPv6 router advertisement policy"; } leaf force-ipv6cp { type boolean; default "false"; description "forces ipv6 control protocol."; } container timers { description "Enter the timers context"; leaf preferred-lifetime { type union { type types-sros:time-duration { range "300..315446399"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Time for a lease to remain preferred"; } leaf rebind { type types-sros:time-duration { range "0..1209600"; } units "seconds"; description "Rebind timer (T2)"; } leaf renew { type types-sros:time-duration { range "0..604800"; } units "seconds"; description "Renew timer (T1)"; } leaf valid-lifetime { type union { type types-sros:time-duration { range "300..315446399"; } type enumeration { enum "infinite" { value -1; } } } units "seconds"; description "Time for a lease to remain valid"; } } // container timers list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "23"; } type enumeration { enum "dns-server" { value 23; } } } description "The number of the DHCPv6 option."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } } } // list option } // container ipv6 list mld-import { key "policy-name"; max-elements 14; description "Add a list entry for mld-import"; leaf policy-name { type types-sros:named-item; description "MLD import policy for this host"; } } // list mld-import container to-client-options { description "Enter the to-client-options context"; list ipv6-option { key "number"; description "Enter the ipv6-option list instance"; leaf number { type union { type uint32 { range "1..65535"; } type enumeration { enum "dns-server" { value 23; } enum "domain-name" { value 24; } } } description "DHCP option number"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option specified as an ASCII string"; } } case hex-string { leaf hex-string { type types-sros:hex-string { length "1..256"; } description "DHCP option specified as hexadecimal string"; } } case domain-string { leaf domain-string { type string { length "1..127"; pattern "[a-z0-9\\-]+(\\.[a-z0-9\\-]+)*"; } description "DHCP option specified as a domain name"; } } case ipv6-address { leaf-list ipv6-address { type types-sros:ipv6-address; max-elements 4; ordered-by user; description "DHCP option specified as a list of IPv6 addresses"; } } case empty { leaf empty { type empty; description "Empty DHCP option"; } } } } // list ipv6-option } // container to-client-options } // list host } // container ppp } // list local-user-db container vrgw { description "Enter the vrgw context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container lanext { description "Enter the lanext context"; leaf router-target-as-number { type uint16 { range "1..65535"; } description "AS number that derives the route target and distinguisher for vRGW LAN Extension bridge domains"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container lanext list brg-profile { key "brg-profile-name"; max-elements 16; description "Enter the brg-profile list instance"; leaf brg-profile-name { type types-sros:named-item; description "A brg profile name"; } leaf description { type types-sros:description; description "Text description"; } leaf sla-profile-string { type types-sros:named-item-or-empty; description "Default SLA profile string on BRG level, overridable via AAA"; } leaf sub-profile-string { type types-sros:named-item-or-empty; description "Default subscriber profile string on BRG level, overridable via AAA"; } leaf hold-time { type types-sros:time-duration { range "0|30..2592000"; } units "seconds"; default "0"; description "The time to hold on to a BRG after it went down"; } leaf initial-hold-time { type types-sros:time-duration { range "0..900"; } units "seconds"; default "300"; description "The minimum time to hold on to a BRG after creation, even if no devices are linked to it yet"; } leaf uplink-initial-wait { type types-sros:time-duration { range "10..300"; } units "seconds"; default "30"; description "Time needed in case of a non-routed uplink to block host set-up while waiting for the uplink to become operational"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container connectivity-verification { description "Enter the connectivity-verification context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of BRG connectivity verification"; } leaf count { when "../admin-state = 'enable'"; type uint32 { range "1..5"; } description "Total number of consecutive unanswered messages that should be sent before the BRG is considered disconnected"; } leaf timeout { when "../admin-state = 'enable'"; type uint32 { range "5..60"; } description "Timeout after which a message is considered unanswered"; } leaf retry-time { when "../admin-state = 'enable'"; type uint32 { range "300..3600"; } description "Time the system will wait after a successful connectivity check before starting a new check"; } } // container connectivity-verification list radius-proxy-server { key "router-instance name"; max-elements 4; description "Add a list entry for radius-proxy-server"; leaf router-instance { type string; description "router-instance"; } leaf name { type types-sros:named-item; description "server-name"; } } // list radius-proxy-server container home-pool { description "Enter the home-pool context"; leaf lease-time { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "21600"; description "The lease time."; } leaf standby-ip-lifetime { type types-sros:time-duration { range "300..315446399"; } units "seconds"; default "21600"; description "The lifetime of the standby IP addresses"; } container subnet { description "Enter the subnet context"; leaf prefix { type types-sros:ipv4-prefix-with-host-bits; default "192.168.0.1/24"; description "Prefix and default-gateway to be used inside the home"; } leaf start { type types-sros:ipv4-unicast-address; default "192.168.0.2"; description "Start address of the range used for dynamic IP address allocation"; } leaf end { type types-sros:ipv4-unicast-address; default "192.168.0.254"; description "End address of the range used for dynamic IP address allocation"; } } // container subnet list option { key "number"; description "Enter the option list instance"; leaf number { type union { type uint32 { range "1..254"; } type enumeration { enum "subnet-mask" { value 1; } enum "default-router" { value 3; } enum "dns-server" { value 6; } enum "domain-name" { value 15; } enum "netbios-name-server" { value 44; } enum "netbios-node-type" { value 46; } enum "lease-time" { value 51; } enum "lease-renew-time" { value 58; } enum "lease-rebind-time" { value 59; } } } description "DHCP option to send identification strings to client"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice value { mandatory true; description "The value of the DHCP option."; case ascii-string { leaf ascii-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:string-not-all-spaces { length "1..127"; } description "DHCP option ASCII string."; } } case hex-string { leaf hex-string { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:hex-string { length "1..256"; } description "DHCP option as hexadecimal string."; } } case netbios-node-type { leaf netbios-node-type { when "../number = 46 or ../number = 'netbios-node-type'"; type enumeration { enum "b-node" { value 1; } enum "p-node" { value 2; } enum "m-node" { value 4; } enum "h-node" { value 8; } } description "DHCP option as NetBIOS node type."; } } case duration { leaf duration { when "../number = 51 or ../number = 'lease-time' or ../number = 58 or ../number = 'lease-renew-time' or ../number = 59 or ../number = 'lease-rebind-time'"; type types-sros:time-duration { range "10..315446399"; } units "seconds"; description "DHCP option as time duration."; } } case ipv4-address { leaf-list ipv4-address { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type types-sros:ipv4-address; max-elements 4; ordered-by user; description "DHCP option as a list of IPv4 addresses."; } } case empty { leaf empty { when "(not(../number = 46) and not(../number = 'netbios-node-type')) and (not(../number = 51) and not(../number = 'lease-time')) and (not(../number = 58) and not(../number = 'lease-renew-time')) and (not(../number = 59) and not(../number = 'lease-rebind-time'))"; type empty; description "Empty DHCP option."; } } } } // list option } // container home-pool container radius-authentication { description "Enter the radius-authentication context"; leaf server-policy { type leafref { path "../../../../../aaa/radius/server-policy/name"; } description "Radius servers to be used for authentication"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } description "Password used for authentication"; } } // container radius-authentication } // list brg-profile } // container vrgw container wlan-gw { description "Enter the wlan-gw context"; leaf virtual-chassis-identifier { type types-sros:string-not-all-spaces { length "1..16"; } description "WLAN Gateway virtual chassis ID or dual homing key"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container queries { description "Enter the queries context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list ue { key "name"; max-elements 1024; description "Enter the ue list instance"; leaf name { type types-sros:named-item; description "Textual identification for the UE query"; } leaf bridge-domain { type uint32 { range "0..4294967294"; } description "When specified, the query will only return UEs in this Bridge Domain"; } leaf mac-address { type types-sros:mac-address; description "When specified, the query will only return the UE having this MAC address"; } leaf vlan { type types-sros:qtag-full-range; description "When specified, the query will only return UEs for which the VLAN tag is present in the traffic received from the UE"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container address { description "Enter the address context"; leaf type { type types-wlangw:ue-address-type; description "When specified, the query will only return UEs with this address type"; } leaf ipv4 { type types-sros:ipv4-unicast-address; description "When specified, the query will only return UEs having this IPv4 address"; } leaf dhcp6-na { type types-sros:ipv6-unicast-without-local-address; description "When specified, the query will only return UEs having this DHCPv6 address"; } leaf slaac { type types-sros:ipv6-unicast-without-local-address; description "When specified, the query will only return UEs having this SLAAC prefix"; } } // container address container connection-state { presence "Enter the 'connection-state' context"; description "Enable the connection-state context"; leaf data-triggered { type boolean; default "true"; description "Controls whether the query returns UEs in data-triggered state"; } leaf dhcp-triggered { type boolean; default "true"; description "Controls whether the query returns UEs in DHCP-triggered state"; } leaf ip-assigned { type boolean; default "true"; description "Controls whether the query returns UEs in IP-assigned state"; } leaf authorized-only { type boolean; default "true"; description "Controls whether the query returns UEs in authorized-only state"; } leaf ip-assigned-authorized { type boolean; default "true"; description "Controls whether the query returns UEs in IP-assigned-authorized state"; } leaf already-signed-in { type boolean; default "true"; description "Controls whether the query returns UEs in already-signed-in state"; } leaf portal { type boolean; default "true"; description "Controls whether the query returns UEs in portal state"; } leaf dsm { type boolean; default "true"; description "Controls whether the query returns UEs in DSM state"; } leaf esm { type boolean; default "true"; description "Controls whether the query returns UEs in ESM state"; } leaf l2 { type boolean; default "true"; description "Controls whether the query returns UEs in Layer-2 Wholesale state"; } leaf gtp-authorized { type boolean; default "true"; description "Controls whether the query returns UEs in GTP-authorized state"; } leaf delete-pending { type boolean; default "true"; description "Controls whether the query returns UEs in delete-pending state"; } leaf cross-connect { type boolean; default "true"; description "Controls whether the query returns UEs in cross-connect state"; } } // container connection-state container tunnel { description "Enter the tunnel context"; leaf router-instance { type string; description "When specified, the query will only return UEs on this tunnel router"; } leaf remote-address { type types-sros:ip-address; description "When specified, the query will only return UEs with this IP address as remote tunnel endpoint"; } leaf local-address { type types-sros:ip-address; description "When specified, the query will only return UEs with this IP address as local tunnel endpoint"; } leaf encapsulation { type types-wlangw:encapsulation; description "When specified, the query will only return UEs for which the received traffic is encapsulated with this type"; } } // container tunnel container wlan-gw-group { presence "Enter the 'wlan-gw-group' context"; description "Enable the wlan-gw-group context"; leaf id { type types-isa:wlan-gw-group-id; mandatory true; description "The identifier of the WLAN-GW ISA group"; } leaf member { type types-nat:bb-group-member { range "1..1024"; } description "The member of the WLAN-GW ISA group"; } } // container wlan-gw-group } // list ue list tunnel { key "name"; max-elements 1024; description "Enter the tunnel list instance"; leaf name { type types-sros:named-item; description "Textual identification for the tunnel query"; } leaf calculate-counts { type boolean; default "false"; description "Whether the system calculates the current number of tunnels matching this query"; } leaf access-point-mac-address-learning-status { type enumeration { enum "failed" { value 1; } enum "succeeded" { value 2; } } description "When specified, the query will only return tunnels where the learning of the Access Point MAC address had the specified result"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container encapsulation { presence "Enter the 'encapsulation' context"; description "Enable the encapsulation context"; leaf gre { type boolean; default "true"; description "Controls whether the query returns Soft GRE tunnels"; } leaf l2tp { type boolean; default "true"; description "Controls whether the query returns Soft L2TPv3 tunnels"; } leaf l2 { type boolean; default "true"; description "Controls whether the query returns IEEE 802.1Q and IEEE 802.1ad tunnels"; } leaf vxlan { type boolean; default "true"; description "Controls whether the query returns VXLAN tunnels"; } } // container encapsulation container l2 { description "Enter the l2 context"; leaf sap { type types-sros:sap; description "When specified, the query will only return a Layer-2 tunnel if the value matches the tunnel's L2-AP Access Point"; } leaf inner-vlan { type types-sros:qtag-full-range; description "When specified, the query will only return a Layer-2 tunnel if the value matches the tunnel's inner tag (customer tag, ethertype 0x8100) in case of qinq encapsulation"; } leaf outer-vlan { type types-sros:qtag-full-range; description "When specified, the query will only return a Layer-2 tunnel if the value matches the tunnel's VLAN tag in case of IEEE 802.1Q encapsulation, or the outer tag (service tag, ethertype 0x88a8) in case of IEEE 802.1ad encapsulation"; } } // container l2 container l3 { description "Enter the l3 context"; leaf router-instance { type string; description "When specified, the query will only return tunnels on this router-instance"; } leaf remote-address { type types-sros:ip-address; description "When specified, the query will only return tunnels with this IP address as remote endpoint"; } leaf local-address { type types-sros:ip-address; description "When specified, the query will only return tunnels with this IP address as local endpoint"; } leaf address-type { type enumeration { enum "ipv4" { value 1; } enum "ipv6" { value 2; } } description "When specified, the query will only return tunnels where the IP layer has this address type"; } } // container l3 container ues { description "Enter the ues context"; leaf maximum { type uint32; description "The query will only return tunnels where the number of UEs is lower than or equal to this value. When a UE state filter is active, the maximum is enforced using the UE count after the state filter."; } leaf minimum { type uint32; default "1"; description "The query will only return tunnels where the number of UEs is higher than or equal to this value. When a UE state filter is active the minimum is enforced using the UE count after the state filter."; } container state { presence "Enter the 'state' context"; description "Enable the state context"; leaf migrant { type boolean; default "true"; description "Controls whether the query takes the number of migrant UEs in a tunnel into account"; } leaf dsm { type boolean; default "true"; description "Controls whether the query takes the number of DSM UEs in a tunnel into account"; } leaf esm { type boolean; default "true"; description "Controls whether the query takes the number of ESM UEs in a tunnel into account"; } leaf l2 { type boolean; default "true"; description "Controls whether the query takes the number of Layer-2 Wholesale UEs in a tunnel into account"; } leaf cross-connect { type boolean; default "true"; description "Controls whether the query takes the number of cross-connect UEs in a tunnel into account"; } } // container state } // container ues } // list tunnel } // container queries } // container wlan-gw } // container subscriber-mgmt container system { description "Enter the system context"; leaf contact { type types-sros:description; description "Contact information for this managed node"; } leaf name { type types-sros:named-item-64; description "Administrative name assigned to the system"; } leaf location { type types-sros:description; description "Site location of this system"; } leaf alarm-contact-in-power { type boolean; default "false"; description "Supply +24V output power on the +24DC pin of the Alarm Interface Port"; } leaf icmp-vse { type boolean; default "false"; description "Vendor-specific extensions to ICMP"; } leaf selective-fib { type boolean; default "false"; description "FIB assigned to the system"; } leaf coordinates { type types-sros:description; description "GPS coordinates for the system location"; } leaf clli-code { type types-sros:clli-description; description "CLLI code value for the system"; } leaf congestion-management { type boolean; default "false"; description "Virtual Service Router congestion management"; } leaf ospf-dynamic-hostnames { type boolean; default "false"; description "Process received OSPF dynamic hostname information"; } leaf boot-good-exec { type types-sros:url; description "Location and name of CLI script file executed after successful boot-up configuration file execution"; } leaf boot-bad-exec { type types-sros:url; description "CLI script file to execute following a failed boot-up"; } leaf allow-boot-license-violations { type boolean; default "true"; description "Allow boot license violations in a boot-up configuration"; } leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container alarms { description "Enter the alarms context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the system alarm"; } leaf max-cleared { type uint32 { range "0..500"; } default "500"; description "Maximum number of cleared alarms"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container alarms container cpm-http-redirect { description "Enter the cpm-http-redirect context"; leaf optimized-mode { type boolean; default "true"; description "Enable optimized mode for CPM HTTP redirect messages"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container cpm-http-redirect container load-balancing { description "Enter the load-balancing context"; leaf l2tp-load-balancing { type boolean; default "false"; description "L2TP header load balancing."; } leaf l4-load-balancing { type boolean; description "Use load balancing based on Layer 4 fields"; } leaf lsr-load-balancing { type enumeration { enum "lbl-only" { value 1; } enum "lbl-ip" { value 2; } enum "ip-only" { value 3; } enum "eth-encap-ip" { value 4; } enum "lbl-ip-l4-teid" { value 5; } } default "lbl-only"; description "Hashing algorithm for system-wide LSR load balancing"; } leaf mc-enh-load-balancing { type boolean; default "false"; description "Enable enhanced egress multicast load balancing behavior for Layer 3 multicast"; } leaf service-id-lag-hashing { type boolean; default "false"; description "Enable enhanced VLL LAG service ID hashing"; } leaf system-ip-load-balancing { type boolean; description "Use the system IP address in the ECMP and LAG load balancing calculation"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container hash-polynomial { description "Enter the hash-polynomial context"; leaf ecmp { type types-system:hash-polynomial-type; default "poly1"; description "CRC polynomial used in the ECMP hashing."; } leaf lag { type types-system:hash-polynomial-type; default "poly2"; description "CRC polynomial used in the LAG hashing."; } } // container hash-polynomial } // container load-balancing list alarm-contact-input { key "input-pin-number"; description "Enter the alarm-contact-input list instance"; leaf input-pin-number { type int32 { range "1..4"; } description "PIN of the alarm contact input"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the alarm contact input"; } leaf description { type types-sros:long-description; description "Text description"; } leaf normal-state { type enumeration { enum "open" { value 1; } enum "closed" { value 2; } } default "open"; description "Alarm normal state"; } leaf trigger-message { type types-sros:description; default "Alarm Input Triggered"; description "Text message sent in the log event when input changes"; } leaf clear-message { type types-sros:description; default "Alarm Input Cleared"; description "Text message sent in the log event when an alarm clears"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list alarm-contact-input container dns { description "Enter the dns context"; leaf address-pref { type enumeration { enum "ipv4-only" { value 1; } enum "ipv6-first" { value 2; } } description "Preference in DNS address resolving order"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container dnssec { description "Enter the dnssec context"; leaf ad-validation { type enumeration { enum "fall-through" { value 1; description "Allow non-DNSSEC responses to fall-through to permit resolution in case of validation failure."; } enum "drop" { value 2; description "Drop non-DNSSEC responses in case of validation failure."; } } description "Response to DNSSEC validation of presence of AD-bit in responses from DNS servers"; } } // container dnssec } // container dns container efm-oam { description "Enter the efm-oam context"; leaf dying-gasp-tx-on-reset { type boolean; default "false"; description "Generate Information OAM PDU when EFM receives soft reset"; } leaf grace-tx { type boolean; default "false"; description "Allow sending of EFM OAM grace period messages"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container efm-oam container eth-cfm { description "Enter the eth-cfm context"; leaf grace { type boolean; default "true"; description "Allow overall system level capability of grace messaging for ETH-CFM MEPs"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container sender-id { description "Enter the sender-id context"; leaf type { type types-eth-cfm:chassis-id-subtype; description "ETH-CFM sender ID to be used in CFM PDUs"; } leaf local-name { type string { length "1..45"; } description "Local name in CFM PDUs"; } } // container sender-id container redundancy { description "Enter the redundancy context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mc-lag { description "Enter the mc-lag context"; leaf propagate-hold-time { type union { type int32 { range "1..60"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "1"; description "Delay timer value for the fault propagation caused by port, or MC-LAG state changes"; } leaf standby-mep { type boolean; default "false"; description "Allow MEPs on the standby MC-LAG to act administratively down"; } } // container mc-lag } // container redundancy container slm { description "Enter the slm context"; leaf inactivity-timer { type uint32 { range "10..100"; } units "seconds"; default "100"; description "SLR inactivity timer to maintain the stale test data"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container slm container md-auto-id { description "Enter the md-auto-id context"; container md-index-range { presence "Enter the 'md-index-range' context"; description "Enable the md-index-range context"; leaf start { type uint32 { range "1..max"; } sros-ext:immutable; mandatory true; description "Start of the range"; } leaf end { type uint32 { range "1..max"; } sros-ext:immutable; mandatory true; description "End of the range"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container md-index-range container ma-index-range { presence "Enter the 'ma-index-range' context"; description "Enable the ma-index-range context"; leaf start { type uint32 { range "1..max"; } sros-ext:immutable; mandatory true; description "Start of the range"; } leaf end { type uint32 { range "1..max"; } sros-ext:immutable; mandatory true; description "End of the range"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ma-index-range } // container md-auto-id } // container eth-cfm container fp { description "Enter the fp context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container options { description "Enter the options context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container qos { description "Enter the qos context"; container dscp-transparency { description "Enter the dscp-transparency context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the DSCP transparency option."; } } // container dscp-transparency container fc-4-profile { description "Enter the fc-4-profile context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the fc-4-profile option."; } } // container fc-4-profile container mac-classification-criteria { description "Enter the mac-classification-criteria context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the QOS mac classification criteria."; } } // container mac-classification-criteria container ipv6-classification-criteria { description "Enter the ipv6-classification-criteria context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the QOS ipv6 classification criteria."; } } // container ipv6-classification-criteria container bum-policers { description "Enter the bum-policers context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the QOS bum policers."; } } // container bum-policers } // container qos container mpls { description "Enter the mpls context"; container entropy-label { description "Enter the entropy-label context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the entropy label option."; } } // container entropy-label container fast-switchover { description "Enter the fast-switchover context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the MPLS fast switchover option."; } } // container fast-switchover } // container mpls container service { description "Enter the service context"; container vpls-evpn-mpls { description "Enter the vpls-evpn-mpls context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the VPLS-EVPN-MPLS option."; } } // container vpls-evpn-mpls } // container service container mac-filter { description "Enter the mac-filter context"; container outer-vlan-priority { description "Enter the outer-vlan-priority context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the MAC filter outer VLAN priority option."; } } // container outer-vlan-priority } // container mac-filter container router { description "Enter the router context"; container ecmp { description "Enter the ecmp context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administratively enable/disable the router ECMP option."; } } // container ecmp } // container router } // container options container cam-allocation { description "Enter the cam-allocation context"; leaf v6-multicast { type uint32 { range "0|512|1024|2048|4096|6144|8192|10240"; } default "0"; description "Cam bank allocation for v6 multicast configurations."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container cam-allocation container resource-allocation { description "Enter the resource-allocation context"; leaf g8032-sap { type uint32 { range "0..4096"; } description "Max G8032 SAP entries IXR-e Ux - 700 max IXR-e Ax - 2048 max IXR-R6/s - 4096 max"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container resource-allocation } // container fp list transmission-profile { key "name"; description "Enter the transmission-profile list instance"; leaf name { type types-sros:named-item; description "Name of file transmission profile"; } leaf ipv4-source-address { type types-sros:ipv4-unicast-address; description "IPv4 source address of the file transmission connections"; } leaf ipv6-source-address { type types-sros:ipv6-address; description "IPv6 source address of the file transmission connections"; } leaf redirection { type uint32 { range "1..8"; } description "Maximum level of redirection"; } leaf retry { type uint32 { range "1..256"; } description "Number of attempts to reconnecting to the server"; } leaf router-instance { type types-sros:router-instance-base-management-vprn-loose; default "Base"; description "Router instance that hosts the file transmission connection"; } leaf timeout { type uint32 { range "1..3600"; } units "seconds"; default "60"; description "Timeout for a response from the server"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list transmission-profile container grpc { description "Enter the grpc context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of gRPC server"; } leaf max-msg-size { type uint32 { range "1..1024"; } units "megabytes"; default "512"; description "Maximum size of received message"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice transport { case tls-server-profile { leaf tls-server-profile { type leafref { path "../../security/tls/server-tls-profile/server-profile-name"; } description "Preferred TLS server profile"; } } case allow-unsecure-connection { leaf allow-unsecure-connection { type empty; description "Run gRPC server without secured transport protocol"; } } } container tcp-keepalive { description "Enter the tcp-keepalive context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the TCP keepalive algorithm"; } leaf idle-time { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "600"; description "Seconds until the first TCP keepalive probe is sent"; } leaf interval { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "15"; description "Seconds between TCP keep-alive probes"; } leaf retries { type uint32 { range "3..100"; } default "4"; description "Missed keepalives before the TCP connection is closed"; } } // container tcp-keepalive container gnmi { description "Enter the gnmi context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of gNMI service"; } leaf auto-config-save { type boolean; default "false"; description "Automatically save the configuration"; } } // container gnmi container gnoi { description "Enter the gnoi context"; container cert-mgmt { description "Enter the cert-mgmt context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of gNOI CertificateManagement service."; } } // container cert-mgmt container file { description "Enter the file context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of gNOI File service."; } } // container file container system { description "Enter the system context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of gNOI System service."; } } // container system } // container gnoi container md-cli { description "Enter the md-cli context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the MD-CLI service"; } } // container md-cli container rib-api { description "Enter the rib-api context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of RibAPI service"; } leaf purge-timeout { type types-sros:time-duration { range "1..100000"; } units "seconds"; description "Number of seconds until stale entries are purged"; } } // container rib-api } // container grpc container management-interface { description "Enter the management-interface context"; leaf configuration-mode { type enumeration { enum "classic" { value 1; } enum "model-driven" { value 2; } enum "mixed" { value 3; } } default "classic"; description "Mode of the management interface configuration in the system"; } leaf schema-path { type types-sros:url; description "Schema path URL"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container cli { description "Enter the cli context"; leaf-list cli-engine { type types-system:cli-engine-type; max-elements 2; ordered-by user; description "System wide CLI engine access"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container classic-cli { description "Enter the classic-cli context"; leaf allow-immediate { type boolean; default "true"; description "Allow writable access in the classic CLI configure branch"; } container rollback { description "Enter the rollback context"; leaf location { type types-sros:url; description "Location and filename of the rollback checkpoint files"; } leaf local-checkpoints { type uint32 { range "1..50"; } default "10"; description "Maximum number of rollback files on compact flash"; } leaf remote-checkpoints { type uint32 { range "1..200"; } default "10"; description "Maximum number of rollback files saved at a remote location"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rescue { description "Enter the rescue context"; leaf location { type types-sros:url; description "Location of the rollback rescue file"; } } // container rescue } // container rollback } // container classic-cli container md-cli { description "Enter the md-cli context"; leaf auto-config-save { type boolean; default "false"; description "Automatically save the configuration"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf command-accounting-during-load { status obsolete; type boolean; default "true"; description "Perform remote command accounting during a load or rollback operation"; } container environment { description "Enter the environment context"; leaf more { type boolean; default "true"; description "Prompt to continue or stop when output text fills page"; } leaf time-display { type enumeration { enum "local" { value 1; } enum "utc" { value 2; } } default "local"; description "Time zone displayed before the prompt"; } leaf time-format { type enumeration { enum "iso-8601" { value 1; } enum "rfc-1123" { value 2; } enum "rfc-3339" { value 3; } } default "rfc-3339"; description "Time format to display date and time"; } container command-completion { description "Enter the command-completion context"; leaf enter { type boolean; default "true"; description "Complete the command when the enter key is pressed"; } leaf space { type boolean; default "true"; description "Complete the command when the space key is pressed"; } leaf tab { type boolean; default "true"; description "Complete the command when the tab key is pressed"; } } // container command-completion container console { description "Enter the console context"; leaf length { type uint32 { range "24..512"; } default "24"; description "Number of lines displayed on the screen"; } leaf width { type uint32 { range "80..512"; } default "80"; description "Number of columns displayed on the screen"; } } // container console container message-severity-level { description "Enter the message-severity-level context"; leaf cli { type enumeration { enum "warning" { value 6; } enum "info" { value 7; } } default "info"; description "Message severity threshold for CLI messages"; } } // container message-severity-level container progress-indicator { description "Enter the progress-indicator context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the progress indicator"; } leaf type { type enumeration { enum "dots" { value 1; } } default "dots"; description "Progress indicator output style"; } leaf delay { type uint32 { range "0..10000"; } units "milliseconds"; default "1000"; description "Delay before progress indicator is displayed"; } } // container progress-indicator container prompt { description "Enter the prompt context"; leaf context { type boolean; default "true"; description "Show the current command context in the prompt"; } leaf newline { type boolean; default "true"; description "Add a new line before every prompt line"; } leaf timestamp { type boolean; default "false"; description "Show the timestamp before the first prompt line"; } leaf uncommitted-changes-indicator { type boolean; default "true"; description "Show an asterisk (*) when uncommitted changes exist"; } } // container prompt } // container environment } // container md-cli } // container cli container configuration-save { description "Enter the configuration-save context"; leaf configuration-backups { type uint32 { range "1..200"; } default "5"; description "Maximum number of backup versions maintained"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container configuration-save container netconf { description "Enter the netconf context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NETCONF"; } leaf port { type uint32 { range "22|830"; } default "830"; description "Choose port on which the NETCONF server will listen for new connections."; } leaf auto-config-save { type boolean; default "false"; description "Automatically save the configuration"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container capabilities { description "Enter the capabilities context"; leaf candidate { type boolean; default "true"; description "Allow the NETCONF server to access the candidate datastore"; } leaf writable-running { type boolean; default "false"; description "Allow the NETCONF server to access the writable running datastore"; } } // container capabilities } // container netconf container remote-management { description "Enter the remote-management context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of remote management registration"; } leaf connection-timeout { type uint32 { range "1..3600"; } units "seconds"; default "60"; description "Max time without response before manager declared down"; } leaf hello-interval { type types-sros:time-duration { range "10..3600"; } units "minutes"; default "10"; description "Time between hello messages from SR OS node to manager"; } leaf router-instance { type string; default "management"; description "Reference to a router or VPRN service name"; } leaf device-label { type types-sros:named-item-64; description "Device label supplied to the remote manager"; } leaf device-name { type types-sros:named-item-64; description "Device name supplied to the remote manager"; } leaf source-address { type types-sros:ip-address; description "Source IP address for connection to the manager"; } leaf source-port { type types-system:remote-mgmt-registration-port; default "grpc-default"; description "Source TCP port number to connection to the manager"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice transport { case client-tls-profile { leaf client-tls-profile { type leafref { path "../../../security/tls/client-tls-profile/client-profile-name"; } description "TLS client profile name"; } } case allow-unsecure-connection { leaf allow-unsecure-connection { type empty; description "Allow remote management without secured gRPC protocol"; } } } list manager { key "manager-name"; max-elements 2; description "Enter the manager list instance"; leaf manager-name { type types-sros:named-item-64; description "Remote management manager name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of remote management registration"; } leaf connection-timeout { type uint32 { range "1..3600"; } units "seconds"; description "Max time without response before manager declared down"; } leaf description { type types-sros:description; description "Text description"; } leaf manager-address { type union { type types-sros:ip-address; type types-sros:fully-qualified-domain-name; } description "Destination IP address of the manager"; } leaf manager-port { type types-sros:tcp-udp-port-non-zero; default "57400"; description "TCP port for gRPC connections to manager"; } leaf router-instance { type string; description "Reference to a router or VPRN service name"; } leaf device-label { type types-sros:named-item-64; description "Device label supplied to the remote manager"; } leaf device-name { type types-sros:named-item-64; description "Device name supplied to the remote manager"; } leaf source-address { type types-sros:ip-address; description "Source IP address for connection to the manager"; } leaf source-port { type types-system:remote-mgmt-registration-port; description "Source TCP destination port number"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice transport { case client-tls-profile { leaf client-tls-profile { type leafref { path "../../../../security/tls/client-tls-profile/client-profile-name"; } description "TLS client profile name"; } } case allow-unsecure-connection { leaf allow-unsecure-connection { type empty; description "Allow manager connection without secured gRPC protocol"; } } } } // list manager } // container remote-management container yang-modules { description "Enter the yang-modules context"; leaf base-r13-modules { type boolean; default "false"; description "Support base release 13 YANG models"; } leaf nokia-submodules { type boolean; description "Support submodule-based packaging of Nokia YANG models"; } leaf openconfig-modules { type boolean; default "false"; description "Support OpenConfig YANG models"; } leaf nokia-combined-modules { type boolean; description "Support access to combined Nokia YANG models"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf nokia-modules { status obsolete; type boolean; description "Support Nokia YANG models"; } } // container yang-modules container snmp { description "Enter the snmp context"; leaf engine-id { type types-system:engine-id-as-string; description "SNMP engine ID to uniquely identify the SNMPv3 node"; } leaf general-port { type types-sros:tcp-udp-port; default "161"; description "Port number to be used to send general SNMP messages."; } leaf packet-size { type int32 { range "484..9216"; } default "1500"; description "Max size SNMP packet generated by this node."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SNMP daemon"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container streaming { description "Enter the streaming context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the streaming daemon"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container streaming } // container snmp } // container management-interface container thresholds { description "Enter the thresholds context"; list cflash-cap-alarm-percent { key "cflash-id"; description "Enter the cflash-cap-alarm-percent list instance"; leaf cflash-id { type types-sros:thresholds-cflash-url; description "Capacity that monitors the cflash (compact flash) assigned in this command"; } leaf rising-threshold { type int32 { range "0..100"; } units "percent"; mandatory true; description "Specifies the rising threshold percentage value for sampled statistics of cflash capacity alarm entry."; } leaf falling-threshold { type int32 { range "0..100"; } units "percent"; description "Specifies the falling threshold percentage value for sampled statistics of cflash capacity alarm entry."; } leaf interval { type int32 { range "1..2147483647"; } mandatory true; description "Polling period over which data is sampled and compared"; } leaf rmon-event-type { type types-system:threshold-event-type; description "Notification type specifying action when event occurs"; } leaf startup-alarm { type types-system:threshold-startup-alarm; description "Alarm type when the alarm is first created"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cflash-cap-alarm-percent list cflash-cap-warn-percent { key "cflash-id"; description "Enter the cflash-cap-warn-percent list instance"; leaf cflash-id { type types-sros:thresholds-cflash-url; description "Capacity that monitors the cflash (compact flash) assigned in this command"; } leaf rising-threshold { type int32 { range "0..100"; } units "percent"; mandatory true; description "Specifies the rising threshold percentage value for sampled statistics of cflash capacity alarm entry."; } leaf falling-threshold { type int32 { range "0..100"; } units "percent"; description "Specifies the falling threshold percentage value for sampled statistics of cflash capacity alarm entry."; } leaf interval { type int32 { range "1..2147483647"; } mandatory true; description "Polling period over which data is sampled and compared"; } leaf rmon-event-type { type types-system:threshold-event-type; description "Notification type specifying action when event occurs"; } leaf startup-alarm { type types-system:threshold-startup-alarm; description "Alarm type when the alarm is first created"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cflash-cap-warn-percent container kb-memory-use-alarm { presence "Enter the 'kb-memory-use-alarm' context"; description "Enable the kb-memory-use-alarm context"; leaf rising-threshold { type int64 { range "-2147483648..2147483647"; } mandatory true; description "Specifies the threshold for the sampled statistic for the rising threshold event."; } leaf falling-threshold { type int64 { range "-2147483648..2147483647"; } description "Specifies the threshold for the sampled statistic for the falling threshold event."; } leaf interval { type int32 { range "1..2147483647"; } mandatory true; description "Polling period over which data is sampled and compared"; } leaf rmon-event-type { type types-system:threshold-event-type; description "Notification type specifying action when event occurs"; } leaf startup-alarm { type types-system:threshold-startup-alarm; description "Alarm type when the alarm is first created"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container kb-memory-use-alarm container kb-memory-use-warn { presence "Enter the 'kb-memory-use-warn' context"; description "Enable the kb-memory-use-warn context"; leaf rising-threshold { type int64 { range "-2147483648..2147483647"; } mandatory true; description "Specifies the threshold for the sampled statistic for the rising threshold event."; } leaf falling-threshold { type int64 { range "-2147483648..2147483647"; } description "Specifies the threshold for the sampled statistic for the falling threshold event."; } leaf interval { type int32 { range "1..2147483647"; } mandatory true; description "Polling period over which data is sampled and compared"; } leaf rmon-event-type { type types-system:threshold-event-type; description "Notification type specifying action when event occurs"; } leaf startup-alarm { type types-system:threshold-startup-alarm; description "Alarm type when the alarm is first created"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container kb-memory-use-warn container rmon { description "Enter the rmon context"; list alarm { key "rmon-alarm-id"; max-elements 1200; description "Enter the alarm list instance"; leaf rmon-alarm-id { type uint32 { range "0..65400"; } description "Index ID for an entry in the alarm table"; } leaf variable-oid { type string { length "1..255"; } mandatory true; description "Object identifier to sample the specific variable"; } leaf interval { type int32 { range "1..2147483647"; } mandatory true; description "Polling period over which data is sampled and compared"; } leaf sample-type { type types-system:threshold-sample; description "Method to sample the selected variable and calculate the value comparing against the thresholds"; } leaf startup-alarm { type types-system:threshold-startup-alarm; description "Alarm to send when this entry is first set to valid"; } leaf rising-event { type uint32 { range "0..65400"; } description "RMON event ID used when a rising event threshold event occurs"; } leaf falling-event { type uint32 { range "0..65400"; } description "RMON event ID used when a falling threshold crossing event occurs"; } leaf rising-threshold { type int64 { range "-2147483648..2147483647"; } description "Specifies the threshold for the sampled statistic for the rising threshold event."; } leaf falling-threshold { type int64 { range "-2147483648..2147483647"; } description "Specifies the threshold for the sampled statistic for the falling threshold event."; } leaf owner { type string { length "1..80"; } default "TiMOS CLI"; description "Owner that created this entry and uses the resources"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list alarm list event { key "rmon-event-id"; max-elements 1200; description "Enter the event list instance"; leaf rmon-event-id { type uint32 { range "1..65400"; } description "Index ID for an entry in the event table"; } leaf event-type { type types-system:threshold-rmon-event-type; description "Type of notification action to be taken when this event occurs"; } leaf description { type types-sros:description; description "Text description"; } leaf owner { type string { length "1..80"; } default "TiMOS CLI"; description "Owner that created this entry and uses the resources"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list event } // container rmon } // container thresholds container ip { description "Enter the ip context"; leaf allow-qinq-network-interface { type boolean; default "false"; description "Allow QinQ encapsulation for network interfaces"; } leaf enforce-unique-if-index { type boolean; default "false"; description "Create IP interface indexes that are globally unique"; } leaf mpls-tunnel-mode { type types-sros:mpls-tunnel-mode; default "uniform"; description "Specifies the MPLS tunnel mode."; } leaf forward-6in4 { type boolean; default "false"; description "Allows the 6in4 forwarding of traffic sent to the system IP address."; } leaf forward-ip-over-gre { type boolean; default "false"; description "Allows the forwarding of IP traffic encapsulated in GRE transport sent to the system IP address."; } leaf ipv6-eh { type enumeration { enum "max" { value 1; } enum "limited" { value 2; } } default "max"; description "Limit the number of IPv6 extension headers processed ingress/egress."; } leaf allow-cpu-fragmentation { type boolean; default "false"; description "Enables IP fragmentation for packets exceeding IP MTU via system CPU."; } leaf allow-icmp-redirect { type boolean; default "false"; description "Enables generation of ICMP redirect messages."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mpls { description "Enter the mpls context"; leaf label-stack-statistics-count { type uint32 { range "1..2"; } default "1"; description "Specifies the MPLS label stack statistics count."; } } // container mpls } // container ip container lacp { description "Enter the lacp context"; leaf system-priority { type uint32 { range "1..65535"; } default "32768"; description "Set the LACP system priority"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container lacp container lldp { description "Enter the lldp context"; leaf tx-credit-max { type int32 { range "1..100"; } default "5"; description "Maximum consecutive LLDPDUs to be transmitted"; } leaf message-fast-tx { type int32 { range "1..3600"; } units "seconds"; default "1"; description "Interval at which LLDP frames are transmitted"; } leaf message-fast-tx-init { type int32 { range "1..8"; } default "4"; description "Number of PDUs to transmit during a fast transmission period"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of LLDP"; } leaf tx-interval { type int32 { range "5..32768"; } units "seconds"; default "30"; description "Interval at which LLDP frames are transmitted"; } leaf tx-hold-multiplier { type int32 { range "2..10"; } default "4"; description "LLDP transmit interval time"; } leaf reinit-delay { type int32 { range "1..10"; } units "seconds"; default "2"; description "Time required before reinitializing LLDP on a port"; } leaf notification-interval { type int32 { range "5..3600"; } units "seconds"; default "5"; description "Transmission interval of LLDP notifications"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container lldp container l2tp { description "Enter the l2tp context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container non-multi-chassis-tunnel-id-range { description "Enter the non-multi-chassis-tunnel-id-range context"; leaf start { type types-l2tp:loc-tunnel-id-or-zero; default "1"; description "Start value of range"; } leaf end { type types-l2tp:loc-tunnel-id-or-zero; default "16383"; description "End value of the range"; } } // container non-multi-chassis-tunnel-id-range } // container l2tp list power-management { key "power-zone"; description "Enter the power-management list instance"; leaf power-zone { type uint32 { range "1..2"; } description "Power mode"; } leaf mode { type enumeration { enum "none" { value 0; } enum "basic" { value 1; } enum "advanced" { value 2; } } default "basic"; description "Power capacity mode algorithm"; } leaf power-safety-alert { type uint32 { range "0..120000"; } units "watts"; default "0"; description "Power capacity to trigger a safety alert event"; } leaf power-safety-level { type yang:gauge32 { range "0..100"; } units "percent"; default "100"; description "Minimum threshold to power off devices"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list power-management container dhcp6 { description "Enter the dhcp6 context"; leaf-list adv-noaddrs-global { type enumeration { enum "esm-relay" { value 1; } enum "server" { value 2; } } max-elements 2; description "Specifies the composition of DHCPv6 Advertise Messages in case a DHCP6 application in this system will not assign any addresses to any Identity Association (IA) in a subsequent Request from the client. DHCP6 applications in this system are Server and ESM Relay, which must be set together."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dhcp6 list software-repository { key "repository-name"; description "Enter the software-repository list instance"; leaf repository-name { type types-sros:named-item; description "Unique name for the system software repository"; } leaf description { type types-sros:description; description "Text description"; } leaf primary-location { type string { length "1..180"; } description "Primary location for the files in the software repository"; } leaf secondary-location { type string { length "1..180"; } description "Secondary location for the files in the software repository"; } leaf tertiary-location { type string { length "1..180"; } description "Tertiary location for the files in the software repository"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list software-repository container resource { description "Enter the resource context"; list ecmp-profile { key "profile-id"; description "Enter the ecmp-profile list instance"; leaf profile-id { type uint32 { range "1..2"; } description "The ecmp-profile identifier."; } leaf type { type enumeration { enum "mpls" { value 1; } enum "ip" { value 2; } } sros-ext:immutable; mandatory true; description "Specifies the ECMP bundle type applicable to this profile."; } leaf links { type uint32 { range "1..16"; } mandatory true; description "Specifies the maximum number of links per group for the ECMP bundle."; } leaf groups { type uint32 { range "1..2048"; } mandatory true; description "Specifies the maximum number of groups allowed for the ECMP bundle. When type is 'mpls', the maximum value for group is 2047. When type is 'ip', the maximum value for group is 2048."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ecmp-profile } // container resource container switch-fabric { description "Enter the switch-fabric context"; leaf sfm-loss-threshold { type uint32 { range "1..7"; } description "Number of SFMs that can fail before SFM overload state"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container failure-recovery { description "Enter the failure-recovery context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administratively enable/disable the automatic switch fabric failure recovery process."; } } // container failure-recovery } // container switch-fabric list usb { key "usb-cflash"; description "Enter the usb list instance"; leaf usb-cflash { type enumeration { enum "cf2" { value 2; } } description "Specifies the compact flash id."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Enable/disable the Universal Serial Bus (USB) port."; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list usb container bluetooth { description "Enter the bluetooth context"; leaf passkey { type string { length "6"; pattern "[0-9]+" { error-message "passkey can only contain digits"; } } default "123456"; description "Bluetooth passkey"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Specifies the desired administrative state of the bluetooth module."; } leaf advertising-timeout { type uint32 { range "30..3600"; } units "seconds"; description "Bluetooth advertising timeout"; } leaf power-mode { type enumeration { enum "manual" { value 1; } enum "automatic" { value 2; } } default "automatic"; description "Bluetooth module(s) power mode."; } leaf pairing-button { type boolean; default "false"; description "Enable the pairing button"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } leaf power { status obsolete; type enumeration { enum "manual" { value 1; } enum "automatic" { value 2; } } description "Bluetooth module power state"; } list device { key "mac-address"; max-elements 5; description "Enter the device list instance"; leaf mac-address { type yang:mac-address; description "Bluetooth client device MAC address"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list device list module { key "cpm-slot"; description "Enter the module list instance"; leaf cpm-slot { type types-card:cpm-card-slot; description "CPM slot on which the module resides"; } leaf provisioned-identifier { type types-sros:display-string { length "1..32"; pattern ".*\\S.*" { error-message "provisioned-identifier must not be all spaces"; } } description "User configured identifier for this Bluetooth module"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list module } // container bluetooth container central-frequency-clock { description "Enter the central-frequency-clock context"; leaf ql-minimum { type types-system:ref-ssm-quality-level-override; default "unused"; description "Minimum signal quality level for system timing module"; } leaf ql-selection { type boolean; default "false"; description "Consider quality level in system and BITS output timing"; } leaf revert { type boolean; default "false"; description "Revert to higher-priority reference source"; } leaf wait-to-restore { type uint32 { range "1..12"; } units "minutes"; description "Time to re-validate a previously failed input reference"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ref-order { description "Enter the ref-order context"; leaf first { type types-system:sets-ref-source; description "First preferred timing reference source"; } leaf second { type types-system:sets-ref-source; description "Second preferred timing reference source"; } leaf third { type types-system:sets-ref-source; description "Third preferred timing reference source"; } leaf fourth { type types-system:sets-ref-source; description "Fourth preferred timing reference source"; } leaf fifth { type types-system:sets-ref-source; description "The fifth most preferred timing reference source for the synchronous equipment timing subsystem."; } } // container ref-order container bits { description "Enter the bits context"; leaf interface-type { type types-system:bits-if-type; default "ds1-esf"; description "Interface type of the BITS timing reference"; } leaf ql-override { type types-system:ssm-quality-level-override; default "unused"; description "Quality level of a timing reference that overrides any value provided by the reference's SSM process"; } leaf ssm-bit { when "../interface-type = 'e1-pcm30crc' or ../interface-type = 'e1-pcm31crc'"; type uint32 { range "4..8"; } default "8"; description "SSM information conveyed by the sa-bit"; } container input { description "Enter the input context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of BITS input timing reference"; } } // container input container output { description "Enter the output context"; leaf line-length { type enumeration { enum "length-not-applicable" { value 0; } enum "110" { value 1; } enum "220" { value 2; } enum "330" { value 3; } enum "440" { value 4; } enum "550" { value 5; } enum "660" { value 6; } } description "Line length for the BITS output timing reference"; } leaf ql-minimum { type types-system:ref-ssm-quality-level-override; default "unused"; description "Minimum signal quality level for BITSout port"; } leaf source { type types-system:bits-out-source; default "line-ref"; description "Source of the BITS output timing reference"; } leaf squelch { type boolean; default "false"; description "Squelch the signal of the BITS output timing reference"; } leaf admin-state { type types-sros:admin-state; description "Administrative state of BITS output timing reference"; } } // container output } // container bits container ptp { description "Enter the ptp context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the PTP timing reference"; } } // container ptp container ref1 { description "Enter the ref1 context"; leaf ql-override { type types-system:ref-ssm-quality-level-override; default "unused"; description "Quality level of a timing reference that overrides any value provided by the reference's SSM process"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the first timing reference"; } leaf source-port { type types-sros:port; description "Source port for the first timing reference"; } } // container ref1 container ref2 { description "Enter the ref2 context"; leaf ql-override { type types-system:ref-ssm-quality-level-override; default "unused"; description "Quality level of a timing reference that overrides any value provided by the reference's SSM process"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the second timing reference"; } leaf source-port { type types-sros:port; description "Source port for the first timing reference"; } } // container ref2 container synce { description "Enter the synce context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the SyncE timing reference"; } leaf ql-override { type types-system:ref-ssm-quality-level-override; default "unused"; description "Override the quality level of a timing reference"; } } // container synce container gnss { description "Enter the gnss context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the gnss timing reference"; } leaf ql-override { type types-system:ssm-quality-level-override; default "unused"; description "Override the quality level of a timing reference"; } } // container gnss } // container central-frequency-clock container cron { description "Enter the cron context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list schedule { key "schedule-name owner"; max-elements 255; description "Enter the schedule list instance"; leaf schedule-name { type types-sros:named-item; description "Schedule name"; } leaf owner { type types-sros:named-item; description "Schedule owner"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the cron schedule"; } leaf description { type types-sros:description; description "Text description"; } leaf count { type uint32 { range "1..65535"; } description "Number of times to repeat a periodic CRON schedule run"; } leaf interval { type uint32 { range "30..42949672"; } units "seconds"; description "Time between each periodic schedule run"; } leaf type { type enumeration { enum "periodic" { value 1; } enum "calendar" { value 2; } enum "oneshot" { value 3; } } default "periodic"; description "Schedule type"; } leaf-list day-of-month { type int32 { range "-31..-1|1..31"; } max-elements 62; description "Days in a month when a schedule runs"; } leaf-list hour { type uint32 { range "0..23"; } max-elements 24; description "Hours within a day when a schedule runs"; } leaf-list minute { type uint32 { range "0..59"; } max-elements 60; description "Minutes in an hour when a schedule runs"; } leaf-list month { type union { type enumeration { enum "january" { value 1; } enum "february" { value 2; } enum "march" { value 3; } enum "april" { value 4; } enum "may" { value 5; } enum "june" { value 6; } enum "july" { value 7; } enum "august" { value 8; } enum "september" { value 9; } enum "october" { value 10; } enum "november" { value 11; } enum "december" { value 12; } } type uint32 { range "1..12"; } } max-elements 12; description "Months when a schedule runs"; } leaf-list weekday { type union { type enumeration { enum "sunday" { value 1; } enum "monday" { value 2; } enum "tuesday" { value 3; } enum "wednesday" { value 4; } enum "thursday" { value 5; } enum "friday" { value 6; } enum "saturday" { value 7; } } type uint32 { range "1..7"; } } max-elements 7; description "Weekdays when the schedule runs"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container script-policy { description "Enter the script-policy context"; leaf name { type types-sros:named-item; description "Script policy name"; } leaf owner { type types-sros:named-item; description "Script policy owner"; } } // container script-policy container end-time { description "Enter the end-time context"; choice date-or-dayname-time { case date-and-time { leaf date-and-time { type yang:date-and-time; description "Date-hour-minute to stop triggering this schedule"; } } case dayname-time { leaf day { type enumeration { enum "sunday" { value 0; } enum "monday" { value 1; } enum "tuesday" { value 2; } enum "wednesday" { value 3; } enum "thursday" { value 4; } enum "friday" { value 5; } enum "saturday" { value 6; } } description "Day to stop triggering this schedule"; } leaf time { type types-system:hours-minutes-twenty-four; description "Time to stop triggering this schedule"; } } } } // container end-time } // list schedule } // container cron container login-control { description "Enter the login-control context"; leaf exponential-backoff { type boolean; default "false"; description "Login exponential-backoff to deter brute force attack"; } leaf idle-timeout { type union { type enumeration { enum "none" { value 9999; } } type int64 { range "1..1440"; } } units "minutes"; default "30"; description "Idle timeout for FTP, console, or Telnet sessions before the system terminate the session"; } leaf login-banner { type boolean; default "false"; description "Display login banner"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container login-scripts { description "Enter the login-scripts context"; leaf global-script { type types-sros:string-not-all-spaces { length "1..180"; } description "URL of the global login script"; } container per-user-script { description "Enter the per-user-script context"; leaf user-directory { type types-sros:string-not-all-spaces { length "1..180"; } description "Users to define their own login scripts that can be executed when they first log in to CLI"; } leaf file-name { type types-sros:filename; description "File name of the per-user login script"; } } // container per-user-script } // container login-scripts container motd { description "Enter the motd context"; choice motd { case url { leaf url { type types-sros:string-not-all-spaces { length "1..180"; } description "URL from where a message of the day is fetched"; } } case text { leaf text { type types-sros:string-not-all-spaces { length "1..900"; } description "Message to display in text format"; } } } } // container motd container pre-login-message { description "Enter the pre-login-message context"; leaf message { type types-sros:string-not-all-spaces { length "1..900"; } description "Message to display prior to the login prompt of an inbound FTP, Telnet, or SSH session"; } leaf name { type boolean; default "false"; description "Pre login message included in the system name"; } } // container pre-login-message container ftp { description "Enter the ftp context"; leaf inbound-max-sessions { type uint32 { range "0..5"; } default "3"; description "Maximum number of concurrent inbound FTP sessions"; } } // container ftp container ssh { description "Enter the ssh context"; leaf graceful-shutdown { type boolean; default "true"; description "Allow graceful shutdown of SSH sessions"; } leaf inbound-max-sessions { type uint32 { range "0..50"; } default "5"; description "Maximum number of concurrent inbound sessions"; } leaf outbound-max-sessions { type uint32 { range "0..15"; } default "5"; description "Maximum number of concurrent outbound sessions"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for incoming BGP packet"; } } // container ssh container telnet { description "Enter the telnet context"; leaf graceful-shutdown { type boolean; default "false"; description "Allow graceful shutdown of Telnet sessions"; } leaf inbound-max-sessions { type uint32 { range "0..50"; } default "5"; description "Maximum number of concurrent inbound sessions"; } leaf outbound-max-sessions { type uint32 { range "0..15"; } default "5"; description "Maximum number of concurrent outbound sessions"; } leaf ttl-security { type uint32 { range "1..255"; } description "Minimum TTL value for incoming BGP packet"; } } // container telnet } // container login-control container network-element-discovery { description "Enter the network-element-discovery context"; leaf generate-traps { type boolean; default "false"; description "Generate NE discovery traps"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list profile { key "name"; max-elements 1; description "Enter the profile list instance"; leaf name { type types-sros:named-item; description "Profile name"; } leaf neid { type string { length "7..8"; } description "Network element ID of the advertised node"; } leaf platform-type { type types-sros:named-item-255; description "The platform name and chassis type to be advertised"; } leaf vendor-id { type types-sros:named-item-255; default "Nokia"; description "The vendor identifier to be advertised"; } leaf system-mac { type types-sros:mac-unicast-address-no-zero; description "MAC address of the advertised node"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container neip { description "Enter the neip context"; leaf ipv4 { type types-sros:ipv4-unicast-address; description "The neip IPv4 address of the advertised node"; } leaf ipv6 { type types-sros:ipv6-address; description "The neip IPv6 address of the advertised node"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container auto-generate { description "Enter the auto-generate context"; container ipv4 { presence "Enter the 'ipv4' context"; description "Enable the ipv4 context"; leaf vendor-id-value { type uint32 { range "1..255"; } default "140"; description "Most significant byte if the NE IPv4 address"; } } // container ipv4 container ipv6 { presence "Enter the 'ipv6' context"; description "Enable the ipv6 context"; leaf vendor-id-value { type uint32 { range "1..255"; } default "140"; description "Most significant byte of the NE IPv6 address"; } } // container ipv6 } // container auto-generate } // container neip } // list profile } // container network-element-discovery container persistence { description "Enter the persistence context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ancp { description "Enter the ancp context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container ancp container application-assurance { description "Enter the application-assurance context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container application-assurance container dhcp-server { description "Enter the dhcp-server context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container dhcp-server container nat-port-forwarding { description "Enter the nat-port-forwarding context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container nat-port-forwarding container python-policy-cache { description "Enter the python-policy-cache context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container python-policy-cache container subscriber-mgmt { description "Enter the subscriber-mgmt context"; leaf location { type types-system:cpm-flash-id; description "CPM flash card where the information is stored"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container subscriber-mgmt container options { description "Enter the options context"; leaf dhcp-leasetime-threshold { type types-sros:time-duration { range "1..631152000"; } description "Threshold time for DHCP leases to be eligible for persistence"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container options } // container persistence container script-control { description "Enter the script-control context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list script { key "script-name owner"; max-elements 1500; description "Enter the script list instance"; leaf script-name { type types-sros:named-item; description "Script name"; } leaf owner { type types-sros:named-item; description "Script owner"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the policy"; } leaf description { type types-sros:description; description "Text description"; } leaf location { type types-sros:string-not-all-spaces { length "1..255"; } sros-ext:auto-restart-to-modify; description "Script location"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list script list script-policy { key "policy-name owner"; max-elements 1500; description "Enter the script-policy list instance"; leaf policy-name { type types-sros:named-item; description "Script policy name"; } leaf owner { type types-sros:named-item; description "Script policy owner"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the script policy"; } leaf expire-time { type union { type uint32 { range "0..21474836"; } type enumeration { enum "forever" { value 2147483647; } } } units "seconds"; default "3600"; description "Maximum amount of time to keep the run history status from a script run"; } leaf lifetime { type union { type uint32 { range "0..21474836"; } type enumeration { enum "forever" { value 2147483647; } } } units "seconds"; default "3600"; description "Maximum amount of time the script may run."; } leaf max-completed { type uint32 { range "1..1500"; } default "1"; description "Maximum number of script run history status entries to keep."; } leaf results { type types-sros:string-not-all-spaces { length "1..255"; } description "Location to receive CLI output of a script run"; } leaf lock-override { type boolean; default "false"; description "Allow EHS/CRON script to break database explicit lock"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container script { description "Enter the script context"; leaf name { type types-sros:named-item; sros-ext:auto-restart-to-modify; description "Script name"; } leaf owner { type types-sros:named-item; sros-ext:auto-restart-to-modify; description "Script owner"; } } // container script } // list script-policy } // container script-control container security { description "Enter the security context"; leaf telnet-server { type boolean; default "false"; description "Enable telnet servers running on the system"; } leaf telnet6-server { type boolean; default "false"; description "Enable telnet IPv6 servers running on the system"; } leaf ftp-server { type boolean; default "false"; description "Enable FTP servers running on the system"; } leaf per-peer-queuing { type boolean; description "Allow a separate control plane queue for each LDP and BGP peering session to improve DoS protection"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container vprn-network-exceptions { presence "Enter the 'vprn-network-exceptions' context"; description "Enable the vprn-network-exceptions context"; leaf count { type uint32 { range "10..1000"; } default "100"; description "Number of MPLS exception messages to be received in the assigned time frame"; } leaf window { type uint32 { range "1..60"; } units "seconds"; default "10"; description "Time frame to limit the number of MPLS exception messages issued per time frame"; } } // container vprn-network-exceptions container cpu-protection { description "Enter the cpu-protection context"; leaf link-specific-rate { type types-security:cpm-packet-rate-limit; units "packets per second"; description "Limit of packet arrival rate limit for link level protocols"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container port-overall-rate { description "Enter the port-overall-rate context"; leaf pir { type types-security:cpm-packet-rate-limit; units "packets per second"; description "Per-port packet arrival rate limit applied to all protocol messages to be processed by CPM"; } leaf action-low-priority { type boolean; default "false"; description "Mark packets that exceed the rate as low-priority instead of discarding them immediately"; } } // container port-overall-rate container protocol-protection { presence "Enter the 'protocol-protection' context"; description "Enable the protocol-protection context"; leaf allow-sham-links { type boolean; default "false"; description "Allow OSPF sham-link traffic over VPRN transport tunnels"; } leaf block-pim-tunneled { type boolean; default "false"; description "Block extraction and processing of PIM packets that arrive inside a tunnel"; } } // container protocol-protection container ip-src-monitoring { description "Enter the ip-src-monitoring context"; container included-protocols { description "Enter the included-protocols context"; leaf dhcp { type boolean; default "true"; description "DHCP protocol packets for IP source monitoring"; } leaf gtp { type boolean; default "false"; description "GTP protocol packets for IP source monitoring"; } leaf icmp { type boolean; default "false"; description "ICMP protocol packets for IP source monitoring"; } leaf igmp { type boolean; default "false"; description "IGMP protocol for IP source monitoring"; } } // container included-protocols } // container ip-src-monitoring list policy { key "policy-id"; description "Enter the policy list instance"; leaf policy-id { type types-services:cpm-prot-policy-id; description "Number that identifies this CPU protection policy"; } leaf alarm { type boolean; default "true"; description "Notification sent when a packet arrival rate limits is reached"; } leaf description { type types-sros:description; description "Text description"; } leaf overall-rate { type types-security:cpm-policy-packet-rate-limit; units "packets per second"; description "Overall packet arrival rate limit to apply for all sources of packets"; } leaf per-source-rate { type types-security:cpm-policy-packet-rate-limit; units "packets per second"; default "max"; description "Per-source packet arrival rate limit"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container out-profile-rate { description "Enter the out-profile-rate context"; leaf pir { type types-security:cpm-policy-packet-rate-limit; units "packets per second"; description "Packet arrival threshold PIR above which incoming control packets are discarded"; } leaf log-events { type boolean; default "false"; description "Log events to generate when the out profile rate PIR is exceeded"; } } // container out-profile-rate container per-source-parameters { description "Enter the per-source-parameters context"; container ip-src-monitoring { description "Enter the ip-src-monitoring context"; leaf limit-dhcp-ci-addr-zero { type boolean; default "false"; description "Apply per-source rate limiting to DHCP packets containing Client IP address zero"; } } // container ip-src-monitoring } // container per-source-parameters container eth-cfm { description "Enter the eth-cfm context"; list entry { key "id"; max-elements 10; description "Enter the entry list instance"; leaf id { type uint32 { range "1..100"; } description "Number to identify this entry"; } leaf pir { type union { type int32 { range "0..65534"; } type enumeration { enum "max" { value -1; } } } units "packets per second"; default "max"; description "Packet arrival rate limit for this set of Ethernet CFM packets"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list level { key "start end"; min-elements 1; description "Add a list entry for level"; leaf start { type uint32 { range "0..7"; } description "First level in the range"; } leaf end { type uint32 { range "0..7"; } description "Last level in the range"; } } // list level list opcode { key "start end"; min-elements 1; description "Add a list entry for opcode"; leaf start { type uint32 { range "0..255"; } description "First opcode in the range"; } leaf end { type uint32 { range "0..255"; } description "Last opcode in the range"; } } // list opcode } // list entry } // container eth-cfm } // list policy } // container cpu-protection container dist-cpu-protection { description "Enter the dist-cpu-protection context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list policy { key "policy-name"; max-elements 18; description "Enter the policy list instance"; leaf policy-name { type types-sros:named-item; description "Name for the distributed CPU protection policy"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list protocol { key "protocol-name"; description "Enter the protocol list instance"; leaf protocol-name { type types-system:dist-cpu-protocol-id; description "Protocol name that is monitored by the distributed CPU protection policy"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container enforcement { description "Enter the enforcement context"; choice type { default "dynamic-local-mon-bypass"; case static { container static { description "Enter the static context"; leaf policer-name { type leafref { path "../../../../static-policer/policer-name"; } description "Static enforcement policer name"; } } // container static } case dynamic { container dynamic { description "Enter the dynamic context"; leaf mon-policer-name { type leafref { path "../../../../local-monitoring-policer/policer-name"; } description "Name for the dynamic enforcement policer"; } } // container dynamic } case dynamic-local-mon-bypass { leaf dynamic-local-mon-bypass { type empty; description "Do not include packets from this protocol in the local monitoring function"; } } } } // container enforcement container dynamic-parameters { description "Enter the dynamic-parameters context"; leaf detection-time { type uint32 { range "1..128000"; } units "seconds"; default "30"; description "Minimum time that an instantiated dynamic enforcing policer remains allocated"; } leaf log-events { type enumeration { enum "false" { value 0; } enum "true" { value 1; } enum "verbose" { value 2; } } default "true"; description "Control of log events creation for static policer status and activity"; } container exceed-action { description "Enter the exceed-action context"; leaf action { type types-system:dcp-exceed-action; description "Action to perform upon the extracted control packets when configured policer rates are exceeded"; } leaf hold-down { type union { type enumeration { enum "indefinite" { value -1; } enum "none" { value 0; } } type uint32 { range "1..10080"; } } units "seconds"; default "none"; description "Hold down behavior"; } } // container exceed-action container rate { description "Enter the rate context"; choice type { default "packets"; case kbps { container kbps { description "Enter the kbps context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "1..20000000"; } } units "kilobps"; default "max"; description "Limiting rate and burst tolerance for the policer in a packet rate, or a bit rate"; } leaf mbs { type int32 { range "0..4194304"; } units "bytes"; description "Buffer space assigned"; } } // container kbps } case packets { container packets { description "Enter the packets context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "0..8000"; } } units "packets per interval"; default "max"; description "Overall packet arrival rate limit to be applied to all sources of packets"; } leaf within { type uint32 { range "1..32767"; } units "seconds"; default "1"; description "Measurement interval for packets rate"; } leaf initial-delay { type uint32 { range "0..255"; } units "packets"; default "0"; description "Number of packets allowed in an initial burst or burst after the policer bucket drained to zero"; } } // container packets } } } // container rate } // container dynamic-parameters } // list protocol list local-monitoring-policer { key "policer-name"; max-elements 1; description "Enter the local-monitoring-policer list instance"; leaf policer-name { type types-sros:named-item; description "Name for the distributed CPU protection local monitoring policer"; } leaf description { type types-sros:description; description "Text description"; } leaf exceed-action { type types-system:dcp-exceed-action; description "Action to perform upon the extracted control packets when configured policer rates are exceeded"; } leaf log-events { type enumeration { enum "false" { value 0; } enum "true" { value 1; } enum "verbose" { value 2; } } default "true"; description "Control of log events creation for static policer status and activity"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; choice type { default "packets"; case kbps { container kbps { description "Enter the kbps context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "1..20000000"; } } units "kilobps"; default "max"; description "Limiting rate and burst tolerance for the policer in a packet rate, or a bit rate"; } leaf mbs { type int32 { range "0..4194304"; } units "bytes"; description "Buffer space assigned"; } } // container kbps } case packets { container packets { description "Enter the packets context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "0..8000"; } } units "packets per interval"; default "max"; description "Overall packet arrival rate limit to be applied to all sources of packets"; } leaf within { type uint32 { range "1..32767"; } units "seconds"; default "1"; description "Measurement interval for packets rate"; } leaf initial-delay { type uint32 { range "0..255"; } units "packets"; default "0"; description "Number of packets allowed in an initial burst or burst after the policer bucket drained to zero"; } } // container packets } } } // container rate } // list local-monitoring-policer list static-policer { key "policer-name"; max-elements 18; description "Enter the static-policer list instance"; leaf policer-name { type types-sros:named-item; description "Name for the distributed CPU protection static policer"; } leaf description { type types-sros:description; description "Text description"; } leaf detection-time { type uint32 { range "1..128000"; } units "seconds"; default "30"; description "Minimum time that an instantiated dynamic enforcing policer remains allocated"; } leaf log-events { type enumeration { enum "false" { value 0; } enum "true" { value 1; } enum "verbose" { value 2; } } default "true"; description "Control of log events creation for static policer status and activity"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container exceed-action { description "Enter the exceed-action context"; leaf action { type types-system:dcp-exceed-action; description "Action to perform upon the extracted control packets when configured policer rates are exceeded"; } leaf hold-down { type union { type enumeration { enum "indefinite" { value -1; } enum "none" { value 0; } } type uint32 { range "1..10080"; } } units "seconds"; default "none"; description "Hold down behavior"; } } // container exceed-action container rate { description "Enter the rate context"; choice type { default "packets"; case kbps { container kbps { description "Enter the kbps context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "1..20000000"; } } units "kilobps"; default "max"; description "Limiting rate and burst tolerance for the policer in a packet rate, or a bit rate"; } leaf mbs { type int32 { range "0..4194304"; } units "bytes"; description "Buffer space assigned"; } } // container kbps } case packets { container packets { description "Enter the packets context"; leaf limit { type union { type enumeration { enum "max" { value -1; } } type uint32 { range "0..8000"; } } units "packets per interval"; default "max"; description "Overall packet arrival rate limit to be applied to all sources of packets"; } leaf within { type uint32 { range "1..32767"; } units "seconds"; default "1"; description "Measurement interval for packets rate"; } leaf initial-delay { type uint32 { range "0..255"; } units "packets"; default "0"; description "Number of packets allowed in an initial burst or burst after the policer bucket drained to zero"; } } // container packets } } } // container rate } // list static-policer } // list policy } // container dist-cpu-protection container dot1x { description "Enter the dot1x context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of port access control in a system"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list radius-policy { key "policy-name"; description "Enter the radius-policy list instance"; leaf policy-name { type types-sros:named-item; description "RADIUS server policy to use for 802.1X authentication"; } leaf source-address { type types-sros:ipv4-unicast-address; description "Source address of the RADIUS packet"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this RADIUS server policy"; } leaf retry { type uint32 { range "1..10"; } default "3"; description "Number of RADIUS requests toward the same RADIUS server"; } leaf timeout { type uint32 { range "1..90"; } units "seconds"; default "5"; description "Time assigned between the request retries toward the same RADIUS server"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list server { key "server-index"; max-elements 5; description "Enter the server list instance"; leaf server-index { type uint32 { range "1..5"; } description "RADIUS server index"; } leaf address { type types-sros:ipv4-unicast-address; mandatory true; description "IP address of the RADIUS server"; } leaf secret { type types-sros:encrypted-leaf { length "1..54"; } mandatory true; description "Secret key associated with the RADIUS server"; } leaf authentication-port { type types-sros:tcp-udp-port-non-zero; default "1812"; description "UDP port number on which to contact the RADIUS server for authentication"; } leaf accounting-port { type types-sros:tcp-udp-port-non-zero; default "1813"; description "UDP port number on which to contact the RADIUS server for accounting requests"; } leaf type { type enumeration { enum "authorization" { value 0; } enum "accounting" { value 1; } enum "combined" { value 2; } } default "authorization"; description "RADIUS server type"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server } // list radius-policy } // container dot1x container keychains { description "Enter the keychains context"; list keychain { key "keychain-name"; max-elements 256; description "Enter the keychain list instance"; leaf keychain-name { type types-sros:named-item; description "Keychain name"; } leaf description { type types-sros:description; description "Text description"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the keychain"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container tcp-option-number { description "Enter the tcp-option-number context"; leaf receive { type enumeration { enum "option-253" { value 1; } enum "option-254" { value 2; } enum "both" { value 3; } enum "tcp-ao" { value 4; } } default "option-254"; description "TCP option value expected in the TCP header of received packets"; } leaf send { type enumeration { enum "option-253" { value 1; } enum "option-254" { value 2; } enum "tcp-ao" { value 4; } } default "option-254"; description "TCP option value assigned in the TCP header of transmitted packets"; } } // container tcp-option-number container bidirectional { description "Enter the bidirectional context"; list entry { key "keychain-entry-index"; description "Enter the entry list instance"; leaf keychain-entry-index { type uint32 { range "0..63|255"; } description "Keychain identifier"; } leaf authentication-key { when "not(../keychain-entry-index = 255)"; type types-sros:encrypted-leaf { length "1..54"; } sros-ext:immutable; description "The key used by the encryption algorithm to sign and authenticate protocol packets."; } leaf algorithm { when "not(../keychain-entry-index = 255)"; type types-security:keychain-algo; sros-ext:immutable; description "Encryption algorithm used by the keychain key"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the keychain entry"; } leaf begin-time { type yang:date-and-time; description "Calendar date and time when the system starts using the key"; } leaf option { type enumeration { enum "none" { value 0; } enum "basic" { value 1; } enum "isis-enhanced" { value 2; } } default "none"; description "Keychain key option"; } leaf tolerance { type union { type types-sros:time-duration { range "0..4294967294"; } type enumeration { enum "infinite" { value -1; } } } default "300"; description "Time within which an eligible receive key should overlap with the active send key"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list entry } // container bidirectional container receive { description "Enter the receive context"; list entry { key "keychain-entry-index"; description "Enter the entry list instance"; leaf keychain-entry-index { type uint32 { range "0..63|255"; } description "Keychain identifier"; } leaf authentication-key { when "not(../keychain-entry-index = 255)"; type types-sros:encrypted-leaf { length "1..54"; } sros-ext:immutable; description "The key used by the encryption algorithm to sign and authenticate protocol packets."; } leaf algorithm { when "not(../keychain-entry-index = 255)"; type types-security:keychain-algo; sros-ext:immutable; description "Encryption algorithm used by the keychain key"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the keychain entry"; } leaf begin-time { type yang:date-and-time; description "Calendar date and time when the system starts using the key"; } leaf end-time { type yang:date-and-time; description "Calendar date and time when the system should stop using the key"; } leaf tolerance { type union { type types-sros:time-duration { range "0..4294967294"; } type enumeration { enum "infinite" { value -1; } } } default "300"; description "Time within which an eligible receive key should overlap with the active send key"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list entry } // container receive container send { description "Enter the send context"; list entry { key "keychain-entry-index"; description "Enter the entry list instance"; leaf keychain-entry-index { type uint32 { range "0..63|255"; } description "Keychain identifier"; } leaf authentication-key { when "not(../keychain-entry-index = 255)"; type types-sros:encrypted-leaf { length "1..54"; } sros-ext:immutable; description "The key used by the encryption algorithm to sign and authenticate protocol packets."; } leaf algorithm { when "not(../keychain-entry-index = 255)"; type types-security:keychain-algo; sros-ext:immutable; description "Encryption algorithm used by the keychain key"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the keychain entry"; } leaf begin-time { type yang:date-and-time; description "Calendar date and time when the system starts using the key"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list entry } // container send } // list keychain } // container keychains container source-address { description "Enter the source-address context"; list ipv4 { key "application"; description "Enter the ipv4 list instance"; leaf application { type enumeration { enum "telnet" { value 1; } enum "ftp" { value 2; } enum "ssh" { value 3; } enum "radius" { value 4; } enum "tacplus" { value 5; } enum "snmptrap" { value 6; } enum "syslog" { value 7; } enum "ping" { value 8; } enum "traceroute" { value 9; } enum "dns" { value 10; } enum "sntp" { value 11; } enum "ntp" { value 12; } enum "cflowd" { value 13; } enum "ptp" { value 23; } enum "mcreporter" { value 24; } enum "sflow" { value 27; } enum "icmp-error" { value 29; } enum "ldap" { value 31; } } description "Source IP address for the application"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice source { mandatory true; case interface-name { leaf interface-name { type types-sros:interface-name; sros-ext:immutable; description "Interface name whose IP address to be used in all packets sent by the application"; } } case address { leaf address { type types-sros:ipv4-address; sros-ext:immutable; description "Source IPv4 address to be used in all packets sent by the application"; } } } } // list ipv4 list ipv6 { key "application"; description "Enter the ipv6 list instance"; leaf application { type enumeration { enum "telnet" { value 14; } enum "ftp" { value 15; } enum "radius" { value 16; } enum "tacplus" { value 17; } enum "snmptrap" { value 18; } enum "syslog" { value 19; } enum "ping" { value 20; } enum "traceroute" { value 21; } enum "dns" { value 22; } enum "cflowd" { value 25; } enum "ntp" { value 26; } enum "sflow" { value 28; } enum "icmp6-error" { value 30; } enum "ldap" { value 32; } } description "Source IPv6 address for the application"; } leaf address { type types-sros:ipv6-address; sros-ext:immutable; mandatory true; description "Source IPv6 address to be used in all packets sent by the application"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ipv6 } // container source-address container system-passwords { description "Enter the system-passwords context"; leaf admin-password { type types-sros:hashed-leaf { length "3..136"; } description "Password that assigns the user as administrator"; } leaf vsd-password { type types-sros:hashed-leaf { length "3..136"; } description "Password that allows the user to assign VSD services"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container system-passwords container tech-support { description "Enter the tech-support context"; leaf ts-location { type types-sros:ts-url-string; description "Default file path for generated tech-support files"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container tech-support container hash-control { description "Enter the hash-control context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container management-interface { description "Enter the management-interface context"; container classic-cli { description "Enter the classic-cli context"; leaf read-algorithm { type enumeration { enum "all-hash" { value 0; } enum "hash" { value 1; } enum "hash2" { value 2; } enum "custom" { value 3; } } default "all-hash"; description "Global read algorithm for the system"; } leaf write-algorithm { type enumeration { enum "cleartext" { value 0; } enum "hash" { value 1; } enum "hash2" { value 2; } enum "custom" { value 3; } } default "hash2"; description "Changes output of secret values"; } } // container classic-cli container md-cli { description "Enter the md-cli context"; leaf hash-algorithm { type enumeration { enum "cleartext" { value 0; } enum "hash" { value 1; } enum "hash2" { value 2; } enum "custom" { value 3; } } default "hash2"; description "Changes output of secret values"; } } // container md-cli container netconf { description "Enter the netconf context"; leaf hash-algorithm { type enumeration { enum "cleartext" { value 0; } enum "hash" { value 1; } enum "hash2" { value 2; } enum "custom" { value 3; } } default "hash2"; description "Changes output of secret values"; } } // container netconf container grpc { description "Enter the grpc context"; leaf hash-algorithm { type enumeration { enum "cleartext" { value 0; } enum "hash" { value 1; } enum "hash2" { value 2; } enum "custom" { value 3; } } default "hash2"; description "Changes output of secret values"; } } // container grpc } // container management-interface } // container hash-control container management { description "Enter the management context"; leaf allow-telnet { type boolean; default "true"; description "Allow/disallow access to telnet server."; } leaf allow-telnet6 { type boolean; default "true"; description "Allow/disallow access to telnet IPv6 server."; } leaf allow-ftp { type boolean; default "true"; description "Allow/disallow access to ftp server."; } leaf allow-ssh { type boolean; default "true"; description "Allow/disallow access to ssh server."; } leaf allow-netconf { type boolean; default "true"; description "Allow/disallow access to netconf server."; } leaf allow-grpc { type boolean; default "true"; description "Allow/disallow access to grpc server."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container management container aaa { description "Enter the aaa context"; leaf health-check { type union { type int32 { range "6..1500"; } type enumeration { enum "none" { value 0; } } } units "seconds"; default "30"; description "Polling interval of RADIUS, TACACS+, and LDAP servers"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container remote-servers { description "Enter the remote-servers context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container radius { description "Enter the radius context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of RADIUS authentication"; } leaf accounting { type boolean; default "false"; description "Enable/disable RADIUS command accounting."; } leaf accounting-port { type uint32 { range "1..65535"; } default "1813"; description "Port number on which to contact RADIUS server for accounting requests."; } leaf authorization { type boolean; default "false"; description "Enable/disable RADIUS command authorization."; } leaf interactive-authentication { type boolean; default "false"; description "Enable/disable RADIUS interactive authentication."; } leaf server-retry { type uint32 { range "1..10"; } default "3"; description "Number of attempts to retry contacting RADIUS."; } leaf server-timeout { type uint32 { range "1..90"; } units "seconds"; default "3"; description "Timeout for a response from RADIUS server."; } leaf port { type uint32 { range "1..65535"; } default "1812"; description "Port number on which to contact RADIUS server."; } leaf use-default-template { type boolean; default "false"; description "Enable/disable RADIUS default template."; } leaf access-algorithm { type enumeration { enum "direct" { value 1; } enum "round-robin" { value 2; } } default "direct"; description "Configure the algorithm used to access the set of RADIUS servers."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list server { key "index"; max-elements 5; description "Enter the server list instance"; leaf index { type uint32 { range "1..5"; } description "Unique number which identifies a specific RADIUS server."; } leaf address { type types-sros:ip-unicast-address; mandatory true; description "IP address of Radius server."; } leaf secret { type types-sros:encrypted-leaf { length "1..115"; } mandatory true; description "The secret key associated with RADIUS server. The value of secret cannot be set to an empty string."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server } // container radius container ldap { description "Enter the ldap context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the LDAP protocol"; } leaf public-key-authentication { type boolean; default "false"; description "Allow SSH public key authentication from LDAP server"; } leaf server-retry { type uint32 { range "1..10"; } default "3"; description "Number of attempts to retry contacting an LDAP server"; } leaf server-timeout { type types-sros:time-duration { range "1..90"; } units "seconds"; default "3"; description "Timeout for a response from an LDAP server"; } leaf use-default-template { type boolean; default "true"; description "Use LDAP default template"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list server { key "index"; max-elements 5; description "Enter the server list instance"; leaf index { type uint32 { range "1..5"; } description "Unique value which identifies a specific LDAP server."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this LDAP server"; } leaf server-name { type types-sros:named-item; description "LDAP server name"; } leaf tls-profile { type leafref { path "../../../../../tls/client-tls-profile/client-profile-name"; } description "TLS client transport profile"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list address { key "ip-address"; max-elements 1; description "Enter the address list instance"; leaf ip-address { type types-sros:ip-unicast-address; description "LDAP server address"; } leaf port { type int32 { range "1..65535"; } default "389"; description "Port number on which to contact the LDAP server."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list address container bind-authentication { description "Enter the bind-authentication context"; leaf root-dn { type types-sros:string-not-all-spaces { length "1..512"; } description "Root domain used for authentication with the LDAP server."; } leaf password { type types-sros:encrypted-leaf { length "1..199"; } description "Password used for authentication with the LDAP server."; } } // container bind-authentication container search { description "Enter the search context"; leaf base-dn { type types-sros:string-not-all-spaces { length "1..512"; } description "LDAP server search domain"; } } // container search } // list server } // container ldap container tacplus { description "Enter the tacplus context"; leaf interactive-authentication { type boolean; default "false"; description "Enable/disable TACACS+ interactive authentication."; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the TACACS+ protocol operation"; } leaf server-timeout { type types-sros:time-duration { range "1..90"; } units "seconds"; default "3"; description "Timeout for a response from an TACACS+ server."; } leaf use-default-template { type boolean; default "true"; description "Enable/disable TACACS+ default template."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container accounting { presence "Enter the 'accounting' context"; description "Enable the accounting context"; leaf record-type { type enumeration { enum "start-stop" { value 1; } enum "stop-only" { value 2; } } default "stop-only"; description "Configure the type of accounting record packet that is to be sent to the TACACS+ server."; } } // container accounting container authorization { presence "Enter the 'authorization' context"; description "Enable the authorization context"; leaf use-priv-lvl { type boolean; default "false"; description "Enable/disable the privilege level mapping."; } } // container authorization container admin-control { description "Enter the admin-control context"; leaf tacplus-map-to-priv-lvl { type int32 { range "0..15"; } description "Interactive authentication exchange from the node to the TACACS+ server"; } } // container admin-control container priv-lvl-map { description "Enter the priv-lvl-map context"; leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list priv-lvl { key "level"; description "Enter the priv-lvl list instance"; leaf level { type uint32 { range "0..15"; } description "Specifies the privilege level for this mapping."; } leaf user-profile-name { type leafref { path "../../../../../local-profiles/profile/user-profile-name"; } mandatory true; description "Specifies the user profile for this mapping."; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list priv-lvl } // container priv-lvl-map list server { key "index"; max-elements 5; description "Enter the server list instance"; leaf index { type uint32 { range "1..5"; } description "Identifies a specific TACACS+ server."; } leaf address { type types-sros:ip-unicast-address; mandatory true; description "IP address of TACACS+ server."; } leaf port { type types-qos:tcp-udp-match-port; default "49"; description "TCP port number on which to contact TACACS+ server."; } leaf secret { type types-sros:encrypted-leaf { length "1..199"; } mandatory true; description "The secret key associated with the TACACS+ server. The value of secret cannot be set to an empty string."; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server } // container tacplus } // container remote-servers container local-profiles { description "Enter the local-profiles context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list profile { key "user-profile-name"; max-elements 128; description "Enter the profile list instance"; leaf user-profile-name { type types-sros:named-item { pattern "[^ ]*" { error-message "The name cannot contain spaces."; } } description "Profile name"; } leaf cli-session-group { type leafref { path "../../../cli-session-group/cli-session-group-name"; } description "CLI session group to which the profile belongs"; } leaf default-action { type enumeration { enum "deny-all" { value 1; } enum "permit-all" { value 2; } enum "none" { value 3; } enum "read-only-all" { value 4; } } default "none"; description "Action for non-matching entry"; } leaf combined-max-sessions { type types-system:session-limit; description "Maximum number of concurrent SSH and Telnet sessions"; } leaf ssh-max-sessions { type types-system:session-limit; description "Maximum number of concurrent SSH sessions"; } leaf telnet-max-sessions { type types-system:session-limit; description "Maximum number of concurrent TELNET sessions"; } leaf li { type boolean; default "false"; description "Lawful Intercept profile identifier."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container grpc { description "Enter the grpc context"; container rpc-authorization { description "Enter the rpc-authorization context"; leaf gnmi-capabilities { type types-system:permit-deny; description "Capabilities RPC usage"; } leaf gnmi-get { type types-system:permit-deny; description "gNMI Get RPC usage"; } leaf gnmi-set { type types-system:permit-deny; description "gNMI Set RPC usage"; } leaf gnmi-subscribe { type types-system:permit-deny; description "gNMI Subscribe RPC usage"; } leaf gnoi-cert-mgmt-rotate { type types-system:permit-deny; default "deny"; description "Rotate RPC usage"; } leaf gnoi-cert-mgmt-install { type types-system:permit-deny; default "deny"; description "Install RPC usage"; } leaf gnoi-cert-mgmt-getcert { type types-system:permit-deny; default "deny"; description "GetCertificates RPC usage"; } leaf gnoi-cert-mgmt-revoke { type types-system:permit-deny; default "deny"; description "RevokeCertificates RPC usage"; } leaf gnoi-cert-mgmt-cangenerate { type types-system:permit-deny; default "deny"; description "CanGenerateCSR RPC usage"; } leaf gnoi-file-get { type types-system:permit-deny; description "gNOI File Get RPC usage"; } leaf gnoi-file-put { type types-system:permit-deny; description "gNOI File Put RPC usage"; } leaf gnoi-file-stat { type types-system:permit-deny; description "gNOI File Stat RPC usage"; } leaf gnoi-file-remove { type types-system:permit-deny; description "gNOI File Remove RPC usage"; } leaf gnoi-system-setpackage { type types-system:permit-deny; default "deny"; description "gNOI System SetPackage RPC usage"; } leaf gnoi-system-switchcontrolprocessor { type types-system:permit-deny; default "deny"; description "gNOI System SwitchControlProcessor RPC usage"; } leaf gnoi-system-reboot { type types-system:permit-deny; default "deny"; description "gNOI System Reboot RPC usage"; } leaf gnoi-system-rebootstatus { type types-system:permit-deny; default "deny"; description "gNOI System RebootStatus RPC usage"; } leaf gnoi-system-cancelreboot { type types-system:permit-deny; default "deny"; description "gNOI System CancelReboot RPC usage"; } leaf md-cli-session { type types-system:permit-deny; description "gNOI MdCli Session RPC usage"; } leaf rib-api-getversion { type types-system:permit-deny; description "GetVersion RPC use for RibApi service"; } leaf rib-api-modify { type types-system:permit-deny; description "Modify RPC use for RibApi service"; } } // container rpc-authorization } // container grpc container netconf { description "Enter the netconf context"; container base-op-authorization { description "Enter the base-op-authorization context"; leaf kill-session { type boolean; default "false"; description "Send a kill session NETCONF operation"; } leaf lock { type boolean; default "false"; description "Send a lock session NETCONF operation"; } } // container base-op-authorization } // container netconf list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..9999"; } description "User profile entry identifier"; } leaf action { type enumeration { enum "deny" { value 1; } enum "permit" { value 2; } enum "none" { value 3; } enum "read-only" { value 4; } } default "none"; description "Action when a user command matches this entry"; } leaf description { type types-sros:description; description "Text description"; } leaf match { type types-sros:display-string; description "Command to match this entry"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list entry } // list profile } // container local-profiles list user-template { key "user-template-name"; description "Enter the user-template list instance"; leaf user-template-name { type enumeration { enum "ldap-default" { value 0; } enum "radius-default" { value 1; } enum "tacplus-default" { value 2; } } description "Template value to derive a system user"; } leaf home-directory { type types-sros:local-url; description "Home directory for the user based on this template"; } leaf profile { type types-sros:named-item { pattern "[^ ]*" { error-message "The profile name cannot contain spaces."; } } description "User profile based on this template"; } leaf restricted-to-home { type boolean; default "false"; description "Users to prevent from navigating above their home directories to access file"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container access { description "Enter the access context"; leaf ftp { type boolean; default "false"; description "Allow FTP access"; } leaf console { type boolean; default "true"; description "Allow console access (serial port or Telnet)"; } leaf grpc { type boolean; default "false"; description "Allow gRPC access"; } leaf netconf { type boolean; default "false"; description "Allow NETCONF session access"; } leaf li { type boolean; default "false"; description "Enable/disable access to LI."; } } // container access container console { description "Enter the console context"; leaf login-exec { type types-sros:string-not-all-spaces { length "1..200"; } description "File to execute when a user, who derived from the template, logs in successfully"; } } // container console } // list user-template list cli-session-group { key "cli-session-group-name"; max-elements 16; description "Enter the cli-session-group list instance"; leaf cli-session-group-name { type types-sros:named-item { pattern "[^ ]*" { error-message "The name cannot contain spaces."; } } description "The name of the cli session group."; } leaf description { type types-sros:description; description "Text description"; } leaf combined-max-sessions { type types-system:session-limit; description "Maximum number of concurrent SSH and Telnet sessions"; } leaf ssh-max-sessions { type types-system:session-limit; description "Maximum number of concurrent SSH sessions"; } leaf telnet-max-sessions { type types-system:session-limit; description "Maximum number of concurrent TELNET sessions"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cli-session-group container management-interface { description "Enter the management-interface context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container output-authorization { description "Enter the output-authorization context"; leaf md-interfaces { type boolean; default "true"; description "Perform output authorization"; } leaf telemetry-data { type boolean; default "false"; description "Perform telemetry data notification authorization"; } } // container output-authorization container md-cli { description "Enter the md-cli context"; leaf command-accounting-during-load { type boolean; default "true"; description "Perform remote command accounting during a load or rollback operation"; } } // container md-cli } // container management-interface } // container aaa container cli-script { description "Enter the cli-script context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container authorization { description "Enter the authorization context"; container cron { description "Enter the cron context"; leaf cli-user { type leafref { path "../../../../user-params/local-user/user/user-name"; } description "User profile name for command authorization when executing a CLI command script"; } } // container cron container event-handler { description "Enter the event-handler context"; leaf cli-user { type leafref { path "../../../../user-params/local-user/user/user-name"; } description "User profile name for command authorization when executing a CLI command script"; } } // container event-handler container vsd { description "Enter the vsd context"; leaf cli-user { type leafref { path "../../../../user-params/local-user/user/user-name"; } description "User profile name for command authorization when executing a CLI command script"; } } // container vsd } // container authorization } // container cli-script container cpm-filter { description "Enter the cpm-filter context"; leaf default-action { type enumeration { enum "drop" { value 1; } enum "accept" { value 2; } } default "accept"; description "Action for packets that do not match any filter entries"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ip-filter { description "Enter the ip-filter context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this CPM filter"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..131072"; } description "The id used to uniquely identify this filter entry."; } leaf description { type types-sros:description; description "Text description"; } leaf log { type leafref { path "../../../../../../filter/log/log-id"; } description "Log that is used for packets matching this entry"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf router-instance { type types-sros:named-item-64; description "Specifies router instance to be matched."; } leaf protocol { type types-sros:match-ip-protocol; description "Specifies the IP protocol to match. It can be set to -1 to disable matching cpm protocol."; } leaf dscp { type types-qos:dscp-name; description "Specifies the DSCP to be matched on the packet."; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Match criterion based on presence of fragmented packets"; } leaf multiple-option { type boolean; description "Specifies whether multiple options are to be matched."; } leaf option-present { type boolean; description "Specifies whether IP options matching is enabled."; } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../../../../filter/match-list/port-list/port-list-name"; } description "Parameter port list as match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../../../../filter/match-list/port-list/port-list-name"; } description "Parameter port list as match criterion"; } } } } // container dst-port } case port { container port { description "Enter the port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../../../../filter/match-list/port-list/port-list-name"; } description "Parameter port list as match criterion"; } } } } // container port } } container ip-option { presence "Enter the 'ip-option' context"; description "Enable the ip-option context"; leaf type { type types-filter:filter-match-ip-option; mandatory true; description "Specific IP option to match"; } leaf mask { type types-filter:filter-match-ip-option { range "1..255"; } default "255"; description "Mask that is ANDed with ip-option value in the packet header"; } } // container ip-option container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "IP address to match"; } leaf mask { type types-sros:ipv4-address; description "Mask as an AND to the IP address"; } } case ip-prefix-list { leaf ip-prefix-list { type leafref { path "../../../../../../../../filter/match-list/ip-prefix-list/prefix-list-name"; } description "IP prefix list as match criterion for IP address"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv4-address; type types-sros:ipv4-prefix-with-host-bits; } description "IP address to match"; } leaf mask { type types-sros:ipv4-address; description "Mask as an AND to the IP address"; } } case ip-prefix-list { leaf ip-prefix-list { type leafref { path "../../../../../../../../filter/match-list/ip-prefix-list/prefix-list-name"; } description "IP prefix list as match criterion for IP address"; } } } } // container dst-ip container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv4-match-icmp-codes; description "ICMP code to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv4-match-icmp-types; description "ICMP type to match"; } } } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "TCP ACK packet to match"; } leaf syn { type boolean; description "TCP SYN packet to match"; } } // container tcp-flags } // container match container action { description "Enter the action context"; choice action-choice { default "case-drop"; case case-drop { leaf drop { type empty; description "Drop packet matching this entry"; } } case case-accept { leaf accept { type empty; description "Packets matching the filter entry are forwarded"; } } case case-default { leaf default { type empty; description "Action to take on the traffic when the filter entry matches"; } } case case-queue { leaf queue { type leafref { path "../../../../../cpm-queue/queue/queue-id"; } description "Packets matching the filter entry to be sent to this queue"; } } } } // container action } // list entry } // container ip-filter container ipv6-filter { description "Enter the ipv6-filter context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this CPM filter"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..131072"; } description "The id used to uniquely identify this filter entry."; } leaf description { type types-sros:description; description "Text description"; } leaf log { type leafref { path "../../../../../../filter/log/log-id"; } description "Log that is used for packets matching this entry"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf router-instance { type types-sros:named-item-64; description "Specifies router instance to be matched."; } leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } leaf dscp { type types-qos:dscp-name; description "Specifies the DSCP to be matched on the packet."; } leaf flow-label { type types-filter:filter-match-flow-label; description "Specifies the flow label to be matched."; } leaf fragment { type enumeration { enum "false" { value 2; } enum "true" { value 3; } } description "Match criterion based on presence of fragmented packets"; } choice port-selector { case src-dst-port { container src-port { description "Enter the src-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../../../../filter/match-list/port-list/port-list-name"; } description "Parameter port list as match criterion"; } } } } // container src-port container dst-port { description "Enter the dst-port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../../../../filter/match-list/port-list/port-list-name"; } description "Parameter port list as match criterion"; } } } } // container dst-port } case port { container port { description "Enter the port context"; choice port { case eq { leaf eq { type uint16 { range "0..65535"; } description "Port to match"; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Mask to apply when matching the port"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } leaf end { type uint16 { range "0..65535"; } mandatory true; description "Lower bound port to match"; } } // container range } case port-list { leaf port-list { type leafref { path "../../../../../../../../filter/match-list/port-list/port-list-name"; } description "Parameter port list as match criterion"; } } } } // container port } } container src-ip { description "Enter the src-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../../../../filter/match-list/ipv6-prefix-list/prefix-list-name"; } description "IP prefix list as match criterion for IP address"; } } } } // container src-ip container dst-ip { description "Enter the dst-ip context"; choice match-address-choice { case address-and-prefix-or-mask { leaf address { type union { type types-sros:ipv6-address; type types-sros:ipv6-prefix-with-host-bits; } description "IPv6 address used as a filter policy match criterion"; } leaf mask { type types-sros:ipv6-address; description "Mask as an AND to IPv6 address"; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../../../../filter/match-list/ipv6-prefix-list/prefix-list-name"; } description "IP prefix list as match criterion for IP address"; } } } } // container dst-ip container extension-header { description "Enter the extension-header context"; leaf hop-by-hop { type boolean; description "Match a packet as per the existence of a Hop-By-Hop options Extension Header"; } } // container extension-header container icmp { description "Enter the icmp context"; choice icmp-code { case code { leaf code { type types-filter:ipv6-match-icmp-codes; description "ICMP code to match"; } } } choice icmp-type { case type { leaf type { type types-filter:ipv6-match-icmp-types; description "ICMP type to match"; } } } } // container icmp container tcp-flags { description "Enter the tcp-flags context"; leaf ack { type boolean; description "TCP ACK packet to match"; } leaf syn { type boolean; description "TCP SYN packet to match"; } } // container tcp-flags } // container match container action { description "Enter the action context"; choice action-choice { default "case-drop"; case case-drop { leaf drop { type empty; description "Drop packet matching this entry"; } } case case-accept { leaf accept { type empty; description "Packets matching the filter entry are forwarded"; } } case case-default { leaf default { type empty; description "Action to take on the traffic when the filter entry matches"; } } case case-queue { leaf queue { type leafref { path "../../../../../cpm-queue/queue/queue-id"; } description "Packets matching the filter entry to be sent to this queue"; } } } } // container action } // list entry } // container ipv6-filter container mac-filter { description "Enter the mac-filter context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of this CPM filter"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..131072"; } description "The id used to uniquely identify this filter entry."; } leaf description { type types-sros:description; description "Text description"; } leaf log { type leafref { path "../../../../../../filter/log/log-id"; } description "Log that is used for packets matching this entry"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf service { type leafref { path "../../../../../../../service/vpls/service-name"; } description "Specifies the VPLS service in which the packet is to be received for this entry to match."; } leaf frame-type { type enumeration { enum "802dot2-llc" { value 1; } enum "ethernet-ii" { value 3; } } description "MAC frame as match criteria"; } leaf etype { type types-services:etype-value; description "Ethernet type"; } container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; mandatory true; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container src-mac container dst-mac { presence "Enter the 'dst-mac' context"; description "Enable the dst-mac context"; leaf address { type yang:mac-address; mandatory true; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container dst-mac container llc-ssap { presence "Enter the 'llc-ssap' context"; description "Enable the llc-ssap context"; leaf ssap { type types-qos:service-access-point; mandatory true; description "SSAP value"; } leaf mask { type types-qos:service-access-point { range "1..255"; } default "255"; description "SAP mask"; } } // container llc-ssap container llc-dsap { presence "Enter the 'llc-dsap' context"; description "Enable the llc-dsap context"; leaf dsap { type types-qos:service-access-point; mandatory true; description "DSAP value"; } leaf mask { type types-qos:service-access-point { range "1..255"; } default "255"; description "DSAP mask"; } } // container llc-dsap container cfm-opcode { description "Enter the cfm-opcode context"; choice cfm-opcode { case eq { leaf eq { type uint32 { range "0..255"; } description "Value of the opcode to match"; } } case lt { leaf lt { type uint32 { range "1..255"; } description "Upper bound for the range of opcode to match"; } } case gt { leaf gt { type uint32 { range "0..254"; } description "Lower bound for the range of opcode to match"; } } case range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint32 { range "0..254"; } mandatory true; description "Lower bound for the range of opcode to match"; } leaf end { type uint32 { range "1..255"; } mandatory true; description "Upper bound for the range of opcode to match"; } } // container range } } } // container cfm-opcode } // container match container action { description "Enter the action context"; choice action-choice { default "case-drop"; case case-drop { leaf drop { type empty; description "Drop packet matching this entry"; } } case case-accept { leaf accept { type empty; description "Packets matching the filter entry are forwarded"; } } case case-default { leaf default { type empty; description "Action to take on the traffic when the filter entry matches"; } } case case-queue { leaf queue { type leafref { path "../../../../../cpm-queue/queue/queue-id"; } description "Packets matching the filter entry to be sent to this queue"; } } } } // container action } // list entry } // container mac-filter } // container cpm-filter container cpm-queue { description "Enter the cpm-queue context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list queue { key "queue-id"; description "Enter the queue list instance"; leaf queue-id { type uint32 { range "33..2000"; } description "Unique identifier of a CPM queue"; } leaf cbs { type types-security:burst-size; units "kilobps"; description "CBS (Committed Burst Excess) associated with this queue"; } leaf mbs { type types-security:burst-size; units "kilobps"; description "MBS (Maximum Burst Size) associated with this queue"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container rate { description "Enter the rate context"; leaf pir { type types-system:pir-rate; units "kilobps"; default "max"; description "Peak information rate associated with this queue"; } leaf cir { type types-system:cir-rate; units "kilobps"; default "max"; description "Amount of bandwidth committed to the queue"; } } // container rate } // list queue } // container cpm-queue container management-access-filter { description "Enter the management-access-filter context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ip-filter { description "Enter the ip-filter context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of management-access IP filters"; } leaf default-action { type types-filter:maf-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..9999"; } description "The id used to uniquely identify this filter entry."; } leaf action { type types-filter:maf-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } leaf description { type types-sros:description; description "Text description"; } leaf log-events { type boolean; default "false"; description "If is 'true', entry match logging is enabled."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf router-instance { type string; description "Specifies router instance to be matched."; } leaf protocol { type types-sros:match-ip-protocol; description "Specifies protocol to match."; } container src-ip { description "Enter the src-ip context"; choice src-ip { case address { leaf address { type union { type types-sros:ipv4-prefix; type types-sros:ipv4-address; } description "IP address or IP prefix."; } leaf mask { type types-sros:ipv4-address; description "IP address mask."; } } case ip-prefix-list { leaf ip-prefix-list { type leafref { path "../../../../../../../../filter/match-list/ip-prefix-list/prefix-list-name"; } description "IP prefix list as a match criterion for the IP address"; } } } } // container src-ip container mgmt-port { description "Enter the mgmt-port context"; choice mgmt-port { case port-id { leaf port-id { type types-sros:port; description "Specifies source port."; } } case cpm { leaf cpm { type empty; description "Specifies source cpm."; } } case lag-id { leaf lag { type types-sros:lag-interface; description "Source LAG name"; } leaf lag-id { status obsolete; type types-sros:lag-interface; description "Specifies source lag."; } } } } // container mgmt-port container dst-port { presence "Enter the 'dst-port' context"; description "Enable the dst-port context"; leaf port { type uint16 { range "1..65535"; } mandatory true; description "Specifies port to match."; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Specifies mask to match."; } } // container dst-port } // container match } // list entry } // container ip-filter container ipv6-filter { description "Enter the ipv6-filter context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of management-access IP filters"; } leaf default-action { type types-filter:maf-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..9999"; } description "The id used to uniquely identify this filter entry."; } leaf action { type types-filter:maf-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } leaf description { type types-sros:description; description "Text description"; } leaf log-events { type boolean; default "false"; description "If is 'true', entry match logging is enabled."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf router-instance { type string; description "Specifies router instance to be matched."; } leaf next-header { type types-sros:match-ip-protocol; description "IPv6 next header to match"; } leaf flow-label { type types-filter:filter-match-flow-label; description "Specifies the flow label to be matched."; } container src-ip { description "Enter the src-ip context"; choice src-ip { case address { leaf address { type union { type types-sros:ipv6-prefix; type types-sros:ipv6-address; } description "IPv6 address or IPv6 prefix."; } leaf mask { type types-sros:ipv6-address; description "IPv6 address mask."; } } case ipv6-prefix-list { leaf ipv6-prefix-list { type leafref { path "../../../../../../../../filter/match-list/ipv6-prefix-list/prefix-list-name"; } description "IPv6 prefix list as a match criterion for IPv6 address"; } } } } // container src-ip container mgmt-port { description "Enter the mgmt-port context"; choice mgmt-port { case port-id { leaf port-id { type types-sros:port; description "Specifies source port."; } } case cpm { leaf cpm { type empty; description "Specifies source cpm."; } } case lag-id { leaf lag { type types-sros:lag-interface; description "Source LAG name"; } leaf lag-id { status obsolete; type types-sros:lag-interface; description "Specifies source lag."; } } } } // container mgmt-port container dst-port { presence "Enter the 'dst-port' context"; description "Enable the dst-port context"; leaf port { type uint16 { range "1..65535"; } mandatory true; description "Specifies port to match."; } leaf mask { type uint16 { range "1..65535"; } default "65535"; description "Specifies mask to match."; } } // container dst-port } // container match } // list entry } // container ipv6-filter container mac-filter { description "Enter the mac-filter context"; leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of management access MAC filter"; } leaf default-action { type types-filter:maf-mac-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; description "Enter the entry list instance"; leaf entry-id { type uint32 { range "1..9999"; } description "The id used to uniquely identify this filter entry."; } leaf action { type types-filter:maf-mac-action; default "ignore-match"; description "Specifies the default action for management access in the absence of a specific management access filter entry match."; } leaf description { type types-sros:description; description "Text description"; } leaf log-events { type boolean; default "false"; description "If is 'true', entry match logging is enabled."; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container match { description "Enter the match context"; leaf service { type types-services:service-name; description "Specifies the service id in which the packet is to be received for this entry to match."; } leaf frame-type { type enumeration { enum "802dot3" { value 0; } enum "802dot2-llc" { value 1; } enum "802dot2-snap" { value 2; } enum "ethernet-ii" { value 3; } enum "802dot1-ag" { value 4; } } default "802dot3"; description "Specifies the type of mac frame for which we are defining this match criteria."; } leaf etype { type types-services:etype-value; description "Specifies the Ethertype for this MAC filter entry. This object has no significance if the object frame-type is not set to Ethernet_II."; } leaf snap-pid { type int32 { range "0..65535"; } description "Specifies snap-pid Match Criteria."; } leaf snap-oui { type enumeration { enum "zero" { value 2; } enum "non-zero" { value 3; } } description "Specifies snap-oui Match Criteria."; } container src-mac { presence "Enter the 'src-mac' context"; description "Enable the src-mac context"; leaf address { type yang:mac-address; mandatory true; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container src-mac container dst-mac { presence "Enter the 'dst-mac' context"; description "Enable the dst-mac context"; leaf address { type yang:mac-address; mandatory true; description "MAC address used as MAC filter match criterion"; } leaf mask { type yang:mac-address; default "ff:ff:ff:ff:ff:ff"; description "MAC address mask"; } } // container dst-mac container dot1p { presence "Enter the 'dot1p' context"; description "Enable the dot1p context"; leaf priority { type int32 { range "0..7"; } mandatory true; description "Specifies a Dot1p value to assign to the traffic generated by this application."; } leaf mask { type int32 { range "1..7"; } default "7"; description "Specifies a Dot1p value to assign to the traffic generated by this application."; } } // container dot1p container llc-ssap { presence "Enter the 'llc-ssap' context"; description "Enable the llc-ssap context"; leaf ssap { type int32 { range "0..255"; } mandatory true; description "Specifies SSAP value."; } leaf mask { type int32 { range "1..255"; } default "255"; description "Specifies SSAP mask."; } } // container llc-ssap container llc-dsap { presence "Enter the 'llc-dsap' context"; description "Enable the llc-dsap context"; leaf dsap { type int32 { range "0..255"; } mandatory true; description "Specifies DSAP value."; } leaf mask { type int32 { range "1..255"; } default "255"; description "Specifies DSAP mask."; } } // container llc-dsap container cfm-opcode { description "Enter the cfm-opcode context"; choice match-cfm-opcode { case operator-eq { leaf eq { type uint32 { range "0..255"; } description "Specifies the operator for op-code matching."; } } case operator-lt { leaf lt { type uint32 { range "1..255"; } description "Specifies the operator for op-code matching."; } } case operator-gt { leaf gt { type uint32 { range "0..254"; } description "Specifies the operator for op-code matching."; } } case opcode-range { container range { presence "Enter the 'range' context"; description "Enable the range context"; leaf start { type uint32 { range "0..254"; } mandatory true; description "Specifies lower bound for the range of op-code to match."; } leaf end { type uint32 { range "1..255"; } mandatory true; description "Specifies upper bound for the range of op-code to match."; } } // container range } } } // container cfm-opcode } // container match } // list entry } // container mac-filter } // container management-access-filter container pki { description "Enter the pki context"; leaf certificate-display-format { type enumeration { enum "ascii" { value 1; } enum "utf8" { value 2; } } default "ascii"; description "Display format for certificates and Certificate Revocation Lists (CRLs)"; } leaf imported-format { type enumeration { enum "any" { value 1; } enum "secure" { value 2; } } default "any"; description "The supported encrypted file formats"; } leaf maximum-cert-chain-depth { type uint32 { range "1..7"; } default "7"; description "Maximum depth of certificate chain verification"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container certificate-expiration-warning { description "Enter the certificate-expiration-warning context"; leaf hours { type int32 { range "0..8760"; } units "hours"; description "Time at which the system generates the certificate expiration warning trap for in-use certificates"; } leaf repeat-hours { type int32 { range "0..8760"; } units "hours"; default "0"; description "Time period when the system repeatedly generates the certificate expiration warning trap"; } } // container certificate-expiration-warning container crl-expiration-warning { description "Enter the crl-expiration-warning context"; leaf hours { type int32 { range "0..8760"; } units "hours"; description "Time when the system generates the Certificate Revocation List (CRL) expiration warning trap"; } leaf repeat-hours { type int32 { range "0..8760"; } units "hours"; default "0"; description "Time when the system repeatedly generates the Certificate Revocation List (CRL) expiration warning trap"; } } // container crl-expiration-warning list ca-profile { key "ca-profile-name"; max-elements 128; description "Enter the ca-profile list instance"; leaf ca-profile-name { type types-sros:named-item; description "Certificate Authority (CA) profile name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the CA profile"; } leaf description { type types-sros:description; description "Text description"; } leaf cert-file { type types-security:pki-file-name; sros-ext:auto-restart-to-modify; description "Certificate file name"; } leaf crl-file { type types-security:pki-file-name; sros-ext:auto-restart-to-modify; description "Certificate Revocation List (CRL) file name"; } leaf revocation-check { type enumeration { enum "crl" { value 1; } enum "crl-optional" { value 2; } } sros-ext:auto-restart-to-modify; default "crl"; description "Method to verify the revocation status of certificates issued by the CA"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container ocsp { sros-ext:auto-restart-to-modify; description "Enter the ocsp context"; leaf responder-url { type union { type types-sros:http-optional-url-loose; } sros-ext:auto-restart-to-modify; description "HTTP URL of the OCSP responder for the CA"; } leaf service-name { type types-services:service-name; sros-ext:auto-restart-to-modify; description "Administrative service name"; } leaf transmission-profile { type leafref { path "../../../../../transmission-profile/name"; } sros-ext:auto-restart-to-modify; description "The transmission profile for OCSP."; } } // container ocsp container cmpv2 { sros-ext:auto-restart-to-modify; description "Enter the cmpv2 context"; leaf always-set-sender-for-ir { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Subject name in CMPv2 header for all Initial Registration (IR) messages"; } leaf same-recipient-nonce-for-poll-request { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Same recipNonce as the last CMPv2 response for a poll request"; } leaf response-signing-cert { type types-security:pki-file-name; sros-ext:auto-restart-to-modify; description "File name of the certificate to verify the signature of received CMPv2 responses"; } container accept-unprotected-message { sros-ext:auto-restart-to-modify; description "Enter the accept-unprotected-message context"; leaf error-message { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Accept unprotected error messages"; } leaf pkiconf-message { type boolean; sros-ext:auto-restart-to-modify; default "false"; description "Accept unprotected PKI confirmation messages"; } } // container accept-unprotected-message container http { sros-ext:auto-restart-to-modify; description "Enter the http context"; leaf response-timeout { type uint32 { range "1..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "30"; description "HTTP response timeout"; } leaf version { type enumeration { enum "1.0" { value 1; } enum "1.1" { value 2; } } sros-ext:auto-restart-to-modify; default "1.1"; description "HTTP version for CMPv2 messages"; } } // container http container url { sros-ext:auto-restart-to-modify; description "Enter the url context"; leaf url-string { type union { type types-sros:http-optional-url-loose; } sros-ext:auto-restart-to-modify; description "URL for CMPv2"; } leaf service-name { type types-services:service-name; sros-ext:auto-restart-to-modify; description "Administrative service name"; } } // container url container key-list { sros-ext:auto-restart-to-modify; description "Enter the key-list context"; list key { key "reference-number"; max-elements 128; sros-ext:auto-restart-to-modify; description "Enter the key list instance"; leaf reference-number { type types-sros:display-string { length "1..64"; pattern ".*\\S.*" { error-message "Reference number must not be all spaces"; } } description "Unique identifier for the CA initial authentication key"; } leaf password { type types-sros:encrypted-leaf { length "1..115"; } sros-ext:auto-restart-to-modify; description "Shared secret for this CA initial authentication key"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // list key } // container key-list } // container cmpv2 container auto-crl-update { presence "Enter the 'auto-crl-update' context"; sros-ext:auto-restart-to-modify; description "Enable the auto-crl-update context"; leaf admin-state { type types-sros:admin-state; sros-ext:auto-restart-to-modify; default "disable"; description "Administrative state of the automatic CRL update"; } leaf periodic-update-interval { type types-sros:time-duration { range "3600..31622400"; } units "seconds"; sros-ext:auto-restart-to-modify; default "86400"; description "Interval between two consecutive CRL updates"; } leaf pre-update-time { type types-sros:time-duration { range "0..31622400"; } units "seconds"; sros-ext:auto-restart-to-modify; default "3600"; description "Time prior to the next update time of the current CRL"; } leaf retry-interval { type types-sros:time-duration { range "0..31622400"; } units "seconds"; sros-ext:auto-restart-to-modify; default "3600"; description "Interval before retrying to update CRL"; } leaf schedule-type { type enumeration { enum "next-update-based" { value 1; } enum "periodic" { value 2; } } sros-ext:auto-restart-to-modify; default "next-update-based"; description "Time scheduler type for an automated CRL update"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } container crl-urls { sros-ext:auto-restart-to-modify; description "Enter the crl-urls context"; list url-entry { key "entry-id"; sros-ext:auto-restart-to-modify; description "Enter the url-entry list instance"; leaf entry-id { type uint32 { range "1..8"; } description "URL on this system"; } leaf transmission-profile { type leafref { path "../../../../../../../transmission-profile/name"; } sros-ext:auto-restart-to-modify; description "File transmission profile to update CRL"; } leaf url { type union { type types-sros:http-url-path-loose; } sros-ext:auto-restart-to-modify; description "Location of updated CRL"; } leaf-list apply-groups { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; sros-ext:auto-restart-to-modify; description "Exclude a configuration group at this level"; } } // list url-entry } // container crl-urls } // container auto-crl-update } // list ca-profile list common-name-list { key "cn-list-name"; max-elements 64; description "Enter the common-name-list list instance"; leaf cn-list-name { type types-sros:named-item; description "Name for the common name list"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list common-name { key "cn-index"; description "Enter the common-name list instance"; leaf cn-index { type uint32 { range "1..128"; } description "Common name index"; } leaf cn-type { type enumeration { enum "ip-address" { value 1; } enum "domain-name" { value 2; } } mandatory true; description "Common name type"; } leaf cn-value { type types-sros:regular-expression-not-all-spaces; mandatory true; description "Common name value"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list common-name } // list common-name-list } // container pki container snmp { description "Enter the snmp context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list access { key "group context security-model security-level"; description "Enter the access list instance"; leaf group { type types-sros:named-item; description "Group name"; } leaf context { type types-sros:named-item; default "_sros_none"; description "String against which the context name should match to gain access rights"; } leaf security-model { type enumeration { enum "snmpv1" { value 1; } enum "snmpv2c" { value 2; } enum "usm" { value 3; } } description "Security model"; } leaf security-level { type enumeration { enum "no-auth-no-privacy" { value 1; } enum "auth-no-privacy" { value 2; } enum "privacy" { value 3; } } description "Minimum level of security required to gain the access rights allowed by this entry"; } leaf prefix-match { type enumeration { enum "exact" { value 1; } enum "prefix" { value 2; } } description "Type of the context name match"; } leaf read { type types-sros:named-item; description "Specifies the MIB view of the SNMP context to which this conceptual row authorizes read access."; } leaf write { type types-sros:named-item; description "Specifies the MIB view of the SNMP context to which this conceptual row authorizes write access."; } leaf notify { type types-sros:named-item; description "MIB view of SNMP context to which access for notifications is authorized by this conceptual row"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list access list community { key "community-string"; description "Enter the community list instance"; leaf community-string { type types-sros:encrypted-leaf { length "1..114"; } description "Management information that is accessed when using the community string"; } leaf access-permissions { type enumeration { enum "r" { value 1; } enum "rw" { value 2; } enum "rwa" { value 3; } enum "mgmt" { value 4; } enum "vpls-mgmt" { value 5; } } mandatory true; description "SNMP community name(s) to be used with the associated VPRN instance"; } leaf version { type enumeration { enum "v1" { value 1; } enum "v2c" { value 2; } enum "both" { value 3; } } default "both"; description "SNMP version"; } leaf source-access-list { type leafref { path "../../source-access-list/list-name"; } description "Management information to be accessed when using the community string"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list community list usm-community { key "community-string"; description "Enter the usm-community list instance"; leaf community-string { type types-sros:encrypted-leaf { length "1..114"; } description "SNMPv1/SNMPv2 community string to determine the SNMPv3 access permission"; } leaf group { type types-sros:named-item; description "Group to manage the access rights of the community string"; } leaf source-access-list { type leafref { path "../../source-access-list/list-name"; } description "Management information to be accessed when using the community string"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list usm-community container attempts { description "Enter the attempts context"; leaf count { type uint16 { range "1..64"; } default "20"; description "Maximum unsuccessful SNMP attempts that are allowed for the specified time"; } leaf time { type uint16 { range "0..60"; } units "minutes"; default "5"; description "Time when a number of unsuccessful attempts are made before the host is locked out"; } leaf lockout { type uint16 { range "0..1440"; } units "minutes"; default "10"; description "Lockout period during which the host is not allowed to log in"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container attempts list source-access-list { key "list-name"; max-elements 16; description "Enter the source-access-list list instance"; leaf list-name { type types-sros:string-not-all-spaces { length "1..32"; pattern "([A-Za-z].*[^ \\\\t]?$)|(^[^_].*[^ \\\\t]?)" { error-message "List name must begin with a letter"; } } description "Value for the name given to source access list"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list source-host { key "host-name"; max-elements 16; description "Enter the source-host list instance"; leaf host-name { type types-sros:named-item; description "Source host entry name"; } leaf address { type types-sros:ip-unicast-address; mandatory true; description "Address of the source host entry"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list source-host } // list source-access-list list view { key "view-name subtree"; description "Enter the view list instance"; leaf view-name { type types-sros:named-item; description "Name of the view to display output"; } leaf subtree { type string { length "1..256"; } description "Object Identifier (OID) value"; } leaf mask { type string { length "1..16"; pattern "(0X|0x)?(([A-Fa-f0-9]){2})+" { error-message "Hex value must be even number of characters."; } } description "Mask value as binary value, or hex value"; } leaf type { type enumeration { enum "included" { value 1; } enum "excluded" { value 2; } } description "Type of SNMP security view mask"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list view } // container snmp container ssh { description "Enter the ssh context"; leaf preserve-key { type boolean; default "false"; description "Save keys on SSH server and restore following a system reboot or SSH server restart"; } leaf server-admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the SSH server"; } leaf version { type enumeration { enum "1" { value 1; } enum "2" { value 2; } enum "1-2" { value 3; } } default "2"; description "SSH protocol version to be supported by the SSH server"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container server-cipher-list-v1 { description "Enter the server-cipher-list-v1 context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type int32 { range "1..255"; } description "Index of the cipher"; } leaf name { type enumeration { enum "des" { value 2; } enum "3des" { value 3; } enum "blowfish" { value 6; } } mandatory true; description "Cipher name value"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cipher } // container server-cipher-list-v1 container server-cipher-list-v2 { description "Enter the server-cipher-list-v2 context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type int32 { range "1..255"; } description "Index of the cipher"; } leaf name { type enumeration { enum "3des-cbc" { value 32; } enum "blowfish-cbc" { value 33; } enum "cast128-cbc" { value 34; } enum "arcfour" { value 35; } enum "aes128-cbc" { value 36; } enum "aes192-cbc" { value 37; } enum "aes256-cbc" { value 38; } enum "rijndael-cbc" { value 39; } enum "aes128-ctr" { value 40; } enum "aes192-ctr" { value 41; } enum "aes256-ctr" { value 42; } } mandatory true; description "Cipher name value"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cipher } // container server-cipher-list-v2 container client-cipher-list-v1 { description "Enter the client-cipher-list-v1 context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type int32 { range "1..255"; } description "Index of the cipher"; } leaf name { type enumeration { enum "des" { value 2; } enum "3des" { value 3; } enum "blowfish" { value 6; } } mandatory true; description "Cipher name value"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cipher } // container client-cipher-list-v1 container client-cipher-list-v2 { description "Enter the client-cipher-list-v2 context"; leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type int32 { range "1..255"; } description "Index of the cipher"; } leaf name { type enumeration { enum "3des-cbc" { value 32; } enum "blowfish-cbc" { value 33; } enum "cast128-cbc" { value 34; } enum "arcfour" { value 35; } enum "aes128-cbc" { value 36; } enum "aes192-cbc" { value 37; } enum "aes256-cbc" { value 38; } enum "rijndael-cbc" { value 39; } enum "aes128-ctr" { value 40; } enum "aes192-ctr" { value 41; } enum "aes256-ctr" { value 42; } } mandatory true; description "Cipher name value"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cipher } // container client-cipher-list-v2 container server-mac-list-v2 { description "Enter the server-mac-list-v2 context"; list mac { key "index"; description "Enter the mac list instance"; leaf index { type uint32 { range "1..255"; } description "MAC algorithm index"; } leaf name { type enumeration { enum "hmac-sha2-512" { value 1; } enum "hmac-sha2-256" { value 2; } enum "hmac-sha1" { value 3; } enum "hmac-sha1-96" { value 4; } enum "hmac-md5" { value 5; } enum "hmac-ripemd160" { value 6; } enum "hmac-ripemd160-openssh-com" { value 7; } enum "hmac-md5-96" { value 8; } } mandatory true; description "MAC algorithm that performs encryption or decryption"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mac } // container server-mac-list-v2 container client-mac-list-v2 { description "Enter the client-mac-list-v2 context"; list mac { key "index"; description "Enter the mac list instance"; leaf index { type uint32 { range "1..255"; } description "MAC algorithm index"; } leaf name { type enumeration { enum "hmac-sha2-512" { value 1; } enum "hmac-sha2-256" { value 2; } enum "hmac-sha1" { value 3; } enum "hmac-sha1-96" { value 4; } enum "hmac-md5" { value 5; } enum "hmac-ripemd160" { value 6; } enum "hmac-ripemd160-openssh-com" { value 7; } enum "hmac-md5-96" { value 8; } } mandatory true; description "MAC algorithm that performs encryption or decryption"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list mac } // container client-mac-list-v2 container key-re-exchange { description "Enter the key-re-exchange context"; container server { description "Enter the server context"; leaf minutes { type union { type uint32 { range "1..1440"; } type enumeration { enum "infinite" { value 0; } } } units "minutes"; default "60"; description "Time interval after which the SSH client initiates the key-re-exchange"; } leaf mbytes { type union { type uint32 { range "1..64000"; } type enumeration { enum "infinite" { value 0; } } } units "megabytes"; default "1024"; description "Number of megabytes on a SSH session after which the SSH client initiates the key-re-exchange"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the key re-exchange"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container server container client { description "Enter the client context"; leaf minutes { type union { type uint32 { range "1..1440"; } type enumeration { enum "infinite" { value 0; } } } units "minutes"; default "60"; description "Time interval after which the SSH client initiates the key-re-exchange"; } leaf mbytes { type union { type uint32 { range "1..64000"; } type enumeration { enum "infinite" { value 0; } } } units "megabytes"; default "1024"; description "Number of megabytes on a SSH session after which the SSH client initiates the key-re-exchange"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of the key re-exchange"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container client } // container key-re-exchange container server-kex-list-v2 { description "Enter the server-kex-list-v2 context"; list kex { key "index"; description "Enter the kex list instance"; leaf index { type uint32 { range "1..255"; } description "The index of the kex."; } leaf name { type enumeration { enum "diffie-hellman-group1-sha1" { value 1; } enum "diffie-hellman-group14-sha1" { value 2; } enum "diffie-hellman-group-exchange-sha1" { value 3; } enum "diffie-hellman-group14-sha256" { value 4; } enum "diffie-hellman-group16-sha512" { value 5; } } mandatory true; description "KEX algorithm for computing a shared secret key"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list kex } // container server-kex-list-v2 container client-kex-list-v2 { description "Enter the client-kex-list-v2 context"; list kex { key "index"; description "Enter the kex list instance"; leaf index { type uint32 { range "1..255"; } description "The index of the kex."; } leaf name { type enumeration { enum "diffie-hellman-group1-sha1" { value 1; } enum "diffie-hellman-group14-sha1" { value 2; } enum "diffie-hellman-group-exchange-sha1" { value 3; } enum "diffie-hellman-group14-sha256" { value 4; } enum "diffie-hellman-group16-sha512" { value 5; } } mandatory true; description "KEX algorithm for computing a shared secret key"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list kex } // container client-kex-list-v2 } // container ssh container tls { description "Enter the tls context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list cert-profile { key "cert-profile-name"; max-elements 16; description "Enter the cert-profile list instance"; leaf cert-profile-name { type types-sros:named-item; description "TLS certificate profile name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the certificate profile"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list entry { key "entry-id"; max-elements 8; description "Enter the entry list instance"; leaf entry-id { type int32 { range "1..8"; } description "Certificate profile ID"; } leaf certificate-file { type types-sros:string-not-all-spaces { length "1..95"; pattern "[^:\\\\/]+"; } description "Certificate file name"; } leaf key-file { type types-sros:string-not-all-spaces { length "1..95"; pattern "[^:\\\\/]+"; } description "Key file name"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container send-chain { description "Enter the send-chain context"; list ca-profile { key "ca-profile-name"; max-elements 7; description "Add a list entry for ca-profile"; leaf ca-profile-name { type leafref { path "../../../../../../pki/ca-profile/ca-profile-name"; } description "Certificate Authority (CA) profile name"; } } // list ca-profile } // container send-chain } // list entry } // list cert-profile list client-cipher-list { key "client-cipher-list-name"; max-elements 16; description "Enter the client-cipher-list list instance"; leaf client-cipher-list-name { type types-sros:named-item; description "TLS client cipher list"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type uint32 { range "1..255"; } description "Index of the cipher"; } leaf name { type enumeration { enum "tls-rsa-with3des-ede-cbc-sha" { value 10; } enum "tls-rsa-with-aes128-cbc-sha" { value 47; } enum "tls-rsa-with-aes256-cbc-sha" { value 53; } enum "tls-rsa-with-aes128-cbc-sha256" { value 60; } enum "tls-rsa-with-aes256-cbc-sha256" { value 61; } enum "tls-rsa-with-null-md5" { status obsolete; } enum "tls-rsa-with-null-sha" { status obsolete; } enum "tls-rsa-with-null-sha256" { status obsolete; } } mandatory true; description "Value for the cipher suite code"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cipher } // list client-cipher-list list server-cipher-list { key "server-cipher-list-name"; max-elements 16; description "Enter the server-cipher-list list instance"; leaf server-cipher-list-name { type types-sros:named-item; description "Name of TLS server cipher list."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list cipher { key "index"; description "Enter the cipher list instance"; leaf index { type uint32 { range "1..255"; } description "Index of the cipher"; } leaf name { type enumeration { enum "tls-rsa-with3des-ede-cbc-sha" { value 10; } enum "tls-rsa-with-aes128-cbc-sha" { value 47; } enum "tls-rsa-with-aes256-cbc-sha" { value 53; } enum "tls-rsa-with-aes128-cbc-sha256" { value 60; } enum "tls-rsa-with-aes256-cbc-sha256" { value 61; } enum "tls-rsa-with-null-md5" { status obsolete; } enum "tls-rsa-with-null-sha" { status obsolete; } enum "tls-rsa-with-null-sha256" { status obsolete; } } mandatory true; description "Value for the cipher suite code"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list cipher } // list server-cipher-list list client-tls-profile { key "client-profile-name"; max-elements 16; description "Enter the client-tls-profile list instance"; leaf client-profile-name { type types-sros:named-item; description "Name of TLS client profile."; } leaf cert-profile { type leafref { path "../../cert-profile/cert-profile-name"; } description "Certificate profile ID"; } leaf cipher-list { type leafref { path "../../client-cipher-list/client-cipher-list-name"; } description "Specifies the ordered list of supported cipher suite codes associated with this TLS client profile."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the client TLS profile"; } leaf trust-anchor-profile { type leafref { path "../../trust-anchor-profile/trust-anchor-profile-name"; } description "Trust anchor profile"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list client-tls-profile list server-tls-profile { key "server-profile-name"; max-elements 16; description "Enter the server-tls-profile list instance"; leaf server-profile-name { type types-sros:named-item; description "Name of TLS server profile."; } leaf cert-profile { type leafref { path "../../cert-profile/cert-profile-name"; } description "Certificate profile ID"; } leaf tls-re-negotiate-timer { type uint32 { range "0..65000"; } units "minutes"; default "0"; description "TLS HELLO request timer"; } leaf cipher-list { type leafref { path "../../server-cipher-list/server-cipher-list-name"; } description "Specifies the ordered list of supported cipher suite codes associated with this TLS client profile."; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the server TLS profile"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container authenticate-client { description "Enter the authenticate-client context"; leaf trust-anchor-profile { type leafref { path "../../../trust-anchor-profile/trust-anchor-profile-name"; } description "Trust anchor profile for TLS client certificate authentication"; } leaf common-name-list { type leafref { path "../../../../pki/common-name-list/cn-list-name"; } description "Common name list for TLS client certificate authentication"; } } // container authenticate-client } // list server-tls-profile list trust-anchor-profile { key "trust-anchor-profile-name"; max-elements 16; description "Enter the trust-anchor-profile list instance"; leaf trust-anchor-profile-name { type types-sros:named-item; description "Name of TLS trust anchor profile"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list trust-anchor { key "ca-profile-name"; max-elements 8; description "Add a list entry for trust-anchor"; leaf ca-profile-name { type leafref { path "../../../../pki/ca-profile/ca-profile-name"; } description "Trusted CA profile"; } } // list trust-anchor } // list trust-anchor-profile } // container tls container user-params { description "Enter the user-params context"; leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container attempts { description "Enter the attempts context"; leaf count { type uint32 { range "1..64"; } default "3"; description "Number of unsuccessful login attempts"; } leaf time { type uint32 { range "0..60"; } units "minutes"; default "5"; description "Time frame of unsuccessful login attempts"; } leaf lockout { type uint32 { range "0..1440"; } units "minutes"; default "10"; description "Lockout period after unsuccessful login attempts"; } } // container attempts container authentication-order { description "Enter the authentication-order context"; leaf-list order { type types-security:password-authentication-order; max-elements 4; ordered-by user; description "Sequence of password authentication, authorization, and accounting"; } leaf exit-on-reject { type boolean; default "false"; description "Ignore subsequent AAA methods in authentication order when a reject is received"; } } // container authentication-order container local-user { description "Enter the local-user context"; container password { description "Enter the password context"; leaf aging { type uint32 { range "1..500"; } units "days"; description "Maximum time during which a user password is valid"; } leaf hashing { type enumeration { enum "bcrypt" { value 1; } enum "sha2-pbkdf2" { value 2; } enum "sha3-pbkdf2" { value 3; } } default "bcrypt"; description "Password hashing algorithm"; } leaf history-size { type uint32 { range "0..20"; } description "New password to match against previous ones"; } leaf minimum-age { type types-sros:time-duration { range "0..86400"; } units "seconds"; default "600"; description "Minimum age required for a password before changing it"; } leaf minimum-change { type uint32 { range "1..20"; } default "5"; description "Minimum distance required between the old and the new password"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container complexity-rules { description "Enter the complexity-rules context"; leaf allow-user-name { type boolean; default "false"; description "User name as part of the password"; } leaf minimum-classes { type uint32 { range "2..4"; } description "Force the use of different character classes for a minimum number"; } leaf minimum-length { type uint32 { range "6..50"; } default "6"; description "Minimum length required for local passwords"; } leaf repeated-characters { type uint32 { range "2..8"; } description "Number of times the same character appears consecutively"; } choice complexity-rules-type { case credits { container credits { description "Enter the credits context"; leaf lowercase { type uint32 { range "1..10"; } description "Maximum credits given for the usage of lowercase letters"; } leaf uppercase { type uint32 { range "1..10"; } description "Maximum credits given for the usage of uppercase letters"; } leaf numeric { type uint32 { range "1..10"; } description "Maximum credits given for the usage of numeric characters"; } leaf special-character { type uint32 { range "1..10"; } description "Maximum credits given for the usage of special characters"; } } // container credits } case required { container required { description "Enter the required context"; leaf lowercase { type uint32 { range "1..10"; } description "Number required for lowercase letters"; } leaf uppercase { type uint32 { range "1..10"; } description "Number required for uppercase letters"; } leaf numeric { type uint32 { range "1..10"; } description "Number required for numeric characters"; } leaf special-character { type uint32 { range "1..10"; } description "Number required for special characters"; } } // container required } } } // container complexity-rules } // container password list user { key "user-name"; description "Enter the user list instance"; leaf user-name { type types-sros:named-item; description "Local user name"; } leaf home-directory { type types-sros:local-url; description "Home directory for the user"; } leaf password { type types-sros:hashed-leaf { length "3..136"; } mandatory true; description "Password to authenticate the user for console and FTP access"; } leaf restricted-to-home { type boolean; default "false"; description "Users prevented from navigating above their home directories to access file"; } leaf-list cli-engine { type types-system:cli-engine-type; max-elements 2; ordered-by user; description "User level override for CLI engine access"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container access { description "Enter the access context"; leaf console { type boolean; default "false"; description "Allow console access (serial port or Telnet)"; } leaf ftp { type boolean; default "false"; description "Allow FTP access"; } leaf snmp { type boolean; default "false"; description "Allow SNMP access"; } leaf netconf { type boolean; default "false"; description "Allow NETCONF session access"; } leaf grpc { type boolean; default "false"; description "Allow gRPC access"; } leaf li { type boolean; default "false"; description "Enable/disable access to LI."; } } // container access container console { description "Enter the console context"; leaf cannot-change-password { type boolean; default "false"; description "Change password privileges"; } leaf login-exec { type union { type types-sros:sat-url; type types-sros:cflash-url; type types-sros:ftp-tftp-url { length "1..180"; } type types-sros:filename; } description "File to execute when a user successfully logs in"; } leaf new-password-at-login { type boolean; default "false"; description "Prompt a user to change password at next console login"; } leaf-list member { type leafref { path "../../../../../aaa/local-profiles/profile/user-profile-name"; } max-elements 8; ordered-by user; description "User profiles for this user"; } } // container console container public-keys { description "Enter the public-keys context"; container ecdsa { description "Enter the ecdsa context"; list ecdsa-key { key "ecdsa-public-key-id"; description "Enter the ecdsa-key list instance"; leaf ecdsa-public-key-id { type uint32 { range "1..32"; } description "Number of the Secure Shell version 2 (SSHv2) ECDSA public key that is associated with system user"; } leaf description { type types-sros:description; description "Text description"; } leaf key-value { type types-sros:string-not-all-spaces { length "1..255"; } description "Number of the Secure Shell version 2 (SSHv2) ECDSA public key that is associated with system user"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ecdsa-key } // container ecdsa container rsa { description "Enter the rsa context"; list rsa-key { key "rsa-public-key-id"; description "Enter the rsa-key list instance"; leaf rsa-public-key-id { type uint32 { range "1..32"; } description "Number of the Secure Shell version 2 (SSHv2) RSA public key that is associated with system user"; } leaf description { type types-sros:description; description "Text description"; } leaf key-value { type types-sros:string-not-all-spaces { length "1..800"; } description "Number of the Secure Shell version 2 (SSHv2) RSA public key that is associated with system user"; } leaf-list apply-groups { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list rsa-key } // container rsa } // container public-keys container snmp { description "Enter the snmp context"; leaf group { type types-sros:named-item; description "User to associate with a group name"; } leaf-list apply-groups { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container authentication { presence "Enter the 'authentication' context"; description "Enable the authentication context"; leaf authentication-protocol { type enumeration { enum "md5" { value 2; } enum "sha" { value 3; } } description "Authentication protocol"; } leaf authentication-key { type types-sros:encrypted-leaf-hex-without-prefix { length "1..54"; } description "Authentication key for authentication protocol"; } container privacy { presence "Enter the 'privacy' context"; description "Enable the privacy context"; leaf privacy-protocol { type enumeration { enum "des" { value 2; } enum "aes-128-cfb" { value 4; } } mandatory true; description "Encryption protocol for authentication"; } leaf privacy-key { type types-sros:encrypted-leaf-hex-without-prefix { length "1..51"; } mandatory true; description "Localized privacy key for authentication"; } } // container privacy } // container authentication } // container snmp } // list user } // container local-user } // container user-params } // container security container telemetry { description "Enter the telemetry context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list destination-group { key "name"; max-elements 225; description "Enter the destination-group list instance"; leaf name { type types-sros:named-item; description "Destination group name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } choice transport { case tls-client-profile { leaf tls-client-profile { type leafref { path "../../../security/tls/client-tls-profile/client-profile-name"; } description "TLS client profile assigned to the destination group"; } } case allow-unsecure-connection { leaf allow-unsecure-connection { type empty; description "Allow unsecured operation of gRPC connections"; } } } container tcp-keepalive { description "Enter the tcp-keepalive context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the TCP keep-alive algorithm"; } leaf idle-time { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "600"; description "Time until the first TCP keepalive probe is sent"; } leaf interval { type types-sros:time-duration { range "1..100000"; } units "seconds"; default "15"; description "Time between TCP keepalive probes"; } leaf retries { type uint32 { range "3..100"; } default "4"; description "Number of probe retries before closing the connection"; } } // container tcp-keepalive list destination { key "address port"; max-elements 4; ordered-by user; description "Enter the destination list instance"; leaf address { type union { type types-sros:ip-address; type types-sros:fully-qualified-domain-name; } description "Address of the destination within the destination group"; } leaf port { type types-sros:tcp-udp-port; description "TCP port number for the destination"; } leaf router-instance { type string; description "Router instance for the destination group"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list destination } // list destination-group container persistent-subscriptions { description "Enter the persistent-subscriptions context"; list subscription { key "name"; max-elements 225; description "Enter the subscription list instance"; leaf name { type types-sros:named-item; description "Persistent subscription name"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the persistent subscription"; } leaf description { type types-sros:description; description "Text description"; } leaf sensor-group { type leafref { path "../../../sensor-groups/sensor-group/name"; } description "Sensor group used in the persistent subscription"; } leaf mode { type types-system:telemetry-path-mode; description "Mode for telemetry notifications"; } leaf sample-interval { when "not(../mode = 'on-change')"; type uint64 { range "1000..max"; } units "milliseconds"; default "10000"; description "Sampling interval for the persistent subscription"; } leaf destination-group { type leafref { path "../../../destination-group/name"; } description "Name of the destination group used in the subscription"; } leaf local-source-address { type types-sros:ip-address; description "Local IP address of packets sent from the source"; } leaf originated-qos-marking { type types-qos:dscp-name; description "QoS marking used for telemetry notification packets"; } leaf encoding { type types-system:telemetry-value-encoding; default "json"; description "Encoding used for telemetry notifications"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list subscription } // container persistent-subscriptions container sensor-groups { description "Enter the sensor-groups context"; list sensor-group { key "name"; max-elements 225; description "Enter the sensor-group list instance"; leaf name { type types-sros:named-item; description "Sensor group name"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list path { key "xpath"; max-elements 4500; description "Add a list entry for path"; leaf xpath { type string { length "1..512"; } description "YANG model path indicating the data to be streamed"; } } // list path } // list sensor-group } // container sensor-groups } // container telemetry container time { description "Enter the time context"; leaf prefer-local-time { type boolean; default "false"; description "Use local time over UTC time in the system"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container zone { description "Enter the zone context"; choice time-zone { default "standard-zone"; case standard-zone { container standard { description "Enter the standard context"; leaf name { type enumeration { enum "hst" { value 1; } enum "akst" { value 2; } enum "pst" { value 3; } enum "mst" { value 4; } enum "cst" { value 5; } enum "est" { value 6; } enum "ast" { value 7; } enum "nst" { value 8; } enum "utc" { value 9; } enum "gmt" { value 10; } enum "wet" { value 11; } enum "cet" { value 12; } enum "eet" { value 13; } enum "msk" { value 14; } enum "msd" { value 15; } enum "awst" { value 16; } enum "acst" { value 17; } enum "aest" { value 18; } enum "nzst" { value 19; } } default "utc"; description "Active standard time zone in this managed system"; } } // container standard } case non-standard-zone { container non-standard { description "Enter the non-standard context"; leaf name { type string { length "1..5"; pattern "([0-9]|[a-z])+" { error-message "The name can only contain lower case letters, and digits."; } } description "Active non-standard time zone in this managed system"; } leaf offset { type types-system:hours-minutes-with-range; description "Number of hours and minutes by which the time zone offsets from UTC"; } } // container non-standard } } } // container zone list dst-zone { key "summer-time-zone"; max-elements 1; description "Enter the dst-zone list instance"; leaf summer-time-zone { type string { length "1..5"; } description "Name of a summer time zone"; } leaf offset { type uint32 { range "0..60"; } units "minutes"; default "60"; description "Offset for summer time setting"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container end { description "Enter the end context"; leaf week { type types-system:week; default "first"; description "Week of the month when the daylight savings time setting ends"; } leaf day { type types-system:day-of-week-name-long; default "sunday"; description "Day of the week when the daylight savings time setting ends"; } leaf month { type types-system:month-name-long; default "january"; description "Month of the week when the daylight savings time setting ends"; } leaf hours-minutes { type types-system:hours-minutes-twenty-four; default "00:00"; description "Hour and number of minutes after which the daylight savings time ends"; } } // container end container start { description "Enter the start context"; leaf week { type types-system:week; default "first"; description "Week of the month when the daylight savings time setting starts"; } leaf day { type types-system:day-of-week-name-long; default "sunday"; description "Day of the week when the daylight savings time setting starts"; } leaf month { type types-system:month-name-long; default "january"; description "Month of the week when the daylight savings time setting starts"; } leaf hours-minutes { type types-system:hours-minutes-twenty-four; default "00:00"; description "Hour and number of minutes after which the daylight savings time starts"; } } // container start } // list dst-zone container ntp { presence "Enter the 'ntp' context"; description "Enable the ntp context"; leaf authentication-check { type boolean; default "true"; description "Reject NTP PDUs that do not match the authentication key-id, type, or key requirements"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of NTP execution"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container ntp-server { presence "Enter the 'ntp-server' context"; description "Enable the ntp-server context"; leaf authenticate { type boolean; default "false"; description "Authentication of NTP PDUs when acting as a server"; } } // container ntp-server list server { key "ip-address router-instance"; description "Enter the server list instance"; leaf ip-address { type union { type types-sros:ip-address; type enumeration { enum "ptp" { value 1; } } } description "Node that provides time to the NTP client of this system"; } leaf router-instance { type string; description "Routing context containing the interface"; } leaf key-id { type leafref { path "../../authentication-key/key-id"; } description "Specifies the key-id of the authentication key and its authentication type used by this node to receive and transmit NTP packets to and from an NTP node."; } leaf version { type uint32 { range "2..4"; } default "4"; description "Specifies the NTP version number generated or accepted by this node in NTP packets."; } leaf prefer { type boolean; default "false"; description "NTP server from which is preferred to receive time"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server list peer { key "ip-address router-instance"; description "Enter the peer list instance"; leaf ip-address { type types-sros:ip-address; description "Identifies a node that will provide time to the NTP client of this system."; } leaf router-instance { type string; description "Routing context containing the interface"; } leaf key-id { type leafref { path "../../authentication-key/key-id"; } description "Specifies the key-id of the authentication key and its authentication type used by this node to receive and transmit NTP packets to and from an NTP node."; } leaf version { type uint32 { range "2..4"; } default "4"; description "Specifies the NTP version number generated or accepted by this node in NTP packets."; } leaf prefer { type boolean; default "false"; description "NTP server from which is preferred to receive time"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list peer list broadcast { key "router-instance interface-name"; description "Enter the broadcast list instance"; leaf router-instance { type leafref { path "../../../../../router/router-name"; } description "Administrative name for this virtual router"; } leaf interface-name { type types-sros:interface-name; description "Router interface name"; } leaf version { type uint32 { range "2..4"; } default "4"; description "NTP version number generated or accepted by this node in NTP packets"; } leaf ttl { type uint32 { range "1..255"; } default "127"; description "TTL value of messages transmitted by this broadcast address"; } leaf key-id { type leafref { path "../../authentication-key/key-id"; } description "Specifies the key-id of the authentication key and its authentication type used by this node to receive and transmit NTP packets to and from an NTP node."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list broadcast list broadcast-client { key "router-instance interface-name"; description "Enter the broadcast-client list instance"; leaf router-instance { type string; description "Administrative name for this virtual router"; } leaf interface-name { type types-sros:interface-name; description "Router interface name"; } leaf authenticate { type boolean; default "false"; description "NTP PDUs authentication required when acting as a broadcast client"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list broadcast-client container multicast { presence "Enter the 'multicast' context"; description "Enable the multicast context"; leaf version { type uint32 { range "2..4"; } default "4"; description "Specifies the NTP version number generated or accepted by this node in NTP packets."; } leaf key-id { type leafref { path "../../authentication-key/key-id"; } description "Specifies the key-id of the authentication key and its authentication type used by this node to receive and transmit NTP packets to and from an NTP node."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container multicast container multicast-client { presence "Enter the 'multicast-client' context"; description "Enable the multicast-client context"; leaf authenticate { type boolean; default "false"; description "Authentication of NTP PDUs required when acting as a client"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container multicast-client list authentication-key { key "key-id"; description "Enter the authentication-key list instance"; leaf key-id { type uint32 { range "1..255"; } description "Index of the NTP authentication key table that uniquely identifies an authentication key and type"; } leaf key { type types-sros:encrypted-leaf { length "1..71"; } mandatory true; description "Key to authenticate NTP packets"; } leaf type { type enumeration { enum "des" { value 1; } enum "message-digest" { value 2; } } mandatory true; description "Type of authentication method to authenticate NTP packet"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list authentication-key } // container ntp container sntp { description "Enter the sntp context"; leaf sntp-state { type types-router:unicast-broadcast; default "unicast"; description "Mode for Simple Network Time Protocol (SNTP)"; } leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the SNTP protocol execution"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list server { key "ip-address"; description "Enter the server list instance"; leaf ip-address { type types-sros:ip-address; description "Node that provides time to the NTP client of this system"; } leaf version { type int32 { range "1..3"; } default "3"; description "SNTP version supported by this server"; } leaf prefer { type boolean; default "false"; description "Preference value for this SNTP server"; } leaf interval { type uint32 { range "64..1024"; } units "seconds"; default "64"; description "Frequency of querying the server"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list server } // container sntp } // container time } // container system container test-oam { description "Enter the test-oam context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container mpls-dm { description "Enter the mpls-dm context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of MPLS DM packet processing"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container mpls-dm container twamp { description "Enter the twamp context"; leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container server { description "Enter the server context"; leaf admin-state { type types-sros:admin-state; default "disable"; description "Administrative state of the TWAMP server"; } leaf inactivity-timeout { type uint32 { range "60..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "900"; description "System wide inactivity timeout for each TWAMP server control connection"; } leaf max-connections { type types-oam:twamp-server-connection-count; sros-ext:auto-restart-to-modify; default "32"; description "System wide maximum number of concurrent TWAMP server control connections"; } leaf max-sessions { type types-oam:twamp-server-session-count; sros-ext:auto-restart-to-modify; default "32"; description "System wide maximum number of concurrent TWAMP server test sessions"; } leaf ref-inactivity-timeout { type uint32 { range "60..3600"; } units "seconds"; sros-ext:auto-restart-to-modify; default "900"; description "System wide reflector inactivity timeout for TWAMP"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list prefix { key "ip-prefix"; max-elements 100; description "Enter the prefix list instance"; leaf ip-prefix { type types-sros:ip-unicast-prefix; description "Prefix to be matched against a TWAMP client address Best-fit is used when matching a TWAMP client's IP address against the set of configured prefixes. For example, suppose the first row of this table has the prefix 138.120.0.0/16, and the second row has the prefix 138.120.214.0/24. The TWAMP client address 138.120.214.52 matches the second row."; } leaf description { type types-sros:description; description "Text description"; } leaf max-connections { type types-oam:twamp-server-connection-count; default "32"; description "Maximum number of concurrent TWAMP control connections allowed for the TWAMP prefix identified by the index values In addition, the number of concurrent TWAMP control connections for this prefix is limited by the system maximum '/configure test-oam twamp server max-connections'."; } leaf max-sessions { type types-oam:twamp-server-session-count; default "32"; description "Maximum number of concurrent TWAMP test sessions allowed for the TWAMP prefix identified by the key value In addition, the number of concurrent TWAMP test sessions for this prefix is limited by the system maximum '/configure test-oam twamp server max-sessions'."; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list prefix } // container server container twamp-light { description "Enter the twamp-light context"; leaf inactivity-timeout { type uint32 { range "10..100"; } units "seconds"; default "100"; description "System inactivity timeout for TWAMP-Light reflectors A TWAMP-Light reflector replies to TWAMP-Test PDUs. When a reflector sees a TWAMP-Test PDU for a new session (i.e. a {source IP address, source UDP port, destination IP address} triple which is not known to the reflector), the reflector allocates a record for the session. The record is used to ensure that reply PDUs sent for the session have consecutive sequence numbers. When a reflector sees 'inactivity-timeout' seconds pass without receiving a TWAMP-Test PDU for a particular session, an inactivity timeout has occurred, so the record allocated to the session is freed."; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // container twamp-light } // container twamp container icmp { description "Enter the icmp context"; list ping-template { key "name"; description "Enter the ping-template list instance"; leaf name { type types-sros:named-item-64; description "Ping template name"; } leaf description { type types-sros:description; description "Text description"; } leaf dscp { type types-qos:dscp-name; default "nc1"; description "DSCP value used in the outgoing ping packet"; } leaf dot1p { type types-qos:dot1p-priority; default "7"; description "Dot1p in Ethernet header of outgoing ping packets"; } leaf interval { type uint32 { range "1..60"; } units "seconds"; default "60"; description "Packet transmit interval"; } leaf timeout { type uint32 { range "1..60"; } units "seconds"; default "5"; description "Wait time before ICMP echo request is declared lost"; } leaf failure-threshold { type uint32 { range "2..10"; } default "3"; description "Failure threshold to declare inter-connectivity down"; } leaf reactivation-interval { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Ping reactivation interval"; } leaf reactivation-failure-threshold { type uint32 { range "1..10"; } default "4"; description "Number of consecutive failures at reactivation interval"; } leaf reactivation-timeout { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Reactivation wait time before packet is declared lost"; } leaf reactivation-threshold { type uint32 { range "1..10"; } default "3"; description "Success threshold to declare inter-connectivity up"; } leaf size { type uint32 { range "12..9786"; } units "octets"; default "56"; description "Data field size of the outgoing ICMP echo packet"; } leaf ttl { type uint32 { range "1..255"; } default "1"; description "TTL value for the outgoing ping packet"; } leaf-list apply-groups { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } } // list ping-template } // container icmp } // container test-oam container vrrp { description "Enter the vrrp context"; leaf-list apply-groups { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list policy { key "policy-id"; description "Enter the policy list instance"; leaf policy-id { type uint32 { range "1..9999"; } description "Policy ID that is be used when creating a Priority Control Policy"; } leaf admin-state { type types-sros:admin-state; default "enable"; description "Administrative state of VRRP policy"; } leaf context { type types-services:service-name; sros-ext:immutable; description "The value specifies the service name to which this policy applies. If not configured, this policy does not apply to a service, but to the base router instance."; } leaf delta-in-use-limit { type types-vrrp:priority; default "1"; description "Limit on the in-use priority that is derived from delta priority control events"; } leaf description { type types-sros:description; description "Text description"; } leaf-list apply-groups { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority-event { description "Enter the priority-event context"; list host-unreachable { key "ip-address"; description "Enter the host-unreachable list instance"; leaf ip-address { type types-sros:ip-address-with-zone; description "Priority control event that monitors the ability to receive ICMP Echo Reply packets from a host"; } leaf hold-clear { type types-vrrp:event-hold; units "seconds"; description "Delay time for a cleared event on associated virtual router instance"; } leaf hold-set { type types-vrrp:event-hold; units "seconds"; description "Hold time before transitioning to cleared state to dampen flapping events"; } leaf drop-count { type uint32 { range "1..60"; } default "3"; description "Limit on number of consecutive ICMP echo request transmit failures"; } leaf request-interval { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Time interval between consecutive ICMP echo requests"; } leaf padding-size { type uint32 { range "0..16384"; } units "bytes"; default "56"; description "Packet length padding of the ICMP packet"; } leaf timeout { type uint32 { range "1..60"; } units "seconds"; default "1"; description "Timeout for ICMP echo request messages"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Effect of the priority-level value on the base priority value"; } } // container priority } // list host-unreachable list lag-port-down { key "lag-name"; description "Enter the lag-port-down list instance"; leaf lag-name { type types-sros:lag-interface; description "LAG name"; } leaf hold-clear { type types-vrrp:event-hold; units "seconds"; description "Delay time for a cleared event on associated virtual router instance"; } leaf hold-set { type types-vrrp:event-hold; units "seconds"; description "Hold time before transitioning to cleared state to dampen flapping events"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } list number-down { key "number-of-lag-ports-down"; description "Enter the number-down list instance"; leaf number-of-lag-ports-down { type uint8 { range "1..64"; } description "Number of LAG ports down that create a set event threshold"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Effect of the priority-level value on the base priority value"; } } // container priority } // list number-down list weight-down { key "lag-ports-down-weight"; description "Enter the weight-down list instance"; leaf lag-ports-down-weight { type uint8 { range "1..64"; } description "LAG name for the reduced LAG ports"; } leaf-list apply-groups { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Effect of the priority-level value on the base priority value"; } } // container priority } // list weight-down } // list lag-port-down list mc-ipsec-non-forwarding { key "tunnel-group-id"; description "Enter the mc-ipsec-non-forwarding list instance"; leaf tunnel-group-id { type uint32 { range "1..16"; } description "Multi-chassis IPSEC tunnel group whose non-forwarding state is monitored by priority control event"; } leaf hold-clear { type types-vrrp:event-hold; units "seconds"; description "Delay time for a cleared event on associated virtual router instance"; } leaf hold-set { type types-vrrp:event-hold; units "seconds"; description "Hold time before transitioning to cleared state to dampen flapping events"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Event type"; } } // container priority } // list mc-ipsec-non-forwarding list port-down { key "port-id"; description "Enter the port-down list instance"; leaf port-id { type types-sros:port-named; description "Port ID for the reduced LAG ports"; } leaf hold-clear { type types-vrrp:event-hold; units "seconds"; description "Delay time for a cleared event on associated virtual router instance"; } leaf hold-set { type types-vrrp:event-hold; units "seconds"; description "Hold time before transitioning to cleared state to dampen flapping events"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Effect of the priority-level value on the base priority value"; } } // container priority } // list port-down list route-unknown { key "ip-prefix"; description "Enter the route-unknown list instance"; leaf ip-prefix { type types-sros:ip-prefix; description "IP prefix of the route that is monitored by this priority control event"; } leaf hold-clear { type types-vrrp:event-hold; units "seconds"; description "Delay time for a cleared event on associated virtual router instance"; } leaf hold-set { type types-vrrp:event-hold; units "seconds"; description "Hold time before transitioning to cleared state to dampen flapping events"; } leaf-list protocol { type enumeration { enum "bgp" { value 0; } enum "ospf" { value 1; } enum "isis" { value 2; } enum "rip" { value 3; } enum "static" { value 4; } enum "bgp-vpn" { value 5; } } max-elements 6; description "Routing protocol as match criterion"; } leaf-list apply-groups { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Apply a configuration group at this level"; } leaf-list apply-groups-exclude { type leafref { path "../../../../../groups/group/name"; } max-elements 8; ordered-by user; description "Exclude a configuration group at this level"; } container priority { description "Enter the priority context"; leaf priority-level { type types-vrrp:priority; description "Priority level associated with this event"; } leaf event-type { type enumeration { enum "delta" { value 1; } enum "explicit" { value 2; } } default "delta"; description "Effect of the priority-level value on the base priority value"; } } // container priority container less-specific { presence "Enter the 'less-specific' context"; description "Enable the less-specific context"; leaf allow-default { type boolean; default "false"; description "Match on default route"; } } // container less-specific list next-hop { key "ip-address"; description "Add a list entry for next-hop"; leaf ip-address { type types-sros:ip-address-with-zone; description "The value identifies the next-hop IP address which is used to match the route prefix being monitored by this priority control event with the results of a route table lookup."; } } // list next-hop } // list route-unknown } // container priority-event } // list policy } // container vrrp } // container configure }